Commit bc92ec6
committed
feat(agent): mutable address routing behind one typed selector
`st2 agent address <agent> <address>` becomes reachable, and every reference
plane resolves through the one algorithm decision 0015 mandates instead of each
site's own precedence filter.
- `message`'s resolution surface takes `&AgentSelector`, not `&str`: recipients,
inboxes, state directories, message boxes, and archival all state which
namespace they were named in. There is no `&str` arm left to fall back to, so a
route can never be silently retyped as an exact subject or the reverse.
Recipient matching moves from `bus_id == r || identity == r` to the effective
address, with retirement handled by two books rather than a tie-break: a
retired subject cannot make a live claimant ambiguous, and still answers to its
own address when nothing routable does, keeping its retained state reachable.
- Every command that names an agent gains the exact `--id` / `--to-id` form,
which resolves without consulting the address namespace at all.
- Drivers, channels, and hooks select their own subject by exact key, so an
address cutover cannot disconnect a running seat from its own directories. A
supervisor reference stays an ordinary address reference.
- `event::resolve_stream` routes through `identity::resolve` instead of a
hand-rolled three-arm filter, which is also a fix: stream ingress had no
dedupe-by-ID and no host pinning, so it did not implement the mandated
algorithm. Built-in resync names its recipient by the agent key reconciliation
holds, so publication survives a cutover; `st2 event emit` names an ordinary
address, so the released spelling refuses at once.
- An interrupted send recovers by its record's canonical endpoint, which is an
immutable key: a cutover between the pending write and the retry is a route
change, not a changed recipient.
Durable state is untouched by design. `ST_AGENT`, default task IDs, session
socket paths, declaration-parent state, harness records, PTY tags, message
provenance, and supervisor edges are all keyed on values this cutover never
writes.
agent-identity: dev3.direct.omp.v6c4mkm2
agent-persona: generalist
agent-supervisor: unavailable
agent-tool: OMP
agent-tool-version: 18.1.2
agent-runtime: OMP 18.1.2
tooling-profile: dotfiles@75340551 parent 9d99c6a commit bc92ec6
13 files changed
Lines changed: 1445 additions & 202 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
29 | | - | |
| 29 | + | |
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
33 | | - | |
| 33 | + | |
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
| |||
159 | 159 | | |
160 | 160 | | |
161 | 161 | | |
162 | | - | |
| 162 | + | |
163 | 163 | | |
164 | 164 | | |
165 | 165 | | |
| |||
464 | 464 | | |
465 | 465 | | |
466 | 466 | | |
467 | | - | |
| 467 | + | |
468 | 468 | | |
469 | 469 | | |
470 | 470 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
34 | | - | |
| 34 | + | |
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
| |||
390 | 390 | | |
391 | 391 | | |
392 | 392 | | |
393 | | - | |
| 393 | + | |
394 | 394 | | |
395 | 395 | | |
396 | 396 | | |
| |||
431 | 431 | | |
432 | 432 | | |
433 | 433 | | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
434 | 446 | | |
435 | 447 | | |
436 | | - | |
| 448 | + | |
437 | 449 | | |
438 | | - | |
| 450 | + | |
439 | 451 | | |
440 | 452 | | |
441 | 453 | | |
| |||
0 commit comments