Files
schalli 6003f21431
Tessera CI/CD / Lint & Type Check (push) Successful in 49s
Tessera CI/CD / Tests (push) Successful in 1m4s
Tessera CI/CD / Build & Publish Images (push) Successful in 2m59s
docs(quick-260916-j4f): Nachtraege — Tooltip-Umbruch, Notiz-Farbmodus, Changelog-Stichpunkte; Zusammenfassung, Aktenstand
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-16 13:57:44 +02:00

7.1 KiB

phase, plan, status, subsystem, tags, dependency-graph, tech-stack, key-files, decisions, metrics, actuals, plan_head_before
phase plan status subsystem tags dependency-graph tech-stack key-files decisions metrics actuals plan_head_before
quick-260916-j4f 01 complete dashboard-widgets
calendar-widget
note-widget
changelog
theming
tooltip
requires provides affects
quick-260916-htc (Kalender-Widget-Neubau)
quick-260916-iex (Notiz-Häkchen)
quick-260916-dcz (CHANGELOG.md/changelog-view.tsx-Vorbild)
TOOLTIP_WIDTH_PX/TOOLTIP_EDGE_PX-Konstanten (calendar-widget.tsx)
Notiz-Widget folgt next-themes (colorMode)
CHANGELOG.md Stichpunkt-Fassung
apps/web/src/components/dashboard/widgets/calendar-widget.tsx
apps/web/src/components/dashboard/widgets/note-widget.tsx
CHANGELOG.md
added patterns
mounted-Guard + useTheme().resolvedTheme (Muster changelog-view.tsx
jetzt auch im Notiz-Widget)
Breite+Klemmung eines Portal-Tooltips aus einer gemeinsamen Modul-Konstante statt zweier hart codierter Werte
created modified deleted
apps/web/src/components/dashboard/widgets/calendar-widget.tsx
apps/web/src/components/dashboard/widgets/calendar-widget.test.tsx
apps/web/src/components/dashboard/widgets/note-widget.tsx
apps/web/src/components/dashboard/widgets/note-widget.test.tsx
CHANGELOG.md
.planning/quick/260916-j4f-nachtraege-kalender-tooltip-umbrechen-no/CHANGELOG.soll.md
Keine der drei Aufgaben erforderte eine Abweichung vom Plan — Zeilennummern in den Live-gemessenen Notizen des Planers wichen geringfügig von den beim Ausführen gelesenen ab (z. B. Tooltip-Block bei Z. 296-315 statt Z. 290-315), inhaltlich stimmte aber alles überein.
duration completed
~10 min 2026-09-16
tokens tasks commits
4127 3 3
4f823c3

Phase quick-260916-j4f Plan 01: Nachträge — Kalender-Tooltip umbrechen, Notiz-Farbmodus, CHANGELOG straffen Summary

Drei vom Anwender im Browser gemeldete Nachbesserungen an den heutigen Dashboard-Arbeiten: Der Termin-Tooltip des Kalender-Widgets bricht lange Titel jetzt um statt sie abzuschneiden, das Notiz-Widget folgt dem Tessera-Farbschalter statt der Betriebssystem-Einstellung, und CHANGELOG.md ist von Fließtext auf kurze Stichpunkte gestrafft.

Was gebaut wurde

Task 1 — Kalender-Tooltip: Titel umbrechen, Breite/Klemmung aus einer Konstante (Commit b16e4b8) Zwei neue Modul-Konstanten TOOLTIP_WIDTH_PX = 288 und TOOLTIP_EDGE_PX = 4 ersetzen die bisher zwei getrennt hart codierten Werte (w-60 = 240px in der Klassenliste, - 244 in der left-Berechnung), die driften konnten. Der Tooltip-Div bekommt die Breite jetzt über style.width, left klemmt mit Math.max(TOOLTIP_EDGE_PX, Math.min(hover.rect.left, window.innerWidth - TOOLTIP_WIDTH_PX - TOOLTIP_EDGE_PX)), top nutzt ebenfalls TOOLTIP_EDGE_PX. Der Titel-Span im Tooltip trägt min-w-0 break-words statt truncate; die Uhrzeit-Spalte (shrink-0) und die Liste „Nächste Termine“ (weiterhin truncate) blieben unverändert. RED-GREEN: Test 4c wurde zuerst rot verifiziert (Titel hatte noch truncate, Breite kam aus w-60), dann grün. Alle 10 Kalender-Tests grün (vorher 9).

