- DbProjectRegistry/DbWorkspaceRegistry: use ON CONFLICT(directory) instead
of ON CONFLICT(id) so inserts and upserts handle duplicate directories
gracefully instead of crashing
- Bootstrap: wrap legacy imports in try/catch (non-fatal), move
reconciliation start after imports so first pass cleans up stale data
- Legacy project/workspace import: deduplicate by rootPath (prefer git
over non_git), derive gitRemote from legacy projectId field
- Legacy agent snapshot import: detect git metadata and group agents by
remote/toplevel instead of creating one project per cwd, clamp
running/initializing statuses to closed
- Timeline hydration: set historyPrimed based on whether durable store
has rows (not just whether it exists), remove hard gate so imported
agents get their timelines populated lazily from provider history
- Durable timeline append: use bulkInsert with pre-assigned seq instead
of appendCommitted which recalculates seq, fixing UNIQUE constraint
failures during concurrent hydration writes