wip: design-mosaik paused at 4/7
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,71 @@
|
|||||||
|
---
|
||||||
|
context: default
|
||||||
|
phase: design-mosaik (keine GSD-Phase)
|
||||||
|
task: 4
|
||||||
|
total_tasks: 7
|
||||||
|
status: in_progress
|
||||||
|
last_updated: 2026-09-28T16:05:48+02:00
|
||||||
|
---
|
||||||
|
|
||||||
|
# BLOCKING CONSTRAINTS — Read Before Anything Else
|
||||||
|
|
||||||
|
- [ ] CONSTRAINT: Dashboard-Reiter NICHT in die Seitenleiste — User hat das am 28.09. ausdrücklich abgelehnt ("gefallen mir so gar nicht"). Reiter bleiben in der Kopfzeile; nicht erneut vorschlagen.
|
||||||
|
- [ ] CONSTRAINT: Design-Arbeit läuft im Klon `~/projects/tessera-design` (Zweig `design/mosaik`), NICHT auf tessera-ctl main — der User wollte zurück können. Übertragung ins echte Projekt erst nach seiner Freigabe.
|
||||||
|
|
||||||
|
**Do not proceed until all boxes are checked.**
|
||||||
|
|
||||||
|
## Critical Anti-Patterns
|
||||||
|
|
||||||
|
| Pattern | Description | Severity | Prevention Mechanism |
|
||||||
|
|---------|-------------|----------|---------------------|
|
||||||
|
| Grösse ändern mit preventCollision | react-grid-layout 2.2.3 verwirft beim Resize w UND h, sobald die neue Grösse irgendeinen Nachbarn berührt — Maus-Wackeln nach unten blockiert das Schmalerziehen | advisory | Constraint `RESIZE_AXIS_FALLBACK` in `dashboard-grid.tsx` (Klon) behalten und bei Übertragung nach main mitnehmen; Bug steckt auch in live 1.4.0 |
|
||||||
|
| Dunkelmodus vortäuschen | `document.documentElement.classList.add('dark')` ändert next-themes `resolvedTheme` nicht → Hintergründe bleiben hell | advisory | Im Browser über den Theme-Knopf der Kopfzeile umschalten |
|
||||||
|
|
||||||
|
<current_state>
|
||||||
|
Design-Umbau „Mosaik" (Fluent 2 / GitHub-Stil) im Klon `~/projects/tessera-design`, Zweig `design/mosaik`, Stand `8440db8`, Arbeitsbaum sauber. Zweiter Stack läuft: web http://localhost:3100 (im Netz 192.168.200.241:3100), api 3101, eigene DB-Kopie. Vergleichsstand (tessera-ctl main, 3fc33e3) läuft auf Port 3000. Warten auf Rückmeldung des Users zu Runde 3b.
|
||||||
|
</current_state>
|
||||||
|
|
||||||
|
<completed_work>
|
||||||
|
- Runde 1 (25.09.): Tokens, dunkle App-Leiste, Fluent-Seitenleiste, Anmeldeseite mit Mosaik, Dashboard-Hintergründe (localStorage)
|
||||||
|
- Runde 2 (26.09.): Modulkacheln grau/Gelb nur aktiv, Begrüssung, Befehlsleiste, Kalender/Favoriten/Notiz ruhiger, leerer Zustand
|
||||||
|
- Runde 3 (28.09., 8532b63): Favoriten schmaler (Resize-Achsen-Fallback), Ansicht zentriert, Kalender einzeilig + „Heute/Morgen" + defaultH 16, „Blüte" dunkel weg (Ersatz Nebel), Symbol-Chip in Akzentfarbe, Hover-Anheben, gestaffeltes Einblenden
|
||||||
|
- Runde 3b (28.09., 8440db8): Reiter zurück in die Kopfzeile, Begrüssung zweizeilig unten in der Seitenleiste über „Einklappen"
|
||||||
|
- Tests: web 602 grün (dashboard/layout/portal), tsc sauber, Biome ohne neue Warnungen
|
||||||
|
</completed_work>
|
||||||
|
|
||||||
|
<remaining_work>
|
||||||
|
- Rückmeldung des Users zu Runde 3b (Begrüssung in der Seitenleiste, lebendigere Kacheln)
|
||||||
|
- Nach Freigabe: Design sauber geplant ins echte Projekt übertragen (GSD quick/Phase), Hintergrundwahl pro Benutzer in der DB statt localStorage, CHANGELOG „Unveröffentlicht"
|
||||||
|
- RESIZE_AXIS_FALLBACK auch für main/live (bei der Übertragung oder vorab als Einzelkorrektur, falls der User das will)
|
||||||
|
</remaining_work>
|
||||||
|
|
||||||
|
<decisions_made>
|
||||||
|
- Reiter bleiben in der Kopfzeile (User-Ablehnung der Seitenleisten-Variante)
|
||||||
|
- Begrüssung unten in der Seitenleiste, eingeklappt ausgeblendet
|
||||||
|
- „Blüte" im Dunkelmodus nicht angeboten (Farbstufen), Ersatz „Nebel"
|
||||||
|
- Ansicht zentriert belegte Spalten; Bearbeitungsmodus volle Breite
|
||||||
|
- Separater Klon statt main, damit Rückweg offen bleibt
|
||||||
|
</decisions_made>
|
||||||
|
|
||||||
|
<blockers>
|
||||||
|
- Keine technischen. Wartet auf User-Rückmeldung.
|
||||||
|
</blockers>
|
||||||
|
|
||||||
|
## Required Reading (in order)
|
||||||
|
1. Memory `project_design_mosaik.md` — Verlauf aller Runden und User-Wünsche
|
||||||
|
2. `git -C ~/projects/tessera-design log --oneline 3fc33e3..design/mosaik` — alle Design-Commits
|
||||||
|
3. `~/projects/tessera-design/.design-shots/r3/` — aktuelle Bildschirmfotos
|
||||||
|
|
||||||
|
## Infrastructure State
|
||||||
|
- tessera-design Stack (web 3100 / api 3101 / db): läuft; nach Code-Änderung `docker compose up -d --build web` im Klon (~2 min)
|
||||||
|
- tessera-ctl Stack (Port 3000): läuft, Stand 3fc33e3
|
||||||
|
- Login lokal: admin / admin123
|
||||||
|
- Zweig `design/mosaik` existiert NUR im Klon (origin = lokales tessera-ctl, nicht gepusht, nicht in Gitea)
|
||||||
|
|
||||||
|
<context>
|
||||||
|
Der User fand Tessera zu trist; Vorbild Microsoft 365/Fluent + GitHub, kein „KI-Stil". Ab Runde 2 keine bunten Farben: Gelb (persönliche Akzentfarbe) oder Grau. Er ist mit dem Design grundsätzlich zufrieden („ansonsten gefällt mir das design gut") und wollte „mehr Leben in den Widgets". Gespräch auf Deutsch, duzen, ganze Sätze, keine Fachbegriffe.
|
||||||
|
</context>
|
||||||
|
|
||||||
|
<next_action>
|
||||||
|
Start with: User fragen, wie ihm Runde 3b auf http://localhost:3100 gefällt; bei Freigabe die Übertragung von `design/mosaik` nach tessera-ctl main planen.
|
||||||
|
</next_action>
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
{
|
||||||
|
"version": "1.0",
|
||||||
|
"timestamp": "2026-09-28T16:05:48+02:00",
|
||||||
|
"phase": null,
|
||||||
|
"phase_name": "Design-Umbau Mosaik (kein GSD-Phase, Design-Spielwiese)",
|
||||||
|
"phase_dir": "~/projects/tessera-design (Klon, Zweig design/mosaik)",
|
||||||
|
"plan": null,
|
||||||
|
"task": null,
|
||||||
|
"total_tasks": null,
|
||||||
|
"status": "paused",
|
||||||
|
"completed_tasks": [
|
||||||
|
{"id": 1, "name": "Runde 1: Fluent-2/GitHub-Look (Tokens, App-Leiste, Seitenleiste, Anmeldeseite, Dashboard-Hintergruende)", "status": "done", "commit": "3c62a1a..76520b2"},
|
||||||
|
{"id": 2, "name": "Runde 2: Modulsymbole grau/gelb, Begruessung, Befehlsleiste, Kalender/Favoriten/Notiz ruhiger, leerer Zustand", "status": "done", "commit": "2281120,b06a2d1"},
|
||||||
|
{"id": 3, "name": "Runde 3: Resize-Achsen-Fallback (Favoriten schmaler), Zentrierung, Kalender einzeilig + defaultH 16, Bluete dunkel weg, Symbol-Chip/Hover/Einblenden", "status": "done", "commit": "8532b63"},
|
||||||
|
{"id": 4, "name": "Runde 3b: Reiter zurueck in Kopfzeile (Seitenleisten-Reiter abgelehnt), Begruessung unten in Seitenleiste", "status": "done", "commit": "8440db8"}
|
||||||
|
],
|
||||||
|
"remaining_tasks": [
|
||||||
|
{"id": 5, "name": "Rueckmeldung des Users zu Runde 3b abwarten (Begruessung in Seitenleiste, lebendigere Kacheln)", "status": "not_started"},
|
||||||
|
{"id": 6, "name": "Design ins echte Projekt (tessera-ctl main) uebertragen - sauber geplant (gsd-quick/Phase), getestet; Hintergrundwahl dann pro Benutzer in DB statt localStorage", "status": "not_started"},
|
||||||
|
{"id": 7, "name": "RESIZE_AXIS_FALLBACK auch fuer main/live mitnehmen (Bug: preventCollision verwirft w UND h bei Maus-Wackeln)", "status": "not_started"}
|
||||||
|
],
|
||||||
|
"blockers": [],
|
||||||
|
"async_jobs": [],
|
||||||
|
"human_actions_pending": [
|
||||||
|
{"action": "User schaut http://localhost:3100 (bzw. 192.168.200.241:3100) an und gibt Rueckmeldung zu Runde 3b", "context": "Freigabe der Design-Richtung vor Uebertragung ins echte Projekt", "blocking": true}
|
||||||
|
],
|
||||||
|
"decisions": [
|
||||||
|
{"decision": "Dashboard-Reiter bleiben in der Kopfzeile", "rationale": "User: Reiter in der Seitenleiste 'gefallen mir so gar nicht' - nicht wieder vorschlagen", "phase": "design"},
|
||||||
|
{"decision": "Begruessung zweizeilig unten in der Seitenleiste ueber 'Einklappen', eingeklappt ausgeblendet", "rationale": "User will sie behalten, aber Reiter+Begruessung ueber den Kacheln war zu viel Platz", "phase": "design"},
|
||||||
|
{"decision": "Hintergrund 'Bluete' im Dunkelmodus nicht angeboten, Ersatz 'mist'", "rationale": "sichtbare Farbstufen (8 Bit) auch mit Korn", "phase": "design"},
|
||||||
|
{"decision": "Ansicht zentriert belegte Spalten, Bearbeitungsmodus volle Breite", "rationale": "leerer Streifen rechts auf breiten Schirmen; im Bearbeiten muessen freie Spalten erreichbar sein", "phase": "design"},
|
||||||
|
{"decision": "Design-Arbeit im separaten Klon statt auf main", "rationale": "User wollte 'danach wieder zurueck koennen'", "phase": "design"}
|
||||||
|
],
|
||||||
|
"uncommitted_files": [],
|
||||||
|
"next_action": "Rueckmeldung des Users zu http://localhost:3100 einholen; bei Freigabe Uebertragung von design/mosaik nach tessera-ctl main planen (inkl. RESIZE_AXIS_FALLBACK, Hintergrund pro Benutzer in DB).",
|
||||||
|
"context_notes": "Klon ~/projects/tessera-design hat origin = lokales tessera-ctl, Zweig design/mosaik ist NICHT nach Gitea gepusht und nur im Klon vorhanden (13 Commits ab 3fc33e3). Stack dort: docker compose (web 3100, api 3101), nach Aenderung 'docker compose up -d --build web' (~2 min). Login admin/admin123. Bildschirmfotos in .design-shots/ (gitignored). tessera-ctl main = origin/main = 3fc33e3, sauber; 1.4.0 live."
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user