docs(quick-260916-j4f): Nachtraege — Tooltip-Umbruch, Notiz-Farbmodus, Changelog-Stichpunkte; Zusammenfassung, Aktenstand
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
+88
@@ -0,0 +1,88 @@
|
||||
---
|
||||
phase: quick-260916-j4f
|
||||
plan: 01
|
||||
status: complete
|
||||
subsystem: dashboard-widgets
|
||||
tags: [calendar-widget, note-widget, changelog, theming, tooltip]
|
||||
dependency-graph:
|
||||
requires: [quick-260916-htc (Kalender-Widget-Neubau), quick-260916-iex (Notiz-Häkchen), quick-260916-dcz (CHANGELOG.md/changelog-view.tsx-Vorbild)]
|
||||
provides: [TOOLTIP_WIDTH_PX/TOOLTIP_EDGE_PX-Konstanten (calendar-widget.tsx), Notiz-Widget folgt next-themes (colorMode), CHANGELOG.md Stichpunkt-Fassung]
|
||||
affects: [apps/web/src/components/dashboard/widgets/calendar-widget.tsx, apps/web/src/components/dashboard/widgets/note-widget.tsx, CHANGELOG.md]
|
||||
tech-stack:
|
||||
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]
|
||||
key-files:
|
||||
created: []
|
||||
modified:
|
||||
- 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
|
||||
deleted:
|
||||
- .planning/quick/260916-j4f-nachtraege-kalender-tooltip-umbrechen-no/CHANGELOG.soll.md
|
||||
decisions:
|
||||
- "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."
|
||||
metrics:
|
||||
duration: ~10 min
|
||||
completed: 2026-09-16
|
||||
actuals:
|
||||
tokens: 4127
|
||||
tasks: 3
|
||||
commits: 3
|
||||
plan_head_before: 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
|
||||
Reference in New Issue
Block a user