Skip to content

test(resync-carrier-change): resident-supervisor carrier resync acceptance - #80

Merged
schickling merged 3 commits into
mainfrom
schickling-assistant/2026-08-25-2026-08-25-resync-cell
Aug 29, 2026
Merged

test(resync-carrier-change): resident-supervisor carrier resync acceptance#80
schickling merged 3 commits into
mainfrom
schickling-assistant/2026-08-25-2026-08-25-resync-cell

Conversation

@schickling-assistant

Copy link
Copy Markdown
Contributor

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

  • Single cell (not a present/absent pair), matching agent-spec-streams conventions: the judges pin observable markers, and the mutation-validity burden sits on st2's own integration suite.
  • The goal carrier deliberately does not exist in the fixture: whatever the supervisor seeds, it seeds as absent, so the first creation is always a genuine content transition — removing the seed-timing race.
  • Runs a resident st2 up loop (not --once passes) 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:

st2 eval ./cells/resync-carrier-change/
SCORE: 8 PASS / 0 FAIL / 8 gating judges — VERDICT: PASS

Three consecutive runs green.

Complexity

One cell, one script (~150 lines). No new harness concepts.

Concerns

  • Timing-sensitive like every resident-supervisor cell; windows are generous (20 s deadlines) but very loaded runners could flap.
  • Requires an st2 build containing resync (st2 PR #345); until that merges, CI needs the stacked binary or the cell will fail closed.

References

Posted on behalf of @schickling
field value
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

…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
@schickling-assistant
schickling-assistant marked this pull request as ready for review August 25, 2026 19:32
@schickling-assistant

Copy link
Copy Markdown
Contributor Author

@codex please review

Posted on behalf of @schickling
field value
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

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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."

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge 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 👍 / 👎.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread cells/resync-carrier-change/resync-carrier-change.kdl
Comment thread cells/resync-carrier-change/fixture/contract.sh Outdated
…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
@schickling-assistant

Copy link
Copy Markdown
Contributor Author

@codex please review the current head

Posted on behalf of @schickling
field value
agent_identity unknown
agent_persona unknown
agent_supervisor unavailable
agent_tool unknown
agent_tool_version unknown
agent_runtime unknown
tooling_profile dotfiles@e4789b0

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread cells/resync-carrier-change/fixture/contract.sh Outdated
@schickling
schickling merged commit 629d838 into main Aug 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants