Skip to content

fix: give kitchen identity one lifecycle owner - #5253

Merged
Trecek merged 16 commits into
developfrom
impl-kitchen-identity-20261007-085749
Oct 8, 2026
Merged

Trecek merged 16 commits into
developfrom
impl-kitchen-identity-20261007-085749

Conversation

@Trecek

@Trecek Trecek commented Oct 7, 2026

Copy link
Copy Markdown
Collaborator

Fresh fleet dispatches with an empty campaign ID could mint different kitchen IDs during boot and open_kitchen. The generation store activated the cached boot identity, then rejected recipe writes under the open identity as retired before the worker started.

Kitchen identity now comes from kitchen_open_state through a read-only ToolContext.kitchen_id property. One locked establishment function mints and activates the identity and clears the process-identity cache. Boot and open paths share it, and the fleet CLI establishes its parent identity before dispatch while preserving the recorded campaign for paired resumes. The generation store distinguishes inactive IDs from IDs with retained retirement evidence.

The change includes composed lifecycle and real-subprocess regressions, exact authority-inventory guards, fixture migration, and removal of the #5250 smoke expected-failure entry.

Validation:

  • Every implementation phase passed the configured local gate and pre-commit run --all-files. Final gate: 51,003 passed, 614 skipped, 29 xfailed.
  • The version-test container probe passed empty, unset, and explicit campaign cases, with matching boot and open identities.
  • Headless-smoke CI reached the worker with a nonempty campaign shared by the dispatch and worker. It failed at test_check because Docker provided 64 MiB of /dev/shm, below the 2,000,000,000-byte requirement. The worker also reported a read-only restriction that needs separate investigation. Cleanup verified no remaining smoke PR and an exact-ref 404. The failure reporter additionally hit an unsupported gh issue create --json flag.

The CI environment fixes remain outside this implementation's scope. The worktree contains the existing smoke-infrastructure and version prerequisites followed by separate commits for Parts A, B, and C.

Refs #5250.

Trecek and others added 16 commits October 7, 2026 09:05
Add a headless sandbox smoke test that exercises fleet orchestration and
one smoke-task worker through a canary edit, configured sandbox test
gate, branch push, and a PR closed without merging. The harness stages
the recipe, assigns an exact per-run branch before launch, and verifies
the PR's complete diff, immutable head/ref agreement, and executable
canary.

The workflow removes and verifies the exact model container before
starting independent remote cleanup, including failures that push a
branch without creating a PR. Recipe expected failures match exact
structured envelope identities; cleanup errors remain fatal. The PR also
adds catalog triggers, reproduction instructions, lifecycle/fault
regressions, and production fleet ingredient-binding coverage.

`base_branch` follows fleet's existing config authority using the
sandbox project's configuration. This is a necessary adjustment to the
plan: fleet strips caller overrides before required-ingredient
materialization.

Validation:

- Configured `test_check`: 16,284 passed, 207 skipped, 12 xfailed.
- `pre-commit run --all-files`: passed.
- Real container descendant timeout check: passed; delayed writer
stopped before cleanup, exact container/CID absence verified, incoming
failure preserved.
- [Live MiniMax
CI](https://github.com/TalonT-Org/AutoSkillit/actions/runs/37350976088):
passed with the recorded `expected_failure` for #5250 and verified
post-match cleanup. The assigned branch is absent, no open PR remains,
and removal/cleanup exit codes are zero.

A clean worker/canary/PR live run remains pending the retired-generation
kitchen bootstrap defect in #5250. Its observed exact signature is
linked in the catalog and must be removed after the defect is fixed. The
separate failure-reporter defect found during validation is tracked in
#5249.

Refs #5232.
@Trecek
Trecek added this pull request to the merge queue Oct 8, 2026
@Trecek
Trecek removed this pull request from the merge queue due to a manual request Oct 8, 2026
@Trecek
Trecek added this pull request to the merge queue Oct 8, 2026
Merged via the queue into develop with commit ddda450 Oct 8, 2026
12 checks passed
@Trecek
Trecek deleted the impl-kitchen-identity-20261007-085749 branch October 8, 2026 01:06
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.

1 participant