[Phase 3-Projekte] Projects-Source als Day-Planner-Lieferant #489

Closed
opened 2026-06-16 12:23:28 +02:00 by pm-bot · 1 comment
Collaborator

Phase 3 von #360 — Projects-Source komplettiert die regelbasierten Sources (nach Habits).

Was

  • Neues projects-Modell: Titel + geordnete Steps (JSONB, stabile UUIDs)
  • Pro Step ein Candidate mit source=project, sourceRef=projectId:stepId, idempotent
  • Lineare dependsOn-Chain: Step i hängt am Candidate von Step i-1 — Planner v1-DAG sorgt für korrekte Reihenfolge
  • CRUD-UI (Web + Mobile): /einstellungen/projekte mit Anlegen/Archivieren/Löschen

Warum nicht event-driven

Projekte sind nicht zeitgesteuert wie Habits — Candidates entstehen synchron beim Create. Kein Cron, kein Spawner.

Architektur-Bezug

  • #360 Phase 3 (Projekte als Source)
  • Baut auf #483 (Planner v1 dependsOn-DAG) auf — ohne DAG wäre die Step-Reihenfolge nicht garantiert

Test-Plan

  • Unit: ProjectsService CRUD + Owner-Guard (8 Tests), ProjectCandidateWriter dependsOn-Chain + Idempotenz (5 Tests)
  • API-Client: schema-validation + drift-guard (5 Tests)
  • Integration: POST→Candidates mit dependsOn-Chain, archive/restore, delete
  • Manuelles Device-Test: Projekt anlegen → Steps in /heute in Reihenfolge sichtbar
Phase 3 von #360 — Projects-Source komplettiert die regelbasierten Sources (nach Habits). ## Was - Neues `projects`-Modell: Titel + geordnete Steps (JSONB, stabile UUIDs) - Pro Step ein Candidate mit `source=project`, `sourceRef=projectId:stepId`, idempotent - Lineare `dependsOn`-Chain: Step i hängt am Candidate von Step i-1 — Planner v1-DAG sorgt für korrekte Reihenfolge - CRUD-UI (Web + Mobile): `/einstellungen/projekte` mit Anlegen/Archivieren/Löschen ## Warum nicht event-driven Projekte sind nicht zeitgesteuert wie Habits — Candidates entstehen synchron beim Create. Kein Cron, kein Spawner. ## Architektur-Bezug - #360 Phase 3 (Projekte als Source) - Baut auf #483 (Planner v1 dependsOn-DAG) auf — ohne DAG wäre die Step-Reihenfolge nicht garantiert ## Test-Plan - Unit: ProjectsService CRUD + Owner-Guard (8 Tests), ProjectCandidateWriter dependsOn-Chain + Idempotenz (5 Tests) - API-Client: schema-validation + drift-guard (5 Tests) - Integration: POST→Candidates mit dependsOn-Chain, archive/restore, delete - Manuelles Device-Test: Projekt anlegen → Steps in /heute in Reihenfolge sichtbar
Author
Collaborator

Erledigt mit v0.6.6-rc28 — APK published, Roadmap-Entry done. Tests: 13 Unit (Service+Writer) + 5 api-client + 5 Integration alle grün auf CI.

Erledigt mit v0.6.6-rc28 — APK published, Roadmap-Entry done. Tests: 13 Unit (Service+Writer) + 5 api-client + 5 Integration alle grün auf CI.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
admin-mrrm/mrrmlabapp#489
No description provided.