Skip to content

feat: connect interactive Zsh to one helper child - #144

Merged
gonz0w merged 7 commits into
mainfrom
codex/zsh-external-helper
Nov 3, 2026
Merged

gonz0w merged 7 commits into
mainfrom
codex/zsh-external-helper

Conversation

@gonz0w

@gonz0w gonz0w commented Nov 3, 2026 •

Copy link
Copy Markdown
Owner

Interactive Zsh now runs one immutable helper child, collects its real exit status7 and returns to its prompt. The matched process path retains complete descriptor snapshots, fresh child bindings, Zsh’s synchronization pipe, checked exec/readiness and SIGCHLD/wait. Rust retains namespace custody; MODE/SIGINT remain parent-only, and known wait delivery precedes reclaim and input restoration.

The separately reviewed target trial passed in34.169s: helper exit7, print -r -- $? produced7, fresh prompts, normal parent/engine exit and export,21 cleanup records and three reclamations. The Owner used33/96 requests with mode_cleanup0; halt was2884/6000ticks. Actual Screen/PTY and once-only staged inputs were observed, with all host holders and clients cleanly reaped. Earlier failed attempts remain preserved.

Focused validation covers changed C/Rust/kernel contracts, capability denials and stale/unknown outcomes, prior-profile compatibility, actual loader/TLS/Owner fits and composed startup audits. The selected external profile uses the approved72KiB Owner RX ceiling and three guarded stack pages within existing128-page backing; other profiles retain their limits. The approved fixed-workload/scoped-delivery exception leaves full-root coverage open. Private SDK/qualified recipes supply target evidence; this is not a standalone public distribution.

No arbitrary filesystem execution, child job control, login, persistent shell write/reboot readback, packages or R1 acceptance follows.

Closes #143. Refs #142.

Add the selected complete descriptor snapshot and process handshakes, child-local startup, real waitpid routing and actual-argument helper entry. Preserve older startup/profile paths. Focused provider controls and separate peer review pass; whole linked fit, Rust controller integration and native execution remain open in #143.
Keep one filesystem client with shared parent and child descriptor views, route both peers, and order real wait delivery before child reclaim and parent input restoration. Focused positive, denial and containment controls and separate source review pass. The candidate remains unqualified: code and stack exceed the selected limits, and #143 still requires owner resource and verification choices before image or delivery.
Select the approved 72 KiB RX and three-page guarded stack only for the external Zsh composition. Preserve old parser, boot, mapping and inspector limits. Actual focused resource controls and separate review pass; fresh compiled Owner code/runtime/stack fit passes. The earlier aggregate-limit failure remains recorded. Native helper/status/prompt qualification and protected delivery remain open in #143.
The early native start gate still used the old application parser, rejecting the approved larger Owner before reservation or startup. Select the external parser only for its existing validated build flag. Actual extracted-prefix red/green, old-boundary and omission controls pass with known cleanup; the failed native attempt remains preserved. A fresh image and reviewed candidate run remain required.
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.

Run one helper child from real Zsh and return to its prompt

1 participant