Skip to content

Add run(code, opts) sandbox with zero-credential invariant#2

Merged
ThomasHartDev merged 1 commit into
mainfrom
thomas/feat/core-interface
Jul 19, 2026
Merged

Add run(code, opts) sandbox with zero-credential invariant#2
ThomasHartDev merged 1 commit into
mainfrom
thomas/feat/core-interface

Conversation

@ThomasHartDev

Copy link
Copy Markdown
Owner

second slice on top of the runVerified contract. this adds run(code, opts) which takes untrusted source as a string and runs it in a fresh node:vm context with zero ambient authority, so process, require, fetch, timers and Buffer are all undefined inside it and the only capabilities the code sees are the ones you pass in through grant. the output still goes through the same deadline plus post-condition gate, and it layers two kinds of preemption: v8 kills a synchronous spin, the async deadline race handles a promise that never settles. i defined the zero-credential invariant as a named denylist that gets probed at context-build time so a run fails closed if authority ever leaks in. also pinned the known in-process gap (this.constructor.constructor reaching the host realm through the borrowed global) as a documented escape-attempt test rather than pretending vm is airtight, since closing that is what the isolate and docker tiers are for. tests and typecheck green locally.

@ThomasHartDev
ThomasHartDev merged commit 47c5883 into main Jul 19, 2026
1 check passed
@ThomasHartDev
ThomasHartDev deleted the thomas/feat/core-interface branch July 19, 2026 22:21
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.

1 participant