ouroboros/docs
Ouroboros 867e6d1474 Name roster rows by a route-derived handle, never a stored label
A subagent row was identified everywhere by its stored `subagent_id`. Presets
mint that id by position (`primary-builder`, `fast-scout`, ...) and Duplicate
inherited it (`fast-scout_copy_pls35j`), so once the owner re-pointed a row the
id lied to the model and to the owner exactly like the display `name` retired
on 2026-08-30 did. The stored id is now a hidden join key (reviewer references,
snapshots, custody and history keep following the row through it) and every
model- and owner-facing surface names a row by its HANDLE: the route target as
stored plus the facets set on that row (effort, non-default access, `@pin`,
processing), e.g. `codex=gpt-6-astra/xhigh`. It is a pure function of ONE row,
so a new sibling never renames a neighbour and a snapshot or history record
recomputes its own name without the live roster.

- One resolver (`subagent_runtime.resolve_configured_row`) serves
  `schedule_subagent` and `delegate_start`: a handle, else a stored id as a
  permanent silent alias; a string naming two rows is a typed
  `subagent_selector_conflict`. The actor-first start resolves its argument
  before comparing it with the bound snapshot, so a handle accepted at
  scheduling is no longer refused at the physical start.
- Saves refuse two rows with an identical engine (Settings save, onboarding
  draft and completion; effective defaults, so an omitted session access IS
  `full`). Reads stay tolerant: twins saved earlier still load and are told
  apart as `<handle>~<subagent_id>`. In the editor Duplicate mints a neutral
  key and is born a draft whose card names its twin until an engine field
  changes.
- The model catalog, unavailable-route alternatives, the startup receipt, the
  start result and the dated execution facts carry handles; history is named
  from each record's OWN identity (an old record without one shows its
  recorded route target), never mapped through today's roster.
- The Review-lanes picker and its "ran as" line show the handle instead of
  `#<stored id>`; a JS twin of the projection is pinned to the Python one by a
  shared parity table, and a browser test opens the real picker at 1 and 10
  rows, desktop and phone width.

Co-authored-by: Ouroboros <311266734+ouroboros-agent@users.noreply.github.com>
2026-09-21 01:55:48 +03:00
..
about docs: make installer downloads direct and self-syncing 2026-08-14 04:12:45 +03:00
architecture Name roster rows by a route-derived handle, never a stored label 2026-09-21 01:55:48 +03:00
archive/first-generation Retire completed campaign artifacts and keep repository reports explicit 2026-09-18 01:07:51 +03:00
assets docs: make installer downloads direct and self-syncing 2026-08-14 04:12:45 +03:00
benchmarks docs: make installer downloads direct and self-syncing 2026-08-14 04:12:45 +03:00
development Name roster rows by a route-derived handle, never a stored label 2026-09-21 01:55:48 +03:00
examples/author_ui_kit feat: add opt-in module widget theme bridge 2026-09-20 04:22:43 +03:00
history/first-48-hours docs: expand public discovery and release proof 2026-08-02 06:13:01 +03:00
install feat: add honest desktop notification attention cue (#1158) 2026-09-20 20:03:32 +03:00
inventories Read drift baselines from the snapshot registry root 2026-09-20 23:49:32 +03:00
paper docs: make installer downloads direct and self-syncing 2026-08-14 04:12:45 +03:00
.nojekyll docs: sharpen Ouroboros repository presentation (#74) 2026-07-24 07:14:13 +03:00
404.html docs: make installer downloads direct and self-syncing 2026-08-14 04:12:45 +03:00
ANDROID_INSTALL.md Qualify experimental Android delivery without blocking desktop releases 2026-09-18 02:10:23 +03:00
ANDROID_RECOVERY.md Name the English Android stop control in recovery instructions 2026-09-18 04:40:18 +03:00
ARCHITECTURE.md feat: add honest desktop notification attention cue (#1158) 2026-09-20 20:03:32 +03:00
CHECKLISTS.md test: close widget theme review gaps 2026-09-20 16:13:15 +03:00
CHECKLISTS_ARCHIVE.md fix(review): align contribution sizing and diagnostics with retrieval 2026-09-18 01:35:59 +03:00
CNAME docs: expand public discovery and release proof 2026-08-02 06:13:01 +03:00
CREATING_SKILLS.md docs: define widget appearance intents 2026-09-20 17:54:38 +03:00
DELEGATED_ADMISSION.md Simplify delegated binding and disclose target drift 2026-09-20 18:40:05 +03:00
DEPLOYMENT.md v5.8.3-rc.2: centralize state helpers 2026-05-08 02:12:09 +03:00
DESIGN.md Name roster rows by a route-derived handle, never a stored label 2026-09-21 01:55:48 +03:00
DEVELOPMENT.md Bind Presence work to an owner-selected folder 2026-09-15 23:42:14 +03:00
DOMAIN_MAP.md Simplify delegated binding and disclose target drift 2026-09-20 18:40:05 +03:00
index.html docs: make installer downloads direct and self-syncing 2026-08-14 04:12:45 +03:00
install.json fix(packaging): harden AppImage runtime lifecycle 2026-08-11 04:21:16 +03:00
llms.txt docs: make installer downloads direct and self-syncing 2026-08-14 04:12:45 +03:00
MODEL_SEND_OBSERVABILITY.md Merge the landed repository-hygiene migration 2026-09-18 02:35:33 +03:00
PERSISTENCE.md Merge current development into runtime observation fixes 2026-09-18 16:52:00 +03:00
robots.txt site: move Pages to ouroboros-agent.ai (#83) 2026-07-31 08:17:34 +03:00
sitemap.xml Add technical report page and citation metadata 2026-08-11 12:36:37 +03:00
USAGE_COMPACTION.md Preserve terminal task evidence and abandoned usage custody 2026-09-18 04:06:08 +03:00