• v0.6.11-rc39 a3fadcfc8c

    v0.6.11-rc39
    Some checks failed
    continuous-integration/drone/push Build is passing
    continuous-integration/drone/pr Build is failing
    continuous-integration/drone/tag Build is passing
    Stable

    admin-mrrm released this 2026-07-05 11:17:57 +02:00 | 13 commits to main since this release

    GET /planner/today löst jetzt automatisch eine Planung aus wenn der Tagesplan noch leer ist — kein manuelles 'Tag planen' mehr nötig. Kandidaten aus Habits, Projekten und Kalender erscheinen beim ersten Öffnen sofort.

    Highlights

    • PlannerService.getTodayOrPlan(): wenn keine geplanten Items für heute → planToday() automatisch ausführen
    • GET /planner/today verwendet jetzt getTodayOrPlan() statt getToday()
    • DayPlannerScreen: Button-Label 'Tag jetzt planen' → 'Neu planen'
    • TDD: 2 neue Tests für getTodayOrPlan (Rückgabe bestehender Plan / Auto-Run bei leerem Plan)
    Downloads
  • v0.6.10-rc38 92a9cadb83

    v0.6.10-rc38
    Some checks failed
    continuous-integration/drone/push Build is failing
    continuous-integration/drone/pr Build is failing
    continuous-integration/drone/tag Build is passing
    Stable

    admin-mrrm released this 2026-07-04 13:31:10 +02:00 | 19 commits to main since this release

    Das Heute-Screen hat jetzt ein Schnelleingabe-Feld direkt im Header: Titel eintippen, '+' drücken — ein manueller Candidate wird sofort angelegt und in den Tagesplan eingetragen. Kein 'Tag planen' nötig für manuelle Todos.

    Highlights

    • API: POST /planner/quick-todo { title } → DayPlanDto (inserted as source='manual', lifecycleState='planned')
    • api-client: PlannerResource.quickTodo(title)
    • feature-day-planner: useQuickTodo() Hook mit optimistischem setQueryData
    • DayPlannerScreen: Inline-Eingabefeld + '+'-Button im Header (web + mobile shared)
    • TDD: planner.service.spec.ts — quickTodo-Beschreibung (insert + getToday-Rückgabe)
    Downloads
  • v0.6.8-rc36 799789d161

    v0.6.8-rc36
    Some checks failed
    continuous-integration/drone/push Build is passing
    continuous-integration/drone/pr Build is failing
    continuous-integration/drone/tag Build is passing
    Stable

    admin-mrrm released this 2026-07-01 07:12:40 +02:00 | 29 commits to main since this release

    TrackingDetailScreen zeigt jetzt alle zugehörigen Candidates (pending/done) mit Erledigt-Button direkt an. Neuer API-Endpunkt GET /candidates?trackingId=. Auto-Todo-Hinweistext korrigiert: 'Liste Pakete' → 'Tagesplan' (Candidates landen im Planner, nicht in einer Liste).

    Highlights

    • API: CandidatesService.listByTracking() + GET /candidates?trackingId=, inkl. TDD-Spec
    • api-client: CandidatesResource.listByTracking() + TrackingCandidate-Typ
    • feature-tracking: useTrackingCandidates() + useMarkCandidateDoneFromTracking() hooks
    • TrackingDetailScreen: Todos-Sektion mit CandidateRow (title, priority, Erledigt-Button, Durchstreichung wenn done)
    • Fix: Info-Box-Text 'Liste Pakete' → 'Tagesplan' (accurate: candidates go to planner, not a list)
    Downloads
  • v0.6.6-rc31 1987d53f28

    v0.6.6-rc31
    All checks were successful
    continuous-integration/drone/push Build is passing
    continuous-integration/drone/pr Build is passing
    continuous-integration/drone/tag Build is passing
    Stable

    admin-mrrm released this 2026-06-23 08:10:00 +02:00 | 52 commits to main since this release

    Schließt Issue #452: Auto-Indexing-on-Mutation ist jetzt vollständig aktiv. Der Code-Level-Wireup war seit rc30 fertig (_layout.tsx publiziert via onListSourceChange in die DataSources, IndexingService.start() subscribed beim /search-Mount). Dieses RC aktiviert den Maestro-Smoke in der Auto-Trigger-Variante: die Phase2-smoke läuft jetzt ohne manuellen 'Jetzt indexieren'-Tap und bestätigt, dass Quellen >= 1 nach einer Listenerstellung automatisch erscheint. Stale-Kommentar in search-ports.ts aktualisiert.

    Highlights

    • phase2-mutation-observer-smoke.yaml: Auto-Trigger-Variante — kein 'Jetzt indexieren'-Tap mehr, Quellen >= 1 erscheint automatisch nach Listenerstellung
    • search-ports.ts: debugIndexAll-Kommentar auf aktuellen Stand gebracht (Wireup ist seit rc30 aktiv)
    Downloads
  • v0.6.6-rc30 9bb0cc9dfc

    v0.6.6-rc30
    All checks were successful
    continuous-integration/drone/push Build is passing
    continuous-integration/drone/tag Build is passing
    continuous-integration/drone/pr Build is passing
    Stable

    admin-mrrm released this 2026-06-23 07:07:22 +02:00 | 53 commits to main since this release

    Verdrahtet den initial-vector-index Background-Task (expo-task-manager) und schließt damit die KI-Foundation Phase 2 ab. Der Embedder läuft jetzt automatisch im Hintergrund, sobald das Gerät lädt und im WLAN ist — kein manueller Jetzt-indexieren-Button mehr nötig. listSourceIds gibt echte IDs zurück (Shopping-Listen + Notizen), der INITIAL_INDEX_TASK ruft indexingService.runInitialIndex() auf. DebugIndexBar-Disclaimer entfernt. Maestro phase2-mutation-observer-smoke auf deutsche UI-Strings aktualisiert. Roadmap-Bookkeeping: rc1–rc9 auf done gesetzt (waren stale-next).

    Highlights

    • batch-task.ts: INITIAL_INDEX_TASK — läuft maximal 1×/Tag bei Ladung+Wifi, ruft indexingService.runInitialIndex() über SearchPorts-Singleton
    • search-ports.ts: listSourceIds gibt echte Shopping-Listen- und Notiz-IDs zurück (statt leere Liste)
    • DebugIndexBar: Disclaimer Auto-Indexing kommt erst mit der nächsten Iteration entfernt
    • Maestro phase2-mutation-observer-smoke.yaml: New list name → Listenname, Add → Hinzufügen (rc29-Regression behoben)
    • roadmap.json: rc1–rc9 Bookkeeping-Lücke geschlossen (status: done)
    Downloads
  • v0.6.6-rc29 4e7c555776

    v0.6.6-rc29
    All checks were successful
    continuous-integration/drone/push Build is passing
    continuous-integration/drone/tag Build is passing
    Stable

    admin-mrrm released this 2026-06-18 00:19:09 +02:00 | 57 commits to main since this release

    Systematische UX-Analyse der App mit anschließender Behebung von 13 identifizierten Lücken in drei Prioritätsstufen. Kritisch: Löschen ohne Bestätigung (Listen + Projekte) per Alert.alert abgesichert. Mittel: Einstellungen im Mobile-Drawer zugänglich, Web-Einstellungen zeigt echten Index-Screen statt Redirect, Planner-Feedback nach 'Tag jetzt planen', Habit-Datumseingabe mit Inline-Validierung, Mail-Review Done-State mit Zurück-CTA, Mobile Listen-Screen mit Geschäfte-Link. Klein: ICS-URLs nicht mehr abgeschnitten (selectable), Habit-Schnellauswahl-Buttons (täglich/wöchentlich/monatlich), Archiv-FAB-Spacer verhindert Überlappung mit letztem Item. Alle feature-lists-UI-Strings auf Deutsch. Debug-Bar in Suche hinter DEV-Guard.

    Highlights

    • Alert.alert-Confirm vor Listen-Löschen ('wirklich löschen?') und Projekt-Löschen (inkl. Schritte-Anzahl im Text) — kein unbeabsichtigtes Datenverlust mehr
    • Mobile Drawer: Einstellungen-Eintrag in NAV_ITEMS — bisher nur über Profil-Icon erreichbar
    • Web /einstellungen: echter Index-Screen mit allen Kategorien statt Redirect auf /einstellungen/mail
    • Day-Planner: Statuszeile nach 'Tag jetzt planen' zeigt 'X Einträge geplant' / 'Keine Candidates verfügbar'
    • Habits: Inline-Fehlermeldung bei ungültigem Datum/Intervall + Preset-Buttons Täglich/Wöchentlich/Monatlich
    • feature-lists: alle englischen UI-Strings auf Deutsch (Listenname, Hinzufügen, Einkaufen/Notizen, Aufgabentitel, Fälligkeitsdatum, Niedrig/Hoch, Speichern/Abbrechen)
    • Mobile Suche: DebugIndexBar hinter DEV-Guard (war in Release-APKs sichtbar)
    • Archiv: FlatList-Footer-Spacer (88px) verhindert FAB-Überlappung; Kalender-URL selectable statt abgeschnitten
    Downloads
  • v0.6.6-rc28 3b0b72a357

    v0.6.6-rc28
    All checks were successful
    continuous-integration/drone/push Build is passing
    continuous-integration/drone/tag Build is passing
    Stable

    admin-mrrm released this 2026-06-16 12:44:53 +02:00 | 63 commits to main since this release

    Phase 3 von Epic #360 (Projekte als Candidate-Source). Mehrstufige Vorhaben mit geordneten Schritten werden zu Candidates mit linearer dependsOn-Chain — der Planner v1-DAG (rc26) sorgt dafür, dass Schritt N+1 erst nach Schritt N geplant wird. Im Unterschied zu Habits ist die Spawn-Logik nicht zeitgesteuert: Beim Anlegen eines Projekts werden alle Step-Candidates synchron geschrieben, kein Cron nötig. Damit ist die rule-based-Source-Sammlung (Tracking, Calendar, Habits, Projects) vollständig — verbleibende Sources Mail→Candidate (#178) und Planner v2 (LLM) sitzen beide hinter Epic #122 (KI-Foundation).

    Highlights

    • shared-types: projectSchema, projectStepSchema, createProjectRequestSchema, updateProjectRequestSchema — Single-Source-of-Truth-Contract
    • api-client: ProjectsResource mit list/create/update/delete + 5 Tests (inkl. Schema-Drift-Guard analog rc22-Lehrlauf)
    • API: projects-Tabelle (id, ownerSub, title, steps JSONB, archivedAt); ProjectCandidateWriterService spawnt Candidates synchron beim Create, idempotent via (ownerSub, source, sourceRef)-Unique-Constraint
    • dependsOn-Chain: Step i abhängig von Candidate(Step i-1) — Planner v1 stellt Reihenfolge sicher; Conflict-Lookup hält die Chain auch beim Re-Spawn intakt
    • feature-day-planner: ProjectsSettingsScreen (Tamagui cross-platform, multiline-Steps-Textarea) + 4 TanStack-Query-Hooks (useProjects/useCreateProject/useUpdateProject/useDeleteProject)
    • Web /einstellungen/projekte + Sidebar-Eintrag 'Projekte'; Mobile einstellungen/projekte.tsx + Drawer-Index-Eintrag
    • Tests: 13 neue Unit-Tests (ProjectsService 8 + Writer 5), 5 neue Integration-Tests (POST→Candidates+dependsOn-Chain, archive/restore, delete, validation), 5 api-client-Tests — alle grün
    • v1-UI-Out-of-Scope (Folge): Inline-Step-Edit, Step-Hinzufügen-Nach-Create, Per-Step-Duration-UI, geplante-vs-archivierte-Sektionen
    Downloads
  • v0.6.6-rc27 a1fcd807b0

    v0.6.6-rc27
    All checks were successful
    continuous-integration/drone/push Build is passing
    continuous-integration/drone/tag Build is passing
    Stable

    admin-mrrm released this 2026-06-16 07:54:17 +02:00 | 66 commits to main since this release

    Schließt Phase 4 von Epic #360. Das Backend war seit ein paar Sprints fertig — habits-Tabelle, HabitsService/-Controller, HabitCandidateWriter, HabitSpawnerCron (stündlich) erzeugen Candidates aus due Habits. Was fehlte: UI zum Anlegen/Verwalten. rc27 schließt analog rc25 (Calendar Settings) die Lücke mit Einstellungen→Routinen (Web + Mobile).

    Highlights

    • shared-types: habitSchema, createHabitRequestSchema, updateHabitRequestSchema — Single-Source-of-Truth-Contract
    • api-client: HabitsResource mit list/create/update/delete + 5 Tests (inkl. Schema-Drift-Guard wie rc22-Lehrlauf)
    • feature-day-planner: HabitsSettingsScreen (Tamagui cross-platform) + 3 TanStack-Query-Hooks (useHabits/useCreateHabit/useDeleteHabit)
    • Web /einstellungen/habits + Sidebar-Eintrag 'Routinen'; Mobile einstellungen/habits.tsx + Drawer-Index-Eintrag
    • v1-UI-Out-of-Scope (Folge): Inline-Edit, RRULE-UI, Streak-Anzeige
    • Damit ist Phase 4 von #360 vollständig — Habits sind jetzt als regulär nutzbare Candidate-Source verfügbar
    Downloads
  • v0.6.6-rc26 efc1970c74

    v0.6.6-rc26
    All checks were successful
    continuous-integration/drone/push Build is passing
    continuous-integration/drone/tag Build is passing
    Stable

    admin-mrrm released this 2026-06-16 07:02:45 +02:00 | 71 commits to main since this release

    Erste Erweiterung über das v0-Heuristik-Niveau hinaus: Der Slot-Planner respektiert jetzt das dependsOn[]-Feld der Candidates. Bisher wurde es vom Schema gepflegt (Phase 1) aber vom Planner ignoriert — Abhängigkeiten wie 'Paket-Benachrichtigung lesen vor Postpaket abholen' wurden zufallsbasiert geplant. rc26 implementiert Kahn-Topologische-Sortierung mit Generationen, Zyklen-Erkennung (alle Beteiligten → overflow, kein Deadlock) und Cascade-Overflow (overflow-Dep ⇒ dependent-Candidate auch overflow). Externe Deps (already done, nicht im pending-Pool) werden als erfüllt behandelt. Innerhalb einer Generation greift die unveränderte v0-Logik: Location-Bucket + Priority-Sort + Event-Skip.

    Highlights

    • slot-plan.ts: Neue topoGenerations(candidates) liefert dependency-geordnete Generationen + cycle-Member-Liste
    • Kahn's Algorithmus: nur Deps INTO inputSet zählen — Deps auf bereits done/obsolete-Candidates (außerhalb pending-Pool) automatisch als satisfied gewertet
    • Cascade-Overflow: wenn ein Dep wegen latestAt/Tagesende overflow wird, geht der Dependent ebenfalls in overflow (Set-Tracking via overflowIds)
    • Cycle-Detection: was nach Kahn übrig bleibt = Zyklus-Member → overflow, kein Crash, kein Deadlock
    • 5 neue slot-plan.spec.ts Tests (dependsOn ordering reverse-of-id-sort, transitive c→b→a, cascade overflow, externe Deps, Cycle-Detection); 17/17 grün; alle 464 API-Tests grün
    • v1-Out-of-Scope (Folge-Issues): Habit-Context (braucht Habit-Source = Phase 4), plannedAfter/Before (Planner-Output kein -Input), Transit-Time zwischen Buckets, Time-of-Day Affinity
    Downloads
  • v0.6.6-rc25 99f15c16b0

    v0.6.6-rc25
    All checks were successful
    continuous-integration/drone/push Build is passing
    continuous-integration/drone/tag Build is passing
    Stable

    admin-mrrm released this 2026-06-15 21:47:45 +02:00 | 76 commits to main since this release

    Letzte offene Phase-5-Folgearbeit aus dem rc20-MVP: Der /heute-Screen kann seit rc20 Kalender-Events anzeigen, aber bisher gab es keine UI um einen ICS-Feed einzuhängen — nur per API-Direktcall möglich. rc25 schließt die Setup-Lücke mit einem Einstellungen→Kalender-Screen (Web + Mobile), der bestehende Feeds listet, Name+URL eingibt, manuell synct und entfernt. Backend (CalendarService + CalendarSyncService + 15-Min-Cron) war seit rc20 fertig. Damit ist Phase 5 vollständig: Empty-State (rc21), Re-Plan-Fix (rc21), Refresh-on-Focus (rc21), Hotfix Schema-Drift (rc23), Mark-Done (rc24), Kalender-Sync-Setup (rc25).

    Highlights

    • shared-types: calendarSubscriptionSchema, createCalendarSubscriptionRequestSchema, syncCalendarSubscriptionResponseSchema — Single-Source-of-Truth-Contract
    • api-client: CalendarResource mit list/create/patch/delete/sync + 5 Tests (inkl. Schema-Drift-Guard analog rc22-Lehrlauf)
    • feature-day-planner: CalendarSettingsScreen (Tamagui, cross-platform) + 4 TanStack-Query-Hooks; Invalidiert dayPlanner.today() bei Sync/Delete damit /heute sofort aktualisiert
    • Web /einstellungen/kalender + Sidebar-Eintrag; Mobile einstellungen/kalender.tsx + Drawer-Einstellungen-Index-Eintrag
    • Empty-State auf /heute bekommt dritten CTA 'Kalender verbinden' → /einstellungen/kalender (analog zu Mail/Todo aus rc21)
    • ICS-URL-Only Scope; OAuth/Outlook explizit out-of-scope für späteres Refinement
    Downloads