Active focus

between milestones · Capture Live (c) queued

Capture now, make sense later.

**Capture Live (b) closed 14-05-2026 ✅.** All 18 m2b tasks landed in a single day's build session. Six surfaces live at `https://review.remoir.app/`: gallery (`/`), detail (`/r/:id`), table (`/table`), dashboard (`/dashboard`), map (`/map`), audit log (`/audit`). Editing surfaces (inline edit + hard delete) operate per the 14-05-2026 ADR-002 scoped exception with revisit triggers (m3 close / prototype graduation / Phase-1→2 transition). Interim scaffold at `app.remoir.app/review` retired and 301-redirected to `review.remoir.app/`. Three new migrations applied (007 open review RPC; 008 destructive update with field+type allowlists; 009 hard delete). Final bundle: 457 KB / 137 KB gzipped. Drift-reconciliation brief processed mid-session (`cowork-brief-2026-05-14-m2b-table-view-and-editing-scope.md`) expanding the m2b scope from list+detail+filters to the 8-feature shape that shipped. Daily Audit Log spec at `docs/audit-log-spec.md` v1.0. Tasks 15+16's automated-stream sides land-in-spirit today and complete at m2c close. Full m2b history is in `project-management/projectlog.md` under the 14-05-2026 entries.

Active milestone

(between milestones — Capture Live (c) queued, ready to start)

0/0 tasks · 0%

What's next

  • Capture Live (c) — Multi-Modal Capture (now includes URL channel, relocated from (a) 13-05-2026)
  • AI Enrichment (prototype) — scoped 12-05-2026, replaces former "Automated Loop"

Previous milestone

Capture Live (b) — Review Frontend Phase 1 (complete 14-05-2026)

Tracks · Owner

Capture Freek

Milestone timeline

Ten named moments where something demonstrably works. Numbered for ordering, not for ranking — they can be reordered, inserted, or deferred without renaming anything else.

m1
Manual Loop
Complete
m2a
Capture Live (a) — Photos only
Complete
m2b
Capture Live (b) — Review Frontend Phase 1
Active
Capture
m2c
Capture Live (c) — Multi-Modal Capture
Queued
Capture
m3
AI Enrichment (prototype)
Future
AI Enrichment · Raw Data
m4
WhatsApp Pipeline
Retired
Capture · Data Pipeline
m5
Website Live
Deferred
Knowledge Graph
m6
AI Parsing
Future
AI Enrichment · Raw Data
m7
Organisation Layer
Future
Knowledge Graph
m8
Multi-User
Future
Knowledge Graph · Data Pipeline
m9
Platform Convergence
Future
All tracks
m10
Sovereignty
Future
Sovereignty

Recent updates

What landed in the past few sessions. Pulled live from STATUS.md.

