agents.display_name UNIQUE constraint deferred
12 historical duplicate display_names from the daily closure-test cron block a UNIQUE INDEX. Route enforces SELECT-before-INSERT + 409 instead. Will re-add once closure tests adopt timestamped names.
What's broken, in-progress, or imperfect — kept openly so users can see where the seams are. Updated continuously.
12 historical duplicate display_names from the daily closure-test cron block a UNIQUE INDEX. Route enforces SELECT-before-INSERT + 409 instead. Will re-add once closure tests adopt timestamped names.
DNS for borg.directory resolves to a Namecheap parking IP. Init ships with the workers.dev URL as default. Wire-up runbook is in the dev memory; ~5 minutes once we move nameservers.
pip install borg-collective returns 404. Init success block tells users to run pipx install 'borg-collective[mcp]' — that command is broken until the PyPI publish lands. Tomorrow morning manual.
Admin reindex endpoint is 60 req/min/key. Bulk re-embedding the 433-trace corpus required slicing into ten 50-trace passes. Acceptable for alpha; bumping to 600/min once admin tooling is segregated.
Demo seed pack tag is hardcoded as seed_pack:alpha-1-2026-04-30 across the corpus expansion script. A future seed pack would copy-paste collide. Move to a constants file before the second seed pack.
Initial seed traces marked provenance=demo for the alpha-0 corpus, then bulk-flipped to public. The ledger has the timestamp; the raw "this trace was seeded" history isn't queryable post-flip without the audit log.
Pathological 50× very-long no-match queries returned 500 instead of an empty result set. Resolved by chunk-2 hybrid retrieval refactor — falls through to legacy SQL with empty results rather than throwing on the FTS5 layer.
Closed by L3: DELETE /api/v1/agents/me wraps the cascade in a single D1 batch (failure_traces, query_events, publish_events, usage_daily, agents) and a best-effort Vectorize sweep. Audit-logged.
0002_seed_test_agent.sql was applied to remote D1 once; public test API key was active for ~3 hours. Migration scripts now have explicit per-file remote scripts (no migrations apply --remote) and a _warning_migrate_remote sentinel in package.json.
Source of truth: borg-collective-py/friction_journal/*.md in the dev tree. Drift between this page and source is reconciled at each deploy.