- **Docker Fixes:** Resolved failed builds for Gateway and Ping services by switching to `eclipse-temurin:21-jdk-alpine`, correcting Gradle configurations, and fixing cache mount paths.
- **ZNS-Import Consul Registration:** Enabled Consul service discovery by updating `application.yaml` and `build.gradle.kts`.
- **pgAdmin Provisioning:** Preconfigured the database server in `servers.json` and updated `dc-ops.yaml` for seamless setup.
- **Postman Documentation:** Added a detailed Postman test guide covering environment setup, endpoint groups, and recommended test sequences.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Logged session in `2026-04-03_Curator_B1_Roadmaps-Verzeichnis.md`, summarizing all roadmap reviews and corrections.
- Updated `Curator_Roadmap.md`: marked Sprint B-1 as complete, adjusted dependencies, and refined upcoming priorities.
- Corrected `QA_Roadmap.md` Sprint-B header to reflect partial completion (`🔴 → 🟡`).
- Added detailed revisions for QA, backlog, and dependency management in all roadmaps.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Marked `Editier-Formulare_Dialog-vs-Fullscreen_v1.md` as APPROVED with finalized mapping for all edit screens.
- Created `Empty-States_Spezifikation_v1.md` to outline design, behavior, and implementation plan for empty states across 10 screens.
- Logged session outcomes in `2026-04-03_UIUX_B1_B4_Editier-Formulare_Empty-States_Curator_Log.md`.
- Updated `UIUX_Roadmap.md` to reflect Sprint B completion and tasks for Sprint C-1.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- **Onboarding (B-2):** Extracted `OnboardingValidator` and added `OnboardingValidatorTest` for edge-case validations (17 new unit tests: field guards, double-click prevention, cancel/reset behavior, `rememberSaveable` regression fix).
- **Departmental Logic (B-3):** Extended `AbteilungsRegelServiceTest` with 14 new tests covering CSN-C-NEU splitting logic (≤95 cm: license-free/licensed, ≥100 cm: R1/R2+), Caprilli regressions, and organizational/separate award scenarios.
- Updated `AbteilungsRegelService.kt` to implement CSN-C-NEU logic and added `ORGANISATORISCH` + `SEPARATE_SIEGEREHRUNG` enums for new rules.
- Updated Changelog and QA roadmap with completed tasks.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Added `nativeDistributions` for Linux (.deb), Windows (.msi), and macOS (.dmg) in `build.gradle.kts` with platform-specific settings, embedded JRE, and JVM-args.
- Implemented centralized semantic versioning via `version.properties` as the single source of truth, applying it across all builds.
- Introduced CI/CD release workflow (`.gitea/workflows/release.yml`) for auto-tagging, artifact builds, and release summaries.
- Created `CHANGELOG.md` following Keep-a-Changelog format for tracking changes.
- Documented icon requirements and packaging steps in `ICONS_PLACEHOLDER.md`.
- Updated DevOps roadmap to reflect completed Sprint C-1 and C-2 tasks.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Introduced `license_height_matrix` for mapping minimum license requirements to jump heights (ÖTO § 231).
- Added `horse_min_age_matrix` for defining minimum horse ages by discipline, height, or level (ÖTO § 103, FEI GR Art. 136).
- Populated both tables with ÖTO 2026 and FEI-compliant seed data.
- Updated Flyway V008 to remove incorrect `RD4` entry and annotated corrected enum references.
- Created Flyway V009 for introducing the new tables and their seeds.
- Aligned documentation, validation rules, and roadmaps for backend implementation handover.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Added `TestExposedConfiguration` to connect Exposed with Spring `DataSource` in the `test` profile.
- Downgraded `springdoc` version from `3.0.0` to `2.8.9` for Spring Boot 3.x compatibility.
- Applied `@ActiveProfiles("test")` to `EntriesIsolationIntegrationTest`.
- Updated roadmap documentation to reflect bugfix and test success.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Added `TestExposedConfiguration` to connect Exposed with Spring `DataSource` in the `test` profile.
- Downgraded `springdoc` version from `3.0.0` to `2.8.9` for Spring Boot 3.x compatibility.
- Applied `@ActiveProfiles("test")` to `EntriesIsolationIntegrationTest`.
- Updated roadmap documentation to reflect bugfix and test success.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Added full CRUD support for Pferde (list, search, get by ID, create, update, delete) with filters for Jahrgang and BesitzerId.
- Introduced FunktionaerController, offering CRUD operations for Funktionäre (list, search, get by ID, create, update, delete) with filtering by Rolle.
- Enhanced HorseController and ReiterController with updated data models, additional request validation, and detailed filtering options.
- Extended backend configurations to register new controllers and route handlers.
- Updated roadmaps and progress documents to reflect completed Sprint B-1 tasks.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Documented a hybrid "Event-Sourcing Light with Lamport Clocks" approach for offline-first LAN synchronization between Meldestelle and Richter-Turm.
- Included detailed options analysis (Event-Sourcing, CRDT, Timestamp-Sync) and rationale for the selected solution.
- Added specifications: SyncEvent model, Lamport clock rules, WebSocket protocol (handshake, sync, recovery), and domain mastership rules.
- Defined snapshot strategy to ensure scalable logs and efficient replay.
- Outlined implementation plan in four phases, highlighting task breakdown for backend and frontend teams.
- Updated architect, backend, and frontend roadmaps to reflect ADR-0022 integration steps.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Consolidated and removed redundant steps in `SPRINT_EXECUTION_ORDER.md`.
- Simplified descriptions and roadmap formatting for improved clarity.
- Updated progress and dependencies to align with Phase 8 objectives.
- Adjusted role-specific roadmaps to reflect the latest sprint updates.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Added `OetoValidators` with live-validation for OEPS numbers, FEI-IDs, license classes, and horse data to align with ÖTO/FEI 2026 standards.
- Expanded `ReiterProfilViewModel` and `PferdProfilViewModel` to include validation states (`ValidationResult`) for enhanced form feedback and dirty state tracking.
- Standardized mock data in `Stores.kt` and `NennungModels.kt` to comply with updated validation rules.
- Created `OetoValidatorsTest` to ensure validation logic accuracy (30 unit tests, all green).
- Updated `build.gradle.kts` to include `kotlin.test` dependency for JVM testing.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Add `ApiRoutes` for central backend routing configuration.
- Implement `DefaultVeranstalterRepository` and `DefaultTurnierRepository` with Ktor clients.
- Add domain models (`Turnier`, `Bewerb`, `Abteilung`, `Veranstalter`) and respective repository interfaces.
- Replace fake VeranstalterRepository with real implementation.
- Update DI with `veranstalterModule` and HTTP client injection.
- Simplify TokenProvider and update HttpClient setup (timeouts, retries, logging).
- Mark roadmap tasks B-2 as partially complete.
- Add multi-layered entity support for `Turniere`, `Bewerbe`, and `Abteilungen` with tenant isolation.
- Implement Flyway schema migrations with constraints, indices, and default values for `Turniere`.
- Add Kotlin repositories and services for CRUD operations and validation across entities.
- Ensure tenant-safe transactions and implement new exception handling for `LockedException` and `ValidationException`.
- Provide REST APIs with controllers for managing lifecycle, hierarchy, and relationships between entities (`Turniere`, `Bewerbe`, and `Abteilungen`).
- Update Spring configuration with dependency wiring for new services and repositories.
- Created and saved detailed reports for Frontend, Backend, UI/UX, Architecture, DevOps, QA, Rulebook, and Curation in `docs/90_Reports/`.
- Included prioritized action items, challenges, and next steps across disciplines.
- Addressed documentation gaps and organized steps for improving workflow consistency and validation across the stack.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Documented changes to `NavigationPort`, `DesktopNavigationPort`, and screen integration with a stack-based back-navigation approach.
- Included details on UI adjustments and enhanced "Zurück" functionality.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Introduced comprehensive management screens for horses, riders, clubs, and officials.
- Integrated reusable `ManagementTableScreen` component for standardized layouts and operations.
- Added back-navigation support in `DesktopNavigationPort` with a stack-based implementation.
- Refined `DesktopMainLayout` with enhanced routing and dynamic placeholders for in-development screens.
- Updated roadmap to reflect completion of Phase 7: "Zentrale Verwaltung".
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Extended `Veranstaltung` domain model with new fields: `untertitel`, `logoUrl`, and `sponsoren`.
- Refined navigation in `DesktopMainLayout.kt` to check turnier context and improve routing.
- Overhauled `TurnierStammdatenTab` with enhanced interactivity: dynamic chip-based selectors for Spartens, Klassen, and Sponsors, as well as date pickers and ZNS import handling.
- Implemented validations for date ranges and required fields.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Introduced `verein-feature` module for managing Vereine, including list, detail, and editor views using `MsMasterDetailLayout`.
- Added new domain models (`Verein`, `VereinStatus`) and integrated mock data for development.
- Registered the new feature in `settings.gradle.kts` and `DesktopMainLayout.kt`, including breadcrumb navigation and entry point.
- Updated `VeranstaltungenUebersichtV2` to add Vereine as a quick-access KPI tile.
- Removed unnecessary logout functionality and adjusted the root navigation for consistency.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Replaced `VeranstalterAuswahlV2` with `VeranstaltungenUebersichtV2` for a direct entry point to event management.
- Integrated onboarding directly into the event creation flow (`VeranstaltungKonfigV2`).
- Added realistic test data (`StoreV2.seed()`) for instant workflow testing.
- Updated initial navigation flow (`DesktopApp.kt`) to prioritize the event-first approach.
- Enhanced screen and component interactions to streamline the user journey in offline-first mode.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Documented decision for Peer-to-Peer (P2P) model with mDNS discovery, WebSocket transport, and shared security keys.
- Addressed data isolation with namespacing by turnierId.
- Updated roadmap to reflect progress in Phase 6: Vernetzung & Inter-App Kommunikation.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Added `pferde-feature` module for managing horses, including list, detail, and editing views.
- Implemented `MsMasterDetailLayout` for PferdeScreen, integrating `MsDataTable`, `MsFilterBar`, and `MsActionToolbar`.
- Defined domain models (`Pferd`, `Geschlecht`, `PferdeStatus`) with mock data support.
- Updated roadmap to mark `Pferde-Verwaltung (MVP)` as complete.
- Registered the new module in `settings.gradle.kts` and `meldestelle-desktop` build configuration.
- Added previews for Pferde and Reiter components to support IDE render.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Added `reiter-feature` module for managing riders, including list and detail views.
- Implemented `MsMasterDetailLayout` for ReiterScreen, integrating `MsDataTable`, `MsFilterBar`, and `MsActionToolbar`.
- Defined domain models (`Reiter`, `LizenzKlasse`, `Sparte`, `ReiterStatus`) with mock data support.
- Updated roadmap to reflect progress in Phase 5: Routing & Screen-Komposition.
- Registered the new module in `settings.gradle.kts`.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Introduced `MsDialogShell` for a standardized modal dialog framework.
- Added `MsConfirmDialog` as a utility for common confirmation dialogs.
- Updated `Frontend_Komponenten_Roadmap.md` to mark `MsDialogShell` as complete.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Introduced `MsActionToolbar` for consistent placement of primary actions like Save, Cancel, Add, and Delete.
- Updated `Frontend_Komponenten_Roadmap.md` to mark this component as complete in Phase 4.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Introduced `MsMasterDetailLayout` as a standardized layout for master-detail screens, including support for customizable headers and split proportions.
- Updated `Frontend_Komponenten_Roadmap.md` to mark this component as complete in Phase 4.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Introduced `MsSearchableSelect` for autocomplete search and selection of objects like riders, horses, or clubs.
- Updated `Frontend_Komponenten_Roadmap.md` to mark Phase 3 as complete.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Introduced `MsValidationWrapper` for consistent display of validation messages (errors, warnings, info) in input components.
- Updated `Frontend_Komponenten_Roadmap.md` to mark this component as complete in Phase 3.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Introduced a reusable `MsEnumDropdown` component for selecting enum values with customizable options, labels, and error handling.
- Updated `Frontend_Komponenten_Roadmap.md` to reflect progress in Phase 3, marking `MsEnumDropdown` as completed.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Implemented MsFilterBar for search, filters, and result count display in list views.
- Introduced MsDataTable for high-density, flexible data visualization with column definitions and alternate row styling.
- Added MsStatusBadge for compact, reusable status indicators with predefined styles (Success, Warning, Error, Info).
- Updated roadmap documentation to mark these components as complete in Phase 2.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Marked Phase 1 (`Cleanup & Konsolidierung`) as complete and updated task checklists accordingly.
- Recorded fixes for `ping-feature` and `profile-feature` references in the roadmap.
- Improved clarity for completed refactorings and theme adjustments.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Removed redundant files: `AppFooter`, `AppHeader`, `AppScaffold`, `LoadingIndicator`, `MeldestelleButton`, `MeldestelleTextField`, `DashboardCard`.
- Introduced `MsFooter`, `MsHeader`, `MsScaffold`, `MsLoadingIndicator`, `MsButton`, `MsTextField`, `MsCard` with standardized implementation and naming.
- Updated references in `profile-feature` and `ping-feature` to use the new components.
- Aligned with roadmap goals for a consistent, reusable, and high-density design system.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Updated `MASTER_ROADMAP.md` with the latest progress and `last_update` timestamp.
- Added `ROADMAP_2026-03-30_Nacht.md` to outline nightly tasks, dependencies, and goals.
- Created `SessionLog_2026-03-30.md` to summarize completed phases, open points, and next steps.
- Prioritized "Reporting & Output" preparations and backend readiness for Neumarkt events.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Documented new features: `AbteilungsRegelService`, `CompetitionWarningService`, `profile-feature`, `billing-feature`, and V2-Screens in CHANGELOG.
- Marked P1, P2, and P3 contexts as complete in ROADMAP, including MVP and integration phases.
- Added ZNS-Importer enhancements and frontend feature integrations to ROADMAP progress.
- Updated status of major project phases to reflect completion.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Introduced ÖTO 2026-compliant seed data (`V008__Seed_OETO_2026_Data.sql`) for tournament classes, license matrix, and age groups.
- Added `RegulationSeedVerificationTest` to validate repository queries and domain eligibility logic.
- Implemented a new `profile-feature` module covering user profile management and ZNS linking.
- Integrated the `profile-feature` into the desktop shell and frontend with Koin DI configuration.
- Extended CHANGELOG, ROADMAP, and architecture documentation to reflect related changes.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Introduced `CHANGELOG.md` to document essential changes in the Masterdata-SCS, including ADRs, database schema updates, domain logic additions, API enhancements, and observability improvements.
- Added `masterdata-ops.md` runbook detailing operational procedures such as backup, restore, import management, and troubleshooting.
- Updated roadmaps to reference the new documentation and mark relevant tasks as complete.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Added `RegulationRepository` and its `Exposed` implementation for persistence.
- Implemented REST endpoints for regulations (`/rules`) in `RegulationController`, including support for tournament classes, license matrix, guidelines, fees, and configuration retrieval.
- Integrated OpenAPI documentation for `/rules` endpoints with Swagger UI in `masterdataApiModule`.
- Enabled Micrometer-based metrics for Prometheus in the API layer.
- Updated Gradle dependencies to include OpenAPI, Swagger, and Micrometer libraries.
- Registered `RegulationRepository` and `RegulationController` in `MasterdataConfiguration`.
- Improved database access patterns and reduced repetitive validation logic across domain services.
- Added unit and application tests for `RegulationController` to verify API behavior and repository interactions.
- Updated the service's `ROADMAP.md` to mark API v1 endpoints and observability as complete.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Added `REITER_PRUEFUNGEN.md` and `PFERDEPRUEFUNGEN_BEWERTUNG.md` to document evaluation criteria, scoring logic, and system requirements for dressage and show jumping.
- Updated `README.md` with links to new documentation on rider- and horse-specific regulations.
- Created database schemas for `TurnierklasseTable`, `RichtverfahrenTable`, `GebuehrTable`, `LicenseTable`, and `RegulationConfigTable`, aligning with ÖTO 2026.
- Logged architectural decisions and analysis in `session-logs` and created ADRs `0017-masterdata-importer-worker` and `0019-api-ingestion-layers`.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Introduced `Bestimmungen_CDN-C_NEU.md` and `Bestimmungen_CSN-C_NEU.md` with comprehensive guidelines for dressage and show jumping competitions, respectively.
- Included key regulations on participation, fees, organization, and equipment, aligned with ÖTO standards.
- Added PDF exports for offline access.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Added `REITER_LIZENZEN.md` with detailed descriptions of OEPS license levels, start permissions, and special rules for Haflinger, Noriker, and Pony competitions.
- Updated `masterdata/README.md` to reference the new documentation.
- Logged analysis, mapping logic, and next steps in `2026-03-30_Session_Log_Masterdata_Reiter_Lizenzen.md`.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Created detailed session log for ZNS interface documentation (`2026-03-30_Session_Log_ZNS_Documentation.md`), outlining analysis, technical specifications, and next steps.
- Added comprehensive ZNS Schnittstelle documentation (`ZNS_SCHNITTSTELLE.md`) to the `masterdata` service.
- Linked new documentation in `masterdata/README.md` to ensure alignment with ÖTO standards.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Added detailed ÖTO-compliant masterdata documentation (`OETO_STAMMDATEN.md`) to the `masterdata` service.
- Updated the `README.md` to reference the new documentation and provide further context.
- Consolidated age group criteria, competition classes, splitting rules, and judging methods for uniform reference.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Introduced detailed documentation for `masterdata` service, outlining purpose, architecture, and ÖTO rule compliance.
- Highlighted its hexagonal architecture and Gradle multi-module project structure.
- Documented key APIs, domain models (`LandDefinition`, `Altersklasse`, `Platz`), and testing practices using Testcontainers.
- Emphasized the service’s role as a central source of truth for ÖTO-conformant reference data.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Replaced per-application `IdempotencyCache` and `IdempotencyInflight` with a global in-memory store to simplify handling across instances.
- Added timeout for in-flight duplicate handling and moved response caching to pipeline phase `Render`.
- Fixed concurrency issues and ensured `IdempotencyPluginTest` stability.
- Disabled `IdempotencyApiIntegrationTest` due to environment-related lifecycle timeouts.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Deleted obsolete modules related to horses, clubs, officials, and persons services, including their configurations, build files, and database provisioning scripts.
- Cleaned up associated references in the project structure (e.g., `settings.gradle.kts`).
- Removed unused database tables and Spring beans related to these domains.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Renamed `actor-context` to `master-data-context`, emphasizing its role as the central library for core entities and ÖTO rulebook.
- Enhanced `competition-context` with a focus on the atomic nature of `Abteilung` for results and start lists.
- Updated glossary with standardized terms (`Stammdaten`, `Abteilung`, `Sparte`) and deprecated ambiguous ones (e.g., `Akteur`).
- Strengthened documentation with ÖTO-conformant invariants and clarified responsibilities across bounded contexts.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Included comprehensive documentation addressing the architecture, roadmap, and MVP goals for Neumarkt 2026.
- Added domain-specific definitions, glossary references, and functional breakdowns for both the public Web-App and Desktop-App.
- Clarified MVP deliverables, including Web-App Nennformular, Desktop-App offline-first setup, ZNS data sync, and LAN integration.
- Documented step-by-step onboarding workflow and open decisions for device pairing and security.
- Updated roadmap with sprint goals and technical steps for implementation.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Deleted unused screens including `AdminUebersichtScreen`, `AktorScreens`, `StammdatenImportScreen`, `TurnierDetailScreen`, and supporting components such as `PlaceholderContent`.
- Cleaned up references and placeholders to streamline module structure.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Deleted obsolete `meldestelle-portal` module, including all associated screens, configurations, tests, and assets.
- Includes removal of Compose multiplatform dependencies in `build.gradle.kts`.
- Cleaned up redundant files such as `AppPreview`, `AuthStatusScreen`, `DashboardScreen`, and associated core implementations.
- Streamlined module references in `settings.gradle.kts`.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Created `ZnsImportService` to handle uploading, parsing, and persisting ZNS data from legacy `.zip` files.
- Introduced corresponding test cases in `ZnsImportServiceTest` for handling edge cases including imports and updates.
- Added REST controller `ZnsImportController` for initiating import jobs and retrieving their status.
- Defined `ZnsImportResult` data structure for reporting results of import operations.
- Established database configuration specific to ZNS importer for development profile.
- Updated utility libraries with `FixedWidthLineReader` for fixed-width string parsing.
- Refactored architecture by placing parser logic in `core:zns-parser` for reuse across backend and Compose Desktop app.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Documented `Roadmap_ZNS_Importer.md` outlining goals, phases, and specifications for the ZNS importer MVP.
- Updated `MASTER_ROADMAP.md` to include ZNS roadmap reference and detailed task breakdown for ZNS importer.
- Marked progress on ÖTO/FEI rulebook tasks for CAN and CVN, with partial resolutions documented.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Added session logs for 2026-03-25 addressing open questions on Fahren (CAN) and Voltigieren (CVN) starter thresholds.
- Enhanced `Abteilungs-Trennungs-Schwellenwerte.md` with findings, fallback rules for >80 starters, and new sections on CAN and CVN.
- Marked `MASTER_ROADMAP.md` tasks for CAN and CVN as partially resolved, with next steps outlined.
- Highlighted gaps in OEPS regulations for CAN and CVN, flagged as TODO for further investigation.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Added `meldestelle-desktop` module using JVM/Compose Desktop, registered in `settings.gradle.kts`.
- Integrated new screens and desktop navigation into core: `Veranstaltungen`, `TurnierDetail`, etc.
- Expanded backend with `ExposedFunktionaerRepository` in `officials-infrastructure`.
- Completed ADRs for bounded context mapping (`ADR-0014`) and context map (`ADR-0015`).
- Updated and extended project documentation with session logs and architecture decisions.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Added 2026-03-24 DDD session log covering architecture, terminology, and Ubiquitous Language creation.
- Defined six Bounded Contexts (SCS architecture) and clarified ÖTO-compliant terminology (`Veranstaltung ≠ Turnier`).
- Introduced `Ubiquitous_Language.md` as an official glossary for all domain terms and references.
- Highlighted MVP boundaries and introduced configurable reglements for Cups, Series, and Championships.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Added `PferdReiterEingabe` for horse and rider selection with search functionality and keyboard navigation.
- Implemented `NennungenTabelle` to display filtered registrations based on selected horse or rider.
- Introduced `NennungsMaske` to combine search, table, and competition views for streamlined user interaction.
- Extended types with `Veranstalter` interface and mock data for better context and integration.
- Documented ÖTO-compliant tournament structure for frontend reference.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Moved existing FIGMA-related files into `Vison_01` and `Vision_02` folders to better support versioning and collaboration.
- Added PostCSS configuration for extending plugins in Tailwind CSS.
- Introduced new style guidelines, theme configurations, and modular imports for `Vision_02`.
- Documented detailed ÖTO tournament structures and parameters for CSN/CDN inclusions.
- Enhanced routing and UI files for future scalability, including new `theme.tsx` and `routes.tsx`.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Deleted outdated `ApplicationConfiguration` and `HorseRepositoryImpl` classes.
- Migrated to streamlined modular Gradle configuration in `build.gradle.kts`.
- Updated domain models and dependencies to use multiplatform and serialization plugins.
- Added modular setup for `horses` namespace in `settings.gradle.kts`.
- Reorganized database configuration with minimal JDBC bindings for development.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Introduced comprehensive documentation on parameters for Springen (CSN) and Dressur (CDN).
- Covered class definitions, scoring systems, and special competition formats for both disciplines.
- Detailed guideline examples to assist organizers with tournament preparation.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Implemented new reusable components including Label, Input, InputOTP, HoverCard, Popover, Pagination, NavigationMenu, Menubar, ScrollArea, Resizable, RadioGroup, and Progress under `docs/06_Frontend/FIGMA/src/app/components/ui/`.
- Enhanced structural organization to improve scalability and maintainability.
- Updated `settings.gradle.kts` to include the new module `frontend:features:nennung-feature`.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Logged details of the session addressing compiler warnings and roles in the dashboard POC under `docs/99_Journal/2026-03-19_Session_Log_POC_Rollen_Keycloak.md`.
- Documented Keycloak realm import challenges and resolution strategy for PostgreSQL volume reset.
- Verified JWT role extraction and dashboard routing logic for ADMIN and ORGANIZER roles.
- Included session outcomes and next steps for further validation and testing of the POC setup.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Added platform detection logic `currentPlatform()` in `PlatformType.js.kt`.
- Introduced platform-based behavior for LandingScreen, Dashboard, and Login flow.
- Replaced Row with FlowRow in PingScreen to improve button layout.
- Updated Meldestelle Dashboard with platform-specific headers and authentication checks.
- Adjusted AppHeader to accept `isAuthenticated` and `username` parameters.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Added competition details for Neumarkt tournaments 26128 and 26129 under `docs/Neumarkt2026/`.
- Logged key outcomes of the Domain Workshop follow-up and Frontend Kick-off session under `docs/99_Journal/2026-03-18_Session_Log_Domain_und_Frontend_Kickoff.md`.
- Updated `frontend/shells/meldestelle-portal` with new routing and UI components for Landing Page, Dashboard, and Tournament creation flow.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Documented outcomes of the 2026-03-17 domain workshop under `docs/03_Domain/03_Analysis/Domain_Workshop_Results_2026-03-17.md`.
- Added a structural diagram visualizing events, tournaments, and competitions with their relationships under `docs/03_Domain/01_Core_Model/Entities/Event_Structure_Diagram.md`.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Documented outcomes of the 2026-03-17 domain workshop under `docs/03_Domain/03_Analysis/Domain_Workshop_Results_2026-03-17.md`.
- Added a structural diagram visualizing events, tournaments, and competitions with their relationships under `docs/03_Domain/01_Core_Model/Entities/Event_Structure_Diagram.md`.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Added detailed agenda for the domain workshop kickoff under `docs/03_Domain/03_Analysis/Domain_Workshop_Agenda.md`.
- Logged session details for resolving the SQLite worker 404 issue under `docs/99_Journal/2026-03-16_Session_Log_Fix_SQLite_Worker.md`.
- Enhanced `sqlite-config.js` to include a new fallback strategy for better resilience.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Added the complete Österreichische Turnierordnung 2026 (ÖTO) under `docs/03_Domain/02_Reference/OETO_Regelwerk/`.
- Covered general provisions, participation requirements, equipment standards, discipline-specific rules, and ethical principles.
- Ensured proper citation formatting throughout the document for reference consistency.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Added detailed session logs under `docs/99_Journal/` for Backend, Frontend, UI/UX, QA, Documentation, and Architectural readiness.
- Documented findings, recommendations, and next steps for each domain to ensure alignment before starting "Phase 3: Feature Development."
- Captured key architectural decisions and the need for validated domain models and UI/UX specifications.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Improved readability and structure of `Caddyfile` by adjusting indentation and comments.
- Added production log screenshot (`prod-docker-log-web-app_2026-03-13_12-57.png`) for documentation.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Simplified and refined the `Caddyfile` configuration for improved readability.
- Added screenshots to `docs/ScreenShots` documenting proxy settings and production logs.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Moved outdated screenshots to the `archive` directory for better organization.
- Refined Caddyfile formatting and improved routing logic, including API proxy and SPA fallback behavior.
- Added new screenshots for Pangolin web app settings.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Refined SPA fallback configuration in `Caddyfile` using `try_files` for improved stability.
- Added production logs screenshot (`prod-docker-logs-web-app_2026-03-12_17-10.png`) to document application state.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Removed internal-only HTTPS (`tls internal`) configuration from the `Caddyfile`.
- Uploaded new screenshots to `docs/ScreenShots` for application settings and production error documentation.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Enabled `tls internal` in `Caddyfile` for secure communication behind the proxy.
- Added new screenshots to `docs/ScreenShots` for deployment, application settings, and error diagnosis.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Uploaded detailed production browser console logs from 2026-03-12 for debugging login errors.
- Captured HTTP/2 protocol error, mixed-content issues, and `TypeError: Failed to fetch` from `web-app.js`.
- Documented issues with Keycloak token retrieval over insecure HTTP.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Uploaded browser console logs and related error screenshots to document debugging efforts for Ping Service issues.
- Captured CORS-related errors, database initialization logs, and WebGL warnings for local environment analysis.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Added `mo-code.at` zone file for informational and archival purposes.
- Uploaded related screenshots for Pangolin architecture and server overview.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Added details to the 2026-03-10 session log about the DOCKER_REGISTRY root cause and resolution.
- Updated `.env` to correct the DOCKER_REGISTRY path (`/meldestelle` segment added) for proper Docker image resolution.
- Included related screenshots for troubleshooting and fix verification.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
- Enabled `directAccessGrants` for `frontend-client` in `meldestelle-realm.json` to support ROPC login flow.
- Strengthened admin credentials in realm configuration to meet password policy requirements.
- Upgraded Keycloak to `26.5.5` with updated Docker healthcheck logic:
- Replaced `curl` with bash `/dev/tcp` for compatibility with `ubi9-micro` image.
- Switched health endpoint from `/ready` to `/live` for single-node use.
- Adjusted healthcheck timings (`start_period`, `timeout`, `interval`) for smoother startup.
- Removed deprecated v1 hostname parameter `KC_HOSTNAME_STRICT_HTTPS`.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
Deleted unused `.github` workflows and configurations, including obsolete CI/CD pipelines and PR templates, which were no longer executed after the migration to Gitea. Migrated the `PR Guard` workflow for hardcoded version checks to `.gitea/workflows/pr-guard.yaml`. Verified functional workflows in Gitea (e.g., Docker publish). Documented changes and rationale in session logs.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
Updated `MASTER_ROADMAP_2026_Q1.md` and session logs to reflect completion of the Ping Service tracer bullet. Verified the end-to-end stack, including frontend, backend, and Gateway integration. Fixed query parameter mismatch in `PingApiKoinClient.syncPings()` (`lastSyncTimestamp` → `since`) for proper Delta-Sync functionality. Marked related roadmap tasks as completed.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
Updated `MASTER_ROADMAP_2026_Q1.md` to reflect completed Redis-to-Valkey migration and Keycloak production configuration. Adjusted property paths in `base-application.yaml` and session logs with corrected environment variable names. Verified end-to-end Docker stability and roadmap alignment.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
Marked Gateway CircuitBreaker tasks as completed and verified in archived roadmaps and session logs. Confirmed fixes for `ClassNotFoundException` via Spring Cloud 2025.0.1 and proper configuration of Resilience4j with fallback and metrics integration.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
Completed OIDC Authorization Code Flow with PKCE (S256) for JS and JVM platforms.
- Added `launchOidcFlow`, `consumePendingOidcCallback`, and `getOidcRedirectUri` with platform-specific implementations.
- Integrated SHA-256 and Base64URL helpers for PKCE.
- Updated `LoginViewModel` with OIDC logic (key handling, token exchange, state validation).
- Enhanced `LoginScreen` with an OIDC login button and loading spinner.
- Verified implementation with system hardening roadmap tasks.
Includes browser redirects for JS, localhost HTTP callback for JVM, and built-in Keycloak URL construction.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
Marked Zipkin integration tasks as completed and verified in archived roadmaps. Documented fixes for gateway propagation type (`w3c` → `b3`) and Zipkin endpoint configuration. Removed redundant dependencies in `build.gradle.kts` and updated related session logs.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
Marked Micrometer 1.16.1 upgrade task as completed in archived roadmaps and session logs. Verified compatibility for Java 25 and updated notes to reflect no changes required in `libs.versions.toml`.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
Documented the completed Keycloak hardening steps, including PKCE S256 support, CORS security improvements, strengthened password policy, and logout redirect URI configurations. Verified and updated the `meldestelle-realm.json` and roadmap to reflect these changes.
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
Added progress updates for completed roadmap tasks, including dependency management (Spring Cloud, SQLDelight, core-utils refactoring, Redis-to-Valkey migration). Added verification notes with dates, ensuring alignment with current implementation status and next steps.
Added detailed hardware specifications for the Minisforum MS-R1 (Zora) and a complete tech stack overview for the Meldestelle project. Included session logs summarizing research findings, AI relevance, and next steps for self-hosted AI model configurations. Consolidated related reference materials for streamlined documentation.
Added a session log confirming the resolution of pipeline issues in iteration v6, including successful sequential builds and the use of direct `config.json` for Docker credentials. Detailed the root causes (registry proxy timeouts and RAM-OOM) and the implemented fixes, ensuring stability and reliable internal registry access.
Added a session log detailing the resolution of RAM-OOM issues and daemon interaction complexities by writing credentials directly to `config.json` and limiting jobs to sequential execution. Updated `.gitea/workflows/docker-publish.yaml` to reflect the simplified and rootless BuildKit configuration for internal HTTP registry access.
Added a session log detailing the resolution of HTTPS to HTTP conflicts during internal registry access by configuring the Docker Daemon with `insecure-registries` in `daemon.json` and restarting the service. Updated `.gitea/workflows/docker-publish.yaml` to reflect the new approach, ensuring reliable internal pushes bypassing Pangolin without timeouts.
Added a session log detailing the replacement of `iptables` DNAT with a rootless `buildkitd` mirror for internal Gitea registry access, eliminating the need for sudo, additional packages, or kernel-level configurations. Updated `.gitea/workflows/docker-publish.yaml` to reflect the new, purely configurational solution.
Added a detailed session log explaining the replacement of `socat` with `iptables` DNAT for internal Gitea registry access in the pipeline. Updated `.gitea/workflows/docker-publish.yaml` to reflect the new approach, eliminating the need for additional packages on minimal runners.
Added a detailed session log explaining the root cause and resolution for pipeline failures due to "connection refused" on Port 443. Updated `.gitea/workflows/docker-publish.yaml` to configure BuildKit for HTTP and introduced a `socat` TCP proxy for internal registry access.
Added a detailed session log documenting the root cause and resolution of 502 errors during Docker image pushes. Updated `.gitea/workflows/docker-publish.yaml` to bypass Pangolin for internal registry access and disable attestation manifests to prevent additional token requests.
Translated all remaining English architectural documents into German, including ADRs, guides, release notes, and reference materials. Standardized formatting across translated files, updated section headings, and localized inline comments within code examples for consistency.
Revised and translated the guide for enabling Gitea Actions cache to streamline CI/CD workflows. Added localized examples, clarified tool and action caching configurations, and linked relevant resources for improved usability. Removed redundant sections and updated structure for better readability.
Revised multiple documents to align with the migration from Incus to Proxmox VE 8.4.10. Updated hypervisor, IP ranges, subnet details, and NAT configurations across all relevant files. Marked Incus sections as historical for clarity. Added AI-Stack setup guide for Proxmox LXC.
Streamlined Keycloak configurations with defaults for development and production in `.env`. Added health checks and improved environment variable documentation with comments to differentiate local and server deployments. Ensured compatibility with pre-built registry images.
Added a Prometheus scrape job for Keycloak metrics. Updated Alertmanager to use Mailpit for local testing. Completed documentation consolidation and marked cleanup-related tasks as done in the master roadmap.
Introduced a detailed guide on configuring automated backups for the Zora server, covering scheduling, manual execution, and restoration processes. Added `backup.sh` script to streamline database and configuration backups with retention and rotation.
Introduced a comprehensive guide on setting up Git-based deployment for the "Zora" server, including environment setup, repository initialization, and deployment workflow. Added `deploy.sh` script to streamline updates and restarts.
Moved outdated files to the `_archive` folder and reorganized infrastructure-related documentation into the `07_Infrastructure` directory. Improved clarity and ensured logical grouping of files.
Archived `Roadmap_2026_Q1.md` and replaced it with `MASTER_ROADMAP_2026_Q1.md` and `MASTER_ROADMAP.md`. Consolidated roadmap structure ensuring clearer organization and updated references for improved accessibility.
Updated `README.md` with new links for the Zora system architecture and master roadmap. Renamed and moved Proxmox release document under the infrastructure references. Added a `.keep` file to ensure directory structure persistence.
Introduced `Zora_System_Architektur.md` outlining the ARM64-based system design for "Zora." Covers Gitea setup, CI/CD workflows, deployment methods, service configurations, and developer guidelines.
Introduced `Pangolin-vs-Cloudflare-Tunnel.md` to compare features between Pangolin and Cloudflare Tunnel. Included step-by-step deployment instructions for Hetzner VPS and MS-R1, highlighting privacy, performance, and configuration benefits.
Aligned environment variable naming across backend and infrastructure files for improved consistency (e.g., `SPRING_CLOUD_CONSUL` and `SPRING_SECURITY_OAUTH2_RESOURCESERVER`). Introduced `PING_SERVICE_URL` to support dynamic Ping-Service routing. Updated Docker Compose health checks, profiles, and memory settings for scalability and stability.
Switched container images in `dc-infra.yaml` to a custom Docker registry for better control and consistency across deployments. Added Keycloak with enhanced configurations and updated several container restart policies, memory allocations, and healthcheck settings for improved performance and compatibility.
Introduced `Konfig-Matrix_Dev-ProZora.md` to document key configuration variables for development and production (Zora) environments, including database settings, secrets, and environment-specific usage details.
Added two new documents, `Zora_Infrastructure&Deployment_02-2026.md` and `Temp.md`, detailing the strategic roadmap for Zora's infrastructure setup and deployment phases, alongside a "Hello-World" test project guide to validate CI/CD pipelines and ARM64 compatibility.
Added `USV-technische-Daten.md` to document the specifications of the Eaton 3S 850 DIN UPS, including technical details, features, and supported configurations. Included an accompanying image `Eaton-3S-DIN-850-VA.png`.
Added a detailed guide on enabling caching for Gitea Actions to accelerate CI/CD workflows in `docs/01_Architecture/Gitea/Enable_Gitea_Actions_Cache_to_Accelerate_CI_CD.md`. Updated `.gitignore` to exclude the `/_backup/` directory.
- Updated `MASTER_ROADMAP_2026_Q1.md` to reflect delivery of Minisforum MS-R1 hardware and progress on infrastructure setup.
- Added detailed documentation for Minisforum MS-R1, including specifications, host OS setup guide, and service configuration guide.
- Logged DevOps setup session and curator's session with focus on hardware integration, SSH hardening, and networking adjustments (Macvlan workaround).
- Included user manual for Minisforum MS-R1 and related assets (e.g., images).
Documented Heimnetzwerk architecture in `Heim-Netzwerk-Plan_02-2026.md`, including VLAN definitions, hardware setup, and connection details with a visual graph layout.
- Adjusted infrastructure roadmap to use VM instead of nested LXC for Docker hosting, enhancing isolation and compatibility.
- Clarified multi-architecture CI/CD setup with native ARM64 builds and QEMU-based x86_64 builds.
- Updated documentation to include backup and offline-first strategies.
- Archived outdated session logs and reports for better file organization.
Added a detailed session log covering infrastructure setup for the Home-Server (Minisforum MS-R1) and reporting requirements. Updated `MASTER_ROADMAP_2026_Q1.md` with next steps, including PDF generation architecture evaluation and ARM64 hardware setup details.
Updated Dockerfile to streamline the hybrid build process and optimize artifact integration. Modified Caddyfile for better routing logic, enhanced security headers, Prometheus metrics, and improved API proxy handling. Adjusted `dc-gui.yaml` for container stability and simplified runtime configuration for `apiBaseUrl`. Expanded documentation with troubleshooting and session logs.
Replaced multi-stage Docker builds with a hybrid approach that pre-builds frontend artifacts locally and copies them into the container. Removed Kotlin Multiplatform configurations from the root project to resolve NodeJsRootPlugin conflicts. Adjusted `.dockerignore` to allow pre-built artifacts and increased Gradle/Kotlin daemon memory for faster builds. Updated Caddyfile for runtime stability and added documentation for new build processes.
Explicitly added JS target with browser and Node.js configurations at the root level to ensure the NodeJsRootPlugin is loaded. Resolved the "IsolatedKotlinClasspathClassCastException" error in subprojects. Updated Yarn lock to reflect new dependencies.
- Updated Gradle version in `.env`, Dockerfiles, and wrapper to 9.3.1.
- Replaced alias-based application of `kotlinMultiplatform` plugin with direct `id` usage in subprojects to resolve "Plugin loaded multiple times" error.
- Applied centralized plugin management and Gradle daemon optimizations to improve Docker build stability and address KMP classloading issues.
Eliminated `browser {}` blocks from core library modules to resolve "Plugin loaded multiple times" error in Kotlin/JS Gradle builds. Adjusted to support a cleaner, centralized JS target configuration. Documented the root cause and workaround in troubleshooting logs.
Introduced `config.json` runtime configuration fetch mechanism to support the "Build Once, Deploy Everywhere" pattern. Replaced NGINX with Caddy for SPA deployment, enabling SPA routing, security headers, and static asset management. Updated Gradle and Kotlin/JS build configurations to align with the new runtime environment. Enhanced Dockerfile and health checks for optimized CI/CD workflows and improved SPA delivery.
Refined migration steps to address compatibility issues with `JdbcTransaction` and `PreparedStatementApi`. Added detailed troubleshooting for `exec` and `executeUpdate` usage. Updated formatting and clarified best practices for transitioning to Exposed 1.0.0.
Updated persistence layer to align with Exposed 1.0.0. Refactored table definitions to use `javaUUID` for consistency with `java.util.UUID`. Adjusted transaction handling for compatibility with the latest API changes. Enhanced error handling in database utility functions and refined pagination logic. Added documentation and migration updates for best practices with Exposed 1.0.0.
- Marked Phase 3 of roadmap as complete and adjusted next steps.
- Added detailed report documenting the Sync type mismatch resolution.
- Commented out the `desktop-app` service from `dc-gui.yaml`.
- Replaced `initKoin` with `startKoin` for DI initialization consistency across platforms.
- Introduced `StateNavigationPort` with `StateFlow` to streamline navigation state management.
- Migrated `AppScreen` to sealed class with route mapping for better navigation handling.
- Deleted unused `frontend/shared` module and removed related dependencies from build files.
- Cleaned up legacy navigation and Redux-related code, aligning with MVVM architecture.
- Documented E2E smoke test results for Ktor 3.4.0 and Exposed 1.0.0 migration in new reports and session logs.
- Introduced a fallback mechanism for desktop and web-app builds, ensuring robustness in distribution creation and static asset handling.
- Added a default SVG favicon to prevent 404 errors in the web-app.
- Updated Nginx configuration and Dockerfiles to include improved artifact paths, fallback handling, and script corrections.
- Updated Exposed migration guide with detailed breaking changes, migration steps, test matrix, and rollback plan.
- Published technical analysis for transitioning to Ktor 3.4.0, including API improvements and routing OpenAPI integration.
- Aligned `platform-bom` with upgraded dependencies: `exposed` 1.0.0 and `ktor` 3.4.0.
- Introduced `ktor-server-routing-openapi` dependency for dynamic API documentation support.
Included a detailed migration guide highlighting breaking changes from `1.0.0-rc-4` to `1.0.0`, including updates to UUID handling, transaction manager refactoring, R2DBC API adjustments, and SQLite JSONB automation.
Enhanced the migration document for Ktor 3.4.0 with structured explanations, including resource management, security updates, observability fixes, and migration checklist. Refined technical details for better clarity and compliance with recent Ktor changes.
Added a detailed technical analysis document outlining changes, migration steps, and implications of updating from Ktor 3.3.3 to 3.4.0 for both frontend and backend. Updated `.dockerignore` to include the `docs/` directory, required for Docker build context.
Integrated a new `:platform:architecture-tests` module using ArchUnit to enforce backend and frontend architecture rules. Configured explicit dependencies to all relevant modules and implemented rules to prevent cross-dependencies between backend services and frontend features. Replaced legacy Gradle-based architecture guards with this robust solution. Updated CI pipeline to include these tests.
Added documentation outlining the recommended frontend state-management approach using Unidirectional Data Flow (UDF). Documented the 2026-01-28 session addressing the critical SQLDelight async issue, detailing the analysis, fix implementation, and results. Updated PingEventRepositoryImpl to use `awaitAsOneOrNull` for proper async handling.
- Added session log documenting Web-App stabilization, including fixes for Webpack build and login issues.
- Implemented full-sync workaround in `PingEventRepositoryImpl` due to SQLDelight async driver limitations.
- Updated `PingDashboard` to display sync completion messages.
- Added `libs.sqldelight.coroutines` dependency and regenerated SQLDelight queries.
- Updated roadmap and journal with progress on frontend sync integration.
Improved `PlatformConfig` API base URL resolution with enhanced logging and fallback logic. Revised database initialization with version checks, schema migration, and error handling. Updated Keycloak configuration to enable `Direct Access Grants` and refine CORS/redirect settings. Adjusted Webpack proxy settings for correct API routing.
- Deleted `dummy.js` and its usage for sqlite-wasm integration as custom Webpack adjustments are no longer necessary.
- Removed outdated Webpack configuration files: `ignore-sqlite-wasm.js`, `ignore-sqlite-wasm-critical-dependency.js`, and `sqljs-fix.js`.
- Introduced `sqlite-config.js` for simplified and streamlined sqlite-wasm and Skiko Webpack configuration.
- Minor code formatting adjustments across frontend modules for improved consistency.
Documented the 2026-01-26 session, covering Web-App database issue resolution, PingViewModel test fixes, and Gradle build task optimizations. Included technical insights on Webpack, Wasm, and SQLDelight challenges, along with pending tasks for build and runtime testing.
- Added a comprehensive guide for SQLDelight integration in Kotlin Multiplatform, covering setup for Android, iOS, desktop, and web platforms.
- Introduced `DashboardCard` and `DenseButton` to the design system, focusing on enterprise-grade usability and visual consistency.
- Enhanced `PingViewModel` with structured logging (`LogEntry`) functionality for better debugging and traceability across API calls.
- Updated `AppTheme` with a refined color palette, typography, and shapes to align with enterprise UI standards.
- Extended Koin integration and modularized database setup for smoother dependency injection and code reuse.