Repository navigation
fix: give kitchen identity one lifecycle owner - #5253
Merged
Merged
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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_statethrough a read-onlyToolContext.kitchen_idproperty. 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:
pre-commit run --all-files. Final gate: 51,003 passed, 614 skipped, 29 xfailed.test_checkbecause 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 unsupportedgh issue create --jsonflag.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.