mirror of
https://github.com/praktimarc/kst4contest.git
synced 2026-10-19 05:42:58 +02:00
Etappen 3 to 6a of the migration (129 commits). Every window the operator sees is Compose; the JavaFX ones still exist beside them so the two could be compared against a live session, which is the only way the differences came to light. The toolchain first, then the settings window with its eleven tabs and 72 real preferences; then the multi-column table as a component, and with it the rules it needs -- stable row identity, a selection that survives a refresh, column order the operator can drag, and a repaint when the rows change rather than when the list instance does. Then the update and monitor windows, and the main window: 22 station columns, the filter bar, the selected-station panel, the message tabs, the priority bar, the sked controls, the status indicators and the timeline, assembled behind a splitter because Compose has none. The map stops being a WebView. A Compose canvas projects WebMercator tiles itself, with the clustering in core and an asynchronous fetcher in place of the local tile proxy; derive() becomes a pure Kotlin reimplementation instead of a reflection call into com.sun.javafx. Most of the volume here is parity the operator would notice rather than new behaviour: desktop density instead of Material's phone minimums, colours taken from the JavaFX stylesheets instead of Material's palette, row dividers, band columns, grid-square labels and their colours, the home marker and antenna beam, pinch-to-zoom under Wayland, and layouts that survive a window narrower than the chart they stack. Two lessons are worth more than the diff. A control bound to a value Compose cannot observe writes through and never redraws -- that one shipped repeatedly with a green build, because no test drew anything. And a layout that clips instead of wrapping is worse than one that is merely too narrow: half a word is the worst available outcome.
34 lines
1.4 KiB
Markdown
34 lines
1.4 KiB
Markdown
# CLAUDE.md
|
|
|
|
Diese Datei gilt für Claude Code in diesem Repository.
|
|
|
|
## Projektregeln
|
|
|
|
Die fachlichen und stilistischen Regeln stehen in **[AGENTS.md](AGENTS.md)** und
|
|
**[docs/PROJECT_CONTEXT.md](docs/PROJECT_CONTEXT.md)**. Beide sind verbindlich und
|
|
werden hier nicht wiederholt. Besonders wichtig: Kommunikation auf Deutsch,
|
|
Quelltextkommentare und Javadoc auf Englisch, und das Konzept-vor-Umsetzung-Vorgehen
|
|
aus dem Abschnitt „Mandatory interaction rule" in `AGENTS.md`.
|
|
|
|
## Subagenten
|
|
|
|
Subagenten (Agent-Tool) dürfen ohne Rückfrage genutzt werden, wenn eine Aufgabe
|
|
davon profitiert — insbesondere für Abschlussprüfungen ganzer Zweige und für
|
|
umfangreiche Umbauten, bei denen ein frischer Blick pro Teilaufgabe etwas wert ist.
|
|
|
|
Nicht sinnvoll bei kleinen, aufeinander aufbauenden Schritten: dort liest jeder
|
|
neue Subagent die Codebasis von null und kostet mehr, als er beiträgt.
|
|
|
|
## Build
|
|
|
|
Gradle, nicht Maven. `./gradlew clean build`, Java 21. Das Projekt besteht aus
|
|
zwei Modulen: `core` (Fachlichkeit) und `app-desktop` (Oberfläche). Paketnamen
|
|
sind über beide Module hinweg dieselben.
|
|
|
|
## Laufende Arbeit
|
|
|
|
Spezifikationen liegen unter `docs/superpowers/specs/`, Umsetzungspläne unter
|
|
`docs/superpowers/plans/`. Der aktuelle Umbau ist die Ablösung von JavaFX durch
|
|
Compose Multiplatform in neun Etappen; Etappe 1 (Gradle, zwei Module, JPMS raus)
|
|
ist abgeschlossen.
|