Skip to content

Publish agent specs transactionally - #106

Merged
schickling-assistant merged 1 commit into
mainfrom
schickling-assistant/2026-07-30-catalog-publication
Aug 1, 2026
Merged

Publish agent specs transactionally#106
schickling-assistant merged 1 commit into
mainfrom
schickling-assistant/2026-07-30-catalog-publication

Conversation

@schickling-assistant

@schickling-assistant schickling-assistant commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Why

st2 had multiple declaration writers with independent locking. A presentation edit could race a spec publication, so readers could observe catalog state that no single writer had admitted.

What

  • make st2 agent publish the sole policy-free single-Agent-Spec publication boundary
  • serialize publication, presentation authoring, and declaration readers through one persistent .st2/catalog-authoring.lock
  • use full-catalog validation, input capture digests, compare-and-swap, atomic replacement, and fsync
  • retire the experimental compile-agent raw writer instead of keeping a compatibility path around the transaction boundary

The rebase preserves current stable identity, rename/describe, task inventory, presentation projection, eval requester, and presentation repair-cursor behavior.

Verification

  • presentation authoring: 10/10, including a causal cross-command lock-contention test
  • agent publication: 13/13
  • catalog selection: 6/6
  • run-loop regressions: 28/28
  • validation: 36/36
  • invariant references: 1/1
  • maintained native authoring guide: green
  • exact touched/new-file rustfmt and git diff --check: green

Two current-main NixOS fixture assumptions remain independently red under the local dev shell: clean PATH=/usr/bin:/bin cannot find Git, and a retired-name substring check matches the sentence st2 removes. Neither is changed or repaired here.

Closes #41.

Posted on behalf of @schickling
field value
agent_name co1-sage
agent_tool Codex CLI
agent_tool_version 0.145.0
agent_runtime Codex CLI 0.145.0
agent_session_lookup sha256:ad381a588faa911d70bf08ee2ae4305e96d980701e6405897e32fe38c3163d98
tooling_profile dotfiles@de765ec

agent-session-id: dev3.dotfiles-cos-misc-agent-runtime-simplification
agent-tool: Codex
agent-tool-version: 0.145.0
agent-model: gpt-5.6-sol
agent-runtime-profile: /home/schickling/.config/coding-agents/profile.json
agent-skills-manifest: /nix/store/nk9iml2841l1yjjg0f6f0d3y60zkg1nn-agent-skills-corpus/share/agent-skills/manifest.json
tooling-profile: dotfiles@4a0515f
@schickling-assistant
schickling-assistant force-pushed the schickling-assistant/2026-07-30-catalog-publication branch from 57bb745 to 7e1bd02 Compare August 1, 2026 09:56
@schickling
schickling requested a review from myobie August 1, 2026 09:57
@schickling-assistant
schickling-assistant merged commit 7e0b380 into main Aug 1, 2026
1 check passed
@schickling schickling added area:agent-spec Agent Spec format, parsing, and the agent-spec crate · Set: manual area:catalog Catalog structure, declarations, transactions, and admission · Set: manual origin:agent Filed or primarily produced by an AI agent · Set: manual type:feature New user-visible or system capability · Set: manual labels Aug 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:agent-spec Agent Spec format, parsing, and the agent-spec crate · Set: manual area:catalog Catalog structure, declarations, transactions, and admission · Set: manual origin:agent Filed or primarily produced by an AI agent · Set: manual type:feature New user-visible or system capability · Set: manual

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Proposal: exact-byte CAS publication for canonical Agent Specs

2 participants