14-05-2026
Three non-build sessions, no milestone shift. (1) Morning — processed cowork-brief-2026-05-13-object-model-four-layer-reframing.md: object model reframed into four layers (Plumbing / Structural / Emergent / Deliberate), Thread promoted from "deferred" to first-class Emergent, Tag elevated to first-class object, core count 8 → 10. Six new entries in decisions.md 13-05-2026 (object model brainstorm), two new candidate principles, new §5.5 in north-star.md. (2) Afternoon — principles review on the C6 + C7 + U5 cluster (three-axis data architecture; digital cell = private row; epistemic character is orthogonal): gates 1–3 of the source doc's 5-gate ratification path passed; gates 4 + 5 deferred; cluster ratification paused. F3 axis-label flag resolved (Freek confirmed typo; C6's original scope/stage/character labels stand). Cluster status preserved at docs/candidate-principles/data-layers-matrix.md. (3) Late afternoon — docs/remoir-snapshot.md retired as redundant with primary source docs (north-star, working-vision-phase-1, object-model, principles, STATUS, milestones). File moved to archive/remoir-snapshot-retired-14-05-2026.md; five CLAUDE.md references removed; lessonsFrederic.md #17 (vision-and-snapshot-drift) postscripted with the snapshot half rendered moot. Details in projectlog.md 14-05-2026 entries.
13-05-2026
Original tasks 6 + 9 closed plus processing-transparency track (m2a tasks 10–13). Photo-mode provenance fix (deploy a3ecb7b3) — library imports now write (external, user_enriched), camera-mode captures (Person/Slide) keep (device, device). Migration 005 added processing_state (NOT NULL, 5-value CHECK) + processing_notes (nullable); pre-existing rows backfilled to 'processed'; Capture App (deploy 1d64ccdf) emits processing_state: 'unprocessed' on every new insert. Real-capture validation by Freek confirmed 3 new captures land as unprocessed while pre-existing rows remain processed. Tasks 7 + 8 marked stale per the 10-05 Capacities-as-provisional decision. Two new friction-log entries (Photo-mode iOS-action-sheet residual edge + captured_at send-time design choice); one new maybelater.md entry (reconcile status vs processing_state at m3 kickoff).
10-05-2026 evening
Calendar integration refined (task 9 spec partial) — multi-calendar selection landed so reads/writes scope to a user-chosen calendar (typically a dedicated "Remoir Events" calendar) instead of primary. Overlap handling added: when multiple events overlap, banner picks the shortest-duration one (handles all-day / multi-day broader-context events losing to specific sessions) and shows a ·N badge with a tap-to-switch picker. Banner picks up the chosen calendar's color as a left-border accent; gear icon in the banner re-opens the calendar picker. OAuth scope calendar.events + calendar.readonly; storage key gcal_token_v3 → v4 so existing users see one fresh consent prompt on next visit. Init-render bug found and fixed during deploy verification (authState initialised to null so first setAuthState always renders). Live at app.remoir.app deploy b2f3f17f. See decisions.md and lessonsClaude.md 10-05-2026; full diff in projectlog.md.
10-05-2026
Capture Live task 5 ✅ — Freek used the Capture App at a real event ("in the wild"). M1's core "frictionless input + raw data collection" thesis is validated against real use. Moving to task 6: verify provenance fields are correctly populated across capture paths (device capture, external import, manual enrichment).
09-05-2026 later still still
Calendar integration hardened against the three dominant PWA failure modes — backgrounded-app polling stalls (added visibilitychange/focus resume), reactive-only token refresh (added proactive 2-min-before-expiry refresh), and unbounded retry on the async GIS script loader (capped at 20 attempts, clean fallback to connect prompt with a console.warn). No schema changes. See decisions.md and lessonsClaude.md 09-05-2026.
09-05-2026 later still
Capture modes restructured to Photo / Person / Slide (Photo is the new default, Note removed). The colored type label below each tile is now a tap target — cycles photo → person → slide → photo, clearing subjectName on leave-Person. The + button is mode-aware: Photo mode opens the library picker, Person/Slide open the camera. Schema: migration 004 added 'photo' to the raw_inputs.type CHECK constraint ('note' retained for backward compatibility). See decisions.md 09-05-2026 (later still).

Six development tracks

Tracks are permanent parallel workstreams. They apply across the whole platform and never finish — they mature over time. A single milestone typically advances two or three tracks at once.

Capture

Making input as frictionless as possible. WhatsApp, email, Apple Shortcuts, free-form text, voice. The moment of capture is the highest-friction point and the most important to solve. If capture feels like work, nothing else matters.

Knowledge Graph

The structured collection layer. Objects, links, templates, Capacities (for Remoir Events), Supabase schemas (for Remoir Family). Where user value is created through organisation and retrieval.

Data Pipeline

The backend plumbing. Webhooks, automation (Make, n8n, custom), OCR, geocoding, storage, error handling. What moves data from capture to knowledge graph reliably.

Raw Data

Storing all inputs in their original unprocessed form with full metadata from day one. The foundation for AI parsing and the user's personal data asset. User-owned and controlled from the first line of code. Non-negotiable.

AI Enrichment

Parsing, tagging, linking, summarising using AI. Reduces manual effort. Eventually replaces structured input entirely with free-form natural language. Trained on the Raw Data track. m3 (AI Enrichment prototype, scoped 12-05-2026) lands first on this track — a lightweight Claude-API prototype over raw inputs that generates the empirical signal needed to scope m6 (AI Parsing, production-grade).

Sovereignty

User ownership and control of all data and metadata. Group governance. Selective sharing with commercial parties on user terms. Long-term vision — informs architecture decisions now without being built now. Includes the federated ownership layer (see vision/future-layers.md).