Task 2 — Notiz-Widget folgt dem Tessera-Farbmodus (Commit 4c2495b) useTheme() aus next-themes plus eigener mounted-Effekt (getrennt vom bestehenden Cleanup-Effekt) liefern colorMode: 'light' | 'dark' = mounted && resolvedTheme === 'dark' ? 'dark' : 'light' — exakt das Muster aus changelog-view.tsx. Das Wurzel-Div trägt jetzt data-color-mode={colorMode} statt des festen Werts "auto" (der der Betriebssystem-Einstellung folgte, nicht dem Tessera-Schalter). Im Test wurde ein gehobener Themenzustand über vi.hoisted eingeführt (vi.mock('next-themes', ...) liest themeMock.resolvedTheme), im beforeEach auf 'light' zurückgesetzt. RED-GREEN: beide neuen Tests waren zuerst rot (Attribut lieferte noch 'auto'), dann grün. Alle 9 Notiz-Tests grün (vorher 7), tsc --noEmit Exit 0.

Task 3 — CHANGELOG.md auf Stichpunkte gestrafft (Commit a6bb7aa) CHANGELOG.md wurde byte-genau durch den geprüften Inhalt von CHANGELOG.soll.md ersetzt (drei ## -Überschriften, 28 Stichpunkte, kein Satzpunkt am Zeilenende, echte Umlaute, keine CRLF). Die Vorlage im Auftragsordner wurde anschließend gelöscht (rm, war nie im Git). Beim Lesen der Vorlage fiel kein sachlicher Fehler auf — die vom Planer genannte Prüfung (Link-Eintrag unter 1.0.0 historisch korrekt, Kalender-Widget/Favoriten-Titel bewusst unter „Neu“ neu sortiert) war zutreffend, keine Korrektur nötig.

Gemessene Zahlen

  • Vorher (Basislinie laut Plan/STATE.md): 52 Dateien / 344 Tests.
  • Nachher: 52 Dateien / 347 Tests, alle grün (+1 Kalender, +2 Notiz — exakt wie erwartet).
  • pnpm --filter @tessera/web type-check → Exit 0.
  • pnpm --filter @tessera/web exec vitest run → 52 Dateien / 347 Tests grün, darin umlaut-guard 3/3 und changelog.test.ts 10/10.
  • sh .gitea/scripts/publish-release.sh --dry-run --tag v1.1.0 → Exit 0, JSON-Body enthält den 1.1.0-Abschnitt inkl. „Seite „Was ist neu““.
  • CHANGELOG.soll.md existiert nicht mehr; war nie getrackt, taucht in git status nicht auf.
  • Kein biome check, kein Docker-Build, kein Deploy, kein Testserver, kein git push — wie vorgegeben.

Commits

  • b16e4b8 — fix(web): Kalender-Tooltip bricht lange Termintitel um (Breite/Klemmung aus einer Konstante)
  • 4c2495b — fix(web): Notiz-Widget folgt dem Hell/Dunkel-Schalter von Tessera statt der Systemeinstellung
  • a6bb7aa — docs: Changelog auf Stichpunkte gestrafft (kein Fließtext)

Deviations from Plan

None — Plan exakt wie geschrieben ausgeführt. Die im Plan als „Live gemessen“ genannten Zeilennummern wichen beim tatsächlichen Lesen der Dateien minimal ab (z. B. Tooltip-Block bei Z. 296-315 statt Z. 290-315), inhaltlich und strukturell stimmte aber alles überein — keine Fixes, keine Rule-1/2/3/4-Fälle.

Known Stubs

Keine.

Threat Flags

Keine neue, im Plan nicht bereits erfasste sicherheitsrelevante Oberfläche gefunden. Alle vier im <threat_model> benannten Maßnahmen (T-J4F-01 bis T-J4F-04) sind wie spezifiziert umgesetzt: Termintitel bleibt React-Textknoten ohne dangerouslySetInnerHTML, break-words bricht auch wortlose Zeichenketten bei fester Breite und weiterhin maximal 5 Einträgen, resolvedTheme fällt auf jeden anderen Wert als 'dark' auf 'light' zurück, CHANGELOG.md wurde byte-genau aus der geprüften Vorlage übernommen und rehypeSanitize in changelog-view.tsx blieb unangetastet.

Self-Check: PASSED

  • apps/web/src/components/dashboard/widgets/calendar-widget.tsx — FOUND, enthält TOOLTIP_WIDTH_PX = 288 und min-w-0 break-words
  • apps/web/src/components/dashboard/widgets/note-widget.tsx — FOUND, enthält data-color-mode={colorMode}, kein data-color-mode="auto" mehr
  • CHANGELOG.md — FOUND, 3 Überschriften, 28 Stichpunkte
  • .planning/quick/260916-j4f-nachtraege-kalender-tooltip-umbrechen-no/CHANGELOG.soll.md — CONFIRMED DELETED
  • Commit b16e4b8 — FOUND in git log
  • Commit 4c2495b — FOUND in git log
  • Commit a6bb7aa — FOUND in git log
  • Gesamtlauf: 52 Testdateien / 347 Tests grün, Web-Type-Check Exit 0, Release-Dry-Run Exit 0