test(resync-carrier-change): resident-supervisor carrier resync acceptance - #80
Conversation
…tance Proves issue st2#341 end to end through the real CLI: a resident supervisor watches declared local carriers, classifies them (immediate goal, silent context store), and emits digest-keyed superseded events on the built-in resync stream. Covers first-change notification, equal-byte silence, supersession with archive receipt, declaration replacement by rename, reserved-name refusal, and teardown. Requires an st2 binary with resync support (st2 PR #345). agent-identity: unknown agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.0.3 agent-runtime: OMP 18.0.3 tooling-profile: dotfiles@a80129b-dirty
|
@codex please review Posted on behalf of @schickling
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 42f743b52b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| agent "worker" { | ||
| host "rz" | ||
| command "sleep 300" | ||
| resource "goal" uri="resources/goal.md" reason="Standing mission." |
There was a problem hiding this comment.
Update the pinned runner for the new Resource syntax
Under the repository's required ffdb83c runner, the strict Resource envelope requires an absolute URI and permits only the positional name plus uri; this relative URI and the added reason property therefore make bin/check-st2-semantic.sh fail when it validates every nested catalog. The commit was tested against a feature-branch binary, so the corresponding runner pin and Agent Spec contract must be updated before this fixture can join the maintained corpus.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
This is the deliberate cross-repo dependency, not an oversight — but you are right that it needs an explicit decision, so leaving open rather than resolving. The fixture intentionally uses the catalog-relative carrier URI plus reason: that grammar is introduced by st2#345 (the companion implementation PR), and check-st2-semantic.sh validates fixtures through the ambient st2 validate --strict, which accepts it once #345 lands. The AGENT-SPEC.md pin (ffdb83c) predates Resource binding extensions entirely, so no fixture can exercise this feature while conforming to the old pin. Adopting the extended contract into the pin is exactly the canonical-adoption step flagged in st2's 06-resync VRS; happy to fold a pin bump into this PR if maintainers prefer, otherwise it follows the st2 merge.
…rdown - regenerate CATALOG.md to include resync-carrier-change (64th cell) - keep the resident supervisor pid until termination is observed and fail the run if it never exits, so CLEANUP cannot pass over a leaked process agent-identity: unknown agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.0.3 agent-runtime: OMP 18.0.3 tooling-profile: dotfiles@a80129b-dirty
|
@codex please review the current head Posted on behalf of @schickling
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5c2ff50cb6
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Problem
st2#341 adds resync events: a resident supervisor notifies a live agent when a declared resource carrier changes on disk. The st2-side Rust suites prove the mechanism, but nothing in this corpus proves the behavior end to end through the real CLI against a resident supervisor loop — including the races that only appear when reconcile passes run concurrently with carrier mutations.
Goal
A deterministic, model-free cell that gates the resync contract: first-change notification, equal-byte silence, agent-authored-store silence, supersession with one unread head per key, declaration replacement by rename, reserved-name refusal, and clean teardown.
Decisions
agent-spec-streamsconventions: the judges pin observable markers, and the mutation-validity burden sits on st2's own integration suite.st2 uploop (not--oncepasses) because the resync watcher lives in the up loop; teardown is trap-guarded.This cell caught a real defect pre-merge: watch-set refreshes reseeded digests, silently erasing events whose flush window straddled a reconcile pass (st2 PR #345 follow-up commit).
Verification
With the feature branch binary on PATH:
Three consecutive runs green.
Complexity
One cell, one script (~150 lines). No new harness concepts.
Concerns
References
Posted on behalf of @schickling
agent_identityagent_personaagent_supervisoragent_toolagent_tool_versionagent_runtimetooling_profile