• v0.6.6-rc24 e8d5e5c565

    v0.6.6-rc24
    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 09:08:39 +02:00 | 46 commits to main since this release

    Erste Interaktion auf /heute: Tap auf den Done-Button entfernt das Item optimistisch von der Timeline. Backend bekommt einen idempotenten POST /candidates/:id/done-Endpoint, der lifecycleState in einer Transaktion auf 'done' setzt und — wenn source='todo' — list_items.data.done parallel im selben Tx mitführt (symmetrische Brücke aus #472). Damit bleiben /heute und die Todo-Liste in jeder Richtung konsistent: rc22 propagierte Todo-Änderungen Richtung Candidate, rc24 schließt den Rückweg. Architektur-Entscheidung per arch-bot konsultiert (arch-q #478, Option b: per-source inline backward-sync, kein Event-Bus für N=1). ADR 0001 §7 um Phase-1-Addendum erweitert. Undo bleibt explizit out-of-scope.

    Highlights

    • CandidatesService.markDone: db.transaction + SELECT FOR UPDATE + jsonb_set; cross-tenant guard über JOIN auf lists.owner_sub (list_items hat keine eigene ownerSub-Spalte); idempotent bei lifecycleState=done; 409 bei obsolete; 404 sonst
    • useMarkCandidateDone-Hook: TanStack Query Optimistic Update mit onMutate-Snapshot, onError-Rollback, onSettled-Invalidate
    • Tamagui ItemRow bekommt Done-Button mit accessibilityLabel='Erledigt:
    Downloads