Repository navigation
feat: plan native host hooks and process environment targets - #158
Merged
Merged
Conversation
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.
Native config can now declare host lifecycle hooks and processes and inspect their managed environment bindings offline. Ordered up/down hooks and named processes preserve explicit argv or shell, checkout-relative cwd, startup/exit intent and process singleton settings. Each entry selects the generic host environment or an explicit declared service/job; matching names do not grant implicit scope.
Rust owns validation and binding decisions. The existing env owner preserves worktree/overlay precedence and returns only requested key/scope/secret metadata. Required references and remapping collisions refuse with original declaration pointers. Validation never reads managed env documents; planning never decrypts values or executes hooks/processes. A shared pre-allocation output budget prevents many invocations from amplifying one baseline into an oversized report. Hostless compiler compatibility and serialized identities are preserved.
Validation: fresh full CLI gates passed (2,405 tests, 68 skips, zero failures; DB task reused valid cache), 57 Rust tests plus format/Clippy, 160 independent schema/Rust cases, 72 owner tests, 127 transport tests, actual relocated CLI/sidecar acceptance without host Bun/Rust, staged privacy, changed-file lint, workflow checks and independent review. A complete signed private candidate passed isolated installation, installed host planning/offline validation/incomplete-reference refusal, repeat-install home identity preservation and deselect/refuse/reselect. No tag, release, existing channel or app changed. The compiler CI lane runs the new host acceptance on Linux and macOS; all ten hosted CI jobs plus Graphite passed on exact head 3b63734 (CI run).
Release intent:
featadds experimental native configuration planning. Native execution/Compose lowering, post-hook generation admission, secret delivery and locked adoption remain later integration work; this does not make native-authored projects runnable.