Phase 2 of ADR 0122: the stable identity that makes a rename break nothing.
A seat's canonical name can change; its old name becomes an alias that resolves to it forever. SeatNamed, HolderAmong, and the seats display all resolve a name (former or current) to its seat — so a manifest's claim, a held record, the git-seat lookup, and even the build machine's embedded set go on working unchanged after a rename. No manifest edits, no rebuild, no re-registration, no freeze.
migration 0035 — seat_alias table
inventory.Aliases / inventory.RenameSeat (repoints chained aliases; refuses no-such-seat and same-name)
mesh-controller seat rename <from> <to> — the whole of a rename, one command
Behaviour-neutral until a seat is renamed (no aliases → lookups identical). Validated against postgres. This is what makes the outstanding renames (registry seats, the-private-network) trivial DB operations.
Phase 2 of ADR 0122: the stable identity that makes a rename break nothing.
A seat's canonical name can change; its old name becomes an **alias** that resolves to it forever. `SeatNamed`, `HolderAmong`, and the `seats` display all resolve a name (former or current) to its seat — so a manifest's claim, a held record, the git-seat lookup, and even the build machine's embedded set go on working **unchanged** after a rename. No manifest edits, no rebuild, no re-registration, no freeze.
- migration `0035` — `seat_alias` table
- `inventory.Aliases` / `inventory.RenameSeat` (repoints chained aliases; refuses no-such-seat and same-name)
- `openInventory` loads aliases; alias-aware `SeatNamed`/`HolderAmong`/`seatsHeld`
- **`mesh-controller seat rename <from> <to>`** — the whole of a rename, one command
Behaviour-neutral until a seat is renamed (no aliases → lookups identical). Validated against postgres. This is what makes the outstanding renames (registry seats, `the-private-network`) trivial DB operations.
Phase 1 made the set data; a rename still broke every reference to the old
name. This adds the stable identity: a seat's canonical name changes and its
old name becomes an alias that resolves to it forever. SeatNamed and the holder
and display matching resolve a name (former or current) to its seat, so a
manifest's claim, a held record, the git-seat lookup and the build machine's
embedded set all go on working unchanged after a rename. seat_alias table
(migration 0035), inventory Aliases/RenameSeat, openInventory loads them, and a
'seat rename <from> <to>' command does the whole thing — one operation, no
rebuild, no re-registration, no freeze. Behaviour-neutral until a seat is
renamed. Validated against postgres.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Phase 2 of ADR 0122: the stable identity that makes a rename break nothing.
A seat's canonical name can change; its old name becomes an alias that resolves to it forever.
SeatNamed,HolderAmong, and theseatsdisplay all resolve a name (former or current) to its seat — so a manifest's claim, a held record, the git-seat lookup, and even the build machine's embedded set go on working unchanged after a rename. No manifest edits, no rebuild, no re-registration, no freeze.0035—seat_aliastableinventory.Aliases/inventory.RenameSeat(repoints chained aliases; refuses no-such-seat and same-name)openInventoryloads aliases; alias-awareSeatNamed/HolderAmong/seatsHeldmesh-controller seat rename <from> <to>— the whole of a rename, one commandBehaviour-neutral until a seat is renamed (no aliases → lookups identical). Validated against postgres. This is what makes the outstanding renames (registry seats,
the-private-network) trivial DB operations.