Repository navigation
feat(receiver): bridge signed phases through the fixed Shuttle CLI - #26
Merged
Merged
Conversation
This was referenced Oct 15, 2026
…rocess # Conflicts: # pyproject.toml
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.
The scheduled receiver has a signed-port protocol, but Shuttle lives in a separate Python environment. Add an opt-in fixed-argv CLI implementation for Shuttle's four scheduled phases. It pins local config bytes and passes the same opened descriptor, requires existing keys, bounds phase time and receipt output, and refuses an unverified exit-zero response.
Real subprocess controls exercise each phase, replay without a second execution callback, changed config bytes and pathname, symlink/FIFO custody, wrong scope/slot/run, nonzero/timeout and malformed receipts. The CLI is an explicit fixture; live signing/registration/read-back remains the installed Shuttle SDK's responsibility.
Validation: full suite 231 tests plus 25 subtests passed, then all 13 process controls including the added pathname-replacement control passed. Both HOME guards saw 157 paths and five UID resources untouched. Ruff, offline wheel build and isolated wheel imports passed. Same presence probe changed absent->present while the receiver positive control stayed true. Replayed demo: recording, timing; reproduce
python scripts/demo-shuttle-process.py.No scheduler, asynchronous execution handoff, background worker or runtime activation. Long CVE execution still requires a separate handoff and installed child-survival acceptance. Rollback: normal source revert while preserving claims/outboxes. No release, install, keys or cron changes.
Bead: aegis-6vf
Overlap preflight: b25fde9c0bd9b1fb0fcfc30a1dc3c2f904bc43379a94d8957276b4fc1cbd1271