Repository navigation
chore(bootstrap): extract stateless command transport - #47
Merged
Merged
Conversation
egdev6
marked this pull request as ready for review
October 9, 2026 22:20
This was referenced Oct 10, 2026
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.
Linked issue
Refs #15 (nonclosing; approved issue). This is only the U5b-1 transport slice, not completion of #15.
PR type
type:choreSummary
command-transport.mjs, preserving the real resolver, native production default, bootstrap exports, and CLI behavior.createCommandRunner(execute = execFileSync), an independent trusted synchronous backend closure per runner, without singleton setters, environment hooks, injected resolvers, or new CLI/config options.Changes
skills/github-repository-bootstrap/scripts/bootstrap.mjsskills/github-repository-bootstrap/scripts/command-transport.mjsrunskills/github-repository-bootstrap/tests/command-transport.test.mjsskills/github-repository-bootstrap/references/execution-safety.mddocs/odd/b01-command-transport.mdTest plan and observed evidence
TMPDIR, Node 24.20.0/Linux:node scripts/run-tests.mjs181 pass / 0 fail / 0 skipped, preserving the 171 baseline cases. Independent physical-CRLF source copy: 181/181/0/0. All ten new cases execute. Parent rerun confirms final 181._cmd; no runtime effect or line-count reduction.1975aafd9c572e31bad1d28bfe68c3c63c4ba11a289a9f0dfbf382f80f328826.0e7bc4bb497f2f55877c4ecf07307f9a8e13bb0397a52717beb4f6d7fc8124f7: 3 added, 2 changed, 57 unchanged, 0 removed versus source59 main.Boundaries, incidents and environment
This is transport only: existing CLI helpers use the native factory default, but none accepts an injected non-default runner. U5b-2 orchestration, 15 full pending project scenarios plus S05 adapter and three lifecycle obligations, remain open. No new schema/default/runtime workflows/installer/protection behavior, activation, credentials/API calls, issue closure, version (still 1.1.0), tag or release.
The backend is trusted programmatic code, not a sandbox. The existing resolver rejects batch paths that it actually detects before executing a callback; this is not a universal command-name filter or filesystem-alias guarantee. Diagnostic behavior, including the last two stderr lines, is preserved and does not become a global secret-redaction feature.
Local ambient
/tmp/package.jsonhastype:module, breaking one pre-existing extensionless fake-gh fixture: the pre-change baseline was 170 pass/1 fail with default temp. Scoped owned commonjs TMPDIR yields all 181 passing; the foreign file was not modified, and post-change ambient default-temp success is not claimed. Probes/caches/scratch are retained and excluded from the explicit payload, not deleted or ignored through repository-policy changes.Writer used
cat/sedand log/diffhead/tailfor some reads despite the required read-tool rule; the incident is recorded without retroauthorization or replay. No manual scratch cleanup or Root edits occurred. A reported Root hash discrepancy was a Git SHA1 blob hash versus raw porcelain SHA256, not actual drift: the authorized Root SHA256 remained07f840c38b5977062cf17f2bdf2037b2095758181b5b9699bf3d1a249ddbefc2throughout.Contributor checklist
Refs.testsuccessful (pending at creation).Draft only. No assistant ready/merge, activation, dispatch/rerun, issue edits/closure, release or cleanup authorization.