[Epic] Day-Planner — Multi-Source Todo-Architektur #360
Labels
No labels
app/archiv
app/einkaufslisten
app/imap-client
app/wissensbasis
arch-answered
arch-question
area/api
area/auth
area/infra
area/mobile
area/shared
area/ui
area/web
portfolio-status
prio/high
prio/low
prio/medium
roadmap/public
size/l
size/m
size/s
size/xl
size/xs
status/blocked
status/needs-info
type/bug
type/chore
type/docs
type/feature
type/idea
type/refactor
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
admin-mrrm/mrrmlabapp#360
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Vision
Ein Assistent, der jeden Tag plant: Termine + auto-eingeplante Todos so, dass sie an einem Tag tatsächlich machbar sind. Beispiel: Montags steht „Einkaufen" mit der Einkaufsliste, und davor wird „Paket abholen" eingeplant, weil die Station auf dem Weg liegt und die Gewohnheit des Users das hergibt.
Sources (Todo-Zulieferer)
Todos entstehen automatisch aus:
Architektur-Schichten
Candidate-Modell (Kern-Entscheidung)
Candidate hält nur Refs + Planungs-Daten, kein Inhalt:
listId,subTodoListId,mailId,trackingId,calendarEventId, …source,sourceRef(Idempotenz),lifecycleStateearliestAt/latestAt,estDuration,locationHints[],dependsOn[],priority,recurrenceplannedSlot,plannedAfter/plannedBeforemanual/derived-all-items/auto-on-event/time-elapsedDetails siehe Phase-1-Spike.
Phasen
tracking-todo-writerumstellen, dass er Candidates erzeugt statt Todos. Adressiert #328/#329/#330 (Showstopper-Beseitigung in bestehender Source).Out-of-scope (für jetzt)
Bezug
Offene Architektur-Entscheidungen (für Phase 1)
ownerSub?candidate_refs) oder JSONB-Feld?lifecycleStateals Enum oder mehrere Boolean-Flags (isPlanned,isDone,isObsolete)?IDataSource-Interface + Adapter für Mails, Listen, Notizen #441PM-Phase-1-Sub-Issue erstellt: #453 (Candidate-Schema Spike + ADR).
Scope-Aufteilung:
Die vier offenen Architektur-Entscheidungen in der Beschreibung dieses Epics werden parallel via
arch-question-Konsultation geklärt (separates Bot-Issue folgt) — Ergebnisse fliessen ins ADR von #453 ein.arch-question für die vier offenen Schema-Entscheidungen geöffnet: #454. Phase-1 (#453) blockt darauf.
State-Realignment (Architekt-Lese, 2026-06-09)
Inventur des Repos zeigt: das Epic ist deutlich weiter, als die Phasen-Liste oben suggeriert. Faktisch ausgeliefert:
candidates.schema.ts, Migration 0017tracking-candidate-writer.service.ts+ Testsmail-candidate-writer.service.ts+ Testshabit-candidate-writer.service.ts+ Testsplanner.{service,controller}.ts,slot-plan.ts— aber kein einziger Aufruf von Web/Mobilecalendar.schema.ts(subscriptions + events) — Outlook-spezifischer Sync-Adapter nicht geprüftTatsächlich offene Arbeit (was das Feature beim User landen lässt):
GET /planner/todayaufruft. Höchste Priorität, da der API-Backend ungenutzt verfällt.slot-plan.tsmuss Audit: löst es die im ADR §2 versprochene 1:n-Cardinality auf, mitdependsOn+earliestAt/latestAt?PM-Aufgaben daraus
/planner/todayaufrufen, Termine + geplante Candidates rendern, manuellesPOST /planner/run).calendar.service.tsreicht für Phase 6, oder braucht es echten Outlook-Adapter (Microsoft Graph)?Anmerkung zum Prozess: PM-Sub-Issue #453 + arch-question #454 wurden voreilig erstellt, ohne den Repo-State zu prüfen. Beide jetzt geschlossen. Lessons-learned für PM-Side: Repo-Inventur (Schema + Module + Migrations) vor Sub-Issue-Anlage gehört in den Standard-Refresh — die Memory-Regel
feedback_refresh_repo_code.mdadressiert das genau.KW25 Phase-5-Folgearbeiten (PM-Scoping nach rc20-Device-Validation 2026-06-12)
Sub-Issues zur weiteren Detail-Arbeit am Day-Planner:
Noch offen für späteres Scoping (warten auf arch-Antwort zu #461):
Phase-5-UI-Shell selbst ist via #456 in rc20 live.
Sub-Issue für Phase 7 (Planner v1 regelbasiert): #483 — dependsOn-DAG-Ordering.
Sub-Issue für Phase 4 (Habit-Source UI): #486 — Habits CRUD UI (Backend bereits vorhanden).