Channel section keys subject to V3 alias-wrapping. A missing entry
here sends its V2 [channels.<type>] block through the passthrough
branch, which leaves it flat instead of <type>.default-shaped and
the V3 deserializer then chokes on the typed HashMap<String, T>
slot. Tests cross-check this list against the typed channel slots
on ChannelsConfig to catch silent drift.
V3 root directories that should exist after a successful migration.
The e2e test asserts every entry under <install> is either one of
these, the post-migration config.toml(.backup)?, or a backup-*/.
Heal intermediate v0.8.0-pre installs that landed skills under
agents/default/workspace/skills/ before the host-wide
shared/skills/ layout was introduced. Idempotent.
Mint-or-query a single agent row keyed by alias. Used by the
SQLite migration’s default-agent backfill and by the ensure_agent_uuid
trait impl on the memory backend (alias resolution at agent-loop entry).
Mint or query the default agent’s row. Idempotent on concurrent
first-init: the returned UUID is the row that actually persisted,
not the candidate we attempted to insert.