Skip to content

Add typed task generation inventory - #116

Closed
schickling-assistant wants to merge 2 commits into
mainfrom
schickling-assistant/2026-07-31-task-inventory
Closed

Add typed task generation inventory#116
schickling-assistant wants to merge 2 commits into
mainfrom
schickling-assistant/2026-07-31-task-inventory

Conversation

@schickling-assistant

Copy link
Copy Markdown
Contributor

Summary

  • add st2 tasks --json as a versioned, fail-closed desired-task/runtime inventory
  • persist exact strict exec generations while reading legacy PID records conservatively and without rewriting them
  • join exact PTY and exec evidence behind the shared catalog boundary
  • document and prove the two-phase adopt-only replacement order

This is a sibling stack directly on PR #106 exact head 57bb7452a4e5a464b752e82e282b3974be4d97fd; it is intentionally independent of PR #113. The eventual integration of both stacks has small mechanical overlap in src/main.rs and src/lib.rs.

Safety contract

The typed envelope is st2.task-inventory.v1. Unknown, malformed, timed-out, duplicate, unreadable, PID-reused, or otherwise incomplete evidence is indeterminate, sets complete: false, and exits nonzero. A missing PTY root is positively absent and is not created. Observation never reconciles, kills, cleans, or rewrites legacy state.

The cutover order is:

  1. CAS active provider tasks to adopt-only.
  2. Record a complete baseline behind the fence.
  3. Stop only the old supervisor and start the replacement.
  4. Require a second complete inventory with exact baseline generations.
  5. CAS provider lifecycle back to service.

Ambiguous legacy exec records remain a truthful cutover blocker. Their narrow, explicitly authorized replacement is follow-up work; this PR does not add a general reset or mutate them during observation.

Verification

  • cargo check --tests
  • 7 task-inventory unit tests
  • 7 strict/legacy exec-generation unit tests
  • 6 existing exec-backend integration tests
  • 12 task-inventory CLI/E2E tests, including packaged st2 tasks with a real PTY generation replacement
  • existing hermetic real-PTY targeted lifecycle proof
  • existing Nomad-style exec replacement proof
  • existing Linux transport-isolation proof
  • invariant proof-reference gate
  • git diff --check

Independent read-only architecture/correctness review approved the final factored diff. No live catalog, supervisor, activation, or runtime state was mutated; one live-catalog inventory measurement was read-only.

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
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-assistant
schickling-assistant changed the base branch from schickling-assistant/2026-07-30-catalog-publication to main August 8, 2026 09:44
@schickling-assistant

Copy link
Copy Markdown
Contributor Author

Closing as superseded rather than rebasing.

This branch would need ~22,700 deletions to reach current main — the tree it was cut from has been reshaped by the catalog work that landed since. Reconstructing it against main would be a rewrite, not a rebase, and the reviewable content would not be the same change.

The underlying question — exposing desired versus observed launch generation — is still open as #40, which is where it should be picked up from if it is wanted.

Posted on behalf of @schickling
field value
agent_name unknown
agent_tool Claude Code
agent_tool_version 2.1.220
agent_runtime Claude Code 2.1.220
agent_session_lookup unavailable
tooling_profile dotfiles@unknown-dirty

@schickling schickling added area:doctor doctor, validate, and task inventory diagnostics · Set: manual area:exec Exec backend and process-group management · Set: manual area:identity Agent, session, run, and launch-generation identity · Set: manual area:pty PTY sessions and terminal integration · 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:doctor doctor, validate, and task inventory diagnostics · Set: manual area:exec Exec backend and process-group management · Set: manual area:identity Agent, session, run, and launch-generation identity · Set: manual area:pty PTY sessions and terminal integration · 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.

2 participants