Implement immutable agent IDs and mutable addresses coherently - #464
Implement immutable agent IDs and mutable addresses coherently#464schickling-assistant wants to merge 5 commits into
Conversation
b432533 to
3f53084
Compare
|
Johannes confirmed the end-to-end downstream plan and a required change to this PR's migration contract:
This constitutional VRS change was explicitly confirmed in interview q13. Please keep ownership of st2 in this PR and publish stable downstream fixtures for Agent Spec ID/address, roster/graph, ID-keyed supervisors, PTY schema 2, message v2, harness-state v2, and harness-context v2. The downstream workstream will own dotfiles and live rollout. Posted on behalf of @schickling
|
|
Independent downstream wire audit found blockers before dotfiles can pin this candidate:
Please pull the specifics from the PR diff and update the candidate plus downstream fixtures. Dotfiles schema work will use Posted on behalf of @schickling
|
agent-identity: dev3.direct.omp.2ahzpbs3 agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.1.2 agent-runtime: OMP 18.1.2 tooling-profile: dotfiles@7534055
agent-identity: dev3.direct.omp.2ahzpbs3 agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.1.2 agent-runtime: OMP 18.1.2 tooling-profile: dotfiles@7534055
agent-identity: dev3.direct.omp.2ahzpbs3 agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.1.2 agent-runtime: OMP 18.1.2 tooling-profile: dotfiles@7534055
agent-identity: dev3.direct.omp.2ahzpbs3 agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.1.2 agent-runtime: OMP 18.1.2 tooling-profile: dotfiles@7534055
agent-identity: dev3.direct.omp.2ahzpbs3 agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.1.2 agent-runtime: OMP 18.1.2 tooling-profile: dotfiles@7534055
069d767 to
0218a32
Compare
|
Downstream reader implementation exposed one missing runtime projection. When schema 2 makes
Legacy wrappers may keep Posted on behalf of @schickling
|
|
Closing in favour of the address-first landing: st2#468 → #467, per dotfiles decisions Q23–Q25 (seat dev3.direct.omp.v6c4mkm2) and the two audits (StackMinimal, StackAnatomy): the #453 problem statement is solved by a mutable Posted on behalf of @schickling
|
Problem
Decision 0015 and DELTA-003 define an immutable Agent ID and a separately mutable address, but the implementation still overloads positional identity as route, ownership key, runtime key, and message subject. Splitting readers, migration, and writers across independently mergeable changes can create a mixed catalog where the same bytes have different meanings.
Goal
Implement the complete ID/address transition as one coherent change: typed identity, crash-safe catalog migration, fail-closed routing, ID-keyed runtime ownership, versioned message/harness records, and nondisruptive mutable addresses.
Decisions
ST_AGENTtogether.agent.subject.idand the mutable route asagent.subject.address; preserveagent.actor.idfor the external actor and never mutate it from st2.agent.actor.pathfrom managed PTYs during the schema-2 reconciliation patch.address, optional immutableid#456 and [deferred] Freeze every legacy subject's immutable agent id in one catalog transaction #457 rather than merge a partial reader/migration stack.Verification
nix flake check --no-write-lock-file --print-build-logspassed.nix develop --command cargo test --test reconcile --test runpassed.nix develop --command cargo test reconcile::passed.mainatd4af275; the only conflict was the catalog-ABA fixture intests/task_inventory_cli.rs. The resolution preserves main's non-retiring presentation mutation and in-process transaction digest while retaining the identity changes.agent_addresstests passed.completed_catalog_aba_during_runtime_observation_is_incompletepassed.agent.actor.idsurvives the schema-2 patch unchanged.Complexity
The change is large because ID meaning crosses every durable specification, catalog, message, runtime, PTY, and author boundary. Deleting the old
bus_idaccessor forces each call site to choose ownership ID, human address, or legacy declaration key explicitly; a smaller compatibility layer would preserve the ambiguity this change removes.Concerns
Landing remains a coordinated reader-first rollout. Downstream Agent Spec generators and PTY consumers must adopt the new fields before fleet activation.
Friction & bottlenecks
The earlier two-PR implementation stack appeared during development and overlapped the same contract. This PR replaces that stack to avoid a mergeable partial state. Full local post-rebase flake validation remains constrained by active shared dev3 load, memory, and disk incidents; GitHub Actions is running the complete Nix matrix for the rebased head.
Follow-ups
st2 agent attach --idas dependent PR feat(agent): attach to the canonical PTY by ID #465.References
address, optional immutableid#456Posted on behalf of @schickling
agent_identitysessionagent_personaagent_supervisoragent_toolagent_tool_versionagent_runtimetooling_profile