Skip to content
Cockpit0.29.0
A snapshot: read at commit 707a04c7ce8 on 2026-10-18T00:06:01Z by majordomus 0.29.0. Nothing on this page is read again. See it live

I1800

The sandboxed engine a scripted capability runs in

Where it stands

devtask.issue
Readiness
ready no dependency and no gate holds it; nobody has started it
Status
READY
Can start
startable
Milestone
Milestone status
ACTIVE
Wave
0
Waiting on
none
Holds back
Behind it in all
2
Evidence
0 of 1
A move writes the repository: it stamps one field of this issue's record and appends one event to the ledger, and a commit will carry both.
The same moves from a terminal

majordomus plan start I1800

majordomus plan verify I1800

majordomus plan done I1800

What it is

Objective
Embed Rhai in the Rust executable as one engine constructor that every scripted capability runs under: eval disabled, no clock, limits on operations, call depth, expression depth and the sizes of strings, arrays and maps, and cancellation checked on every operation.
Why
ADR 0069 decides that repository automation becomes scripted capabilities rather than shell. The declared exception to project.no-network-no-eval holds only if the interpreter is a sandbox and there is exactly one place that builds it, so the engine lands first and alone.
Now
No interpreter is embedded; every orchestration is shell.
Wanted
apps/majordomus-cli/src/script builds the one engine; each guarantee it makes is proved by a unit test.
Done when
unknown: the record declares no `completion`
Risk
unknown: the record declares no `risk`

Acceptance

  • eval does not compile in a script
  • a script has no clock function
  • an endless loop ends with the operation limit, and a string cannot grow past its limit
  • a cancelled execution stops at its next operation
  • the engine is Send and Sync
Validation
cargo test --manifest-path apps/majordomus-cli/Cargo.toml --lib script::
Evidence required
sandbox_engine_proved
Evidence present
unknown: the record carries no `evidence` entries

Scope

Touches
apps/majordomus-cli.ai/repo/adrs
Not
Binding the engine to a capability; that is I1801
Depends on
none
Priority
p1
Profile
implementation
Parallel safe
true
Owner
unknown: the record declares no `owner`

The work so far

Branches
none
Merged
none
Commits
0
Trunk
master
Sessions
none
Created
2026-09-15
Updated
2026-09-15
Started
unknown: the record declares no `started_at`
Verified
unknown: the record declares no `verified_at`
Completed
unknown: the record declares no `completed_at`

Synchronisation

Adapter
scripts/github-sync
Repository
unknown: the derived plan's header carries no repository
External issue
unknown: a live GitHub state; this executable makes no network call, so only `scripts/github-sync --check` can answer it
State there
unknown: a live GitHub state; this executable makes no network call, so only `scripts/github-sync --check` can answer it

Findings

LevelCodeMessageReproduce
WARNscope_conflictshares apps/majordomus-cli with I1900; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares apps/majordomus-cli with I1997; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares apps/majordomus-cli with I1999; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares apps/majordomus-cli with I2059; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares apps/majordomus-cli with I2114; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares apps/majordomus-cli with I2132; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares apps/majordomus-cli with I2140; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares apps/majordomus-cli with I2410; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares apps/majordomus-cli with I2411; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares apps/majordomus-cli with I2412; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares apps/majordomus-cli with I2413; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares apps/majordomus-cli with I2414; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares apps/majordomus-cli with I2415; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares .ai/repo/adrs with I2653; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares apps/majordomus-cli with I2670; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares apps/majordomus-cli with I2694; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares apps/majordomus-cli with I2695; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares apps/majordomus-cli with I2697; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares .ai/repo/adrs with I2714; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares apps/majordomus-cli with I2718; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares apps/majordomus-cli with I2720; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares apps/majordomus-cli with I2723; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares apps/majordomus-cli with I2740; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares apps/majordomus-cli with I2742; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares apps/majordomus-cli with I2747; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares apps/majordomus-cli with I2770; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares .ai/repo/adrs with I2786; they may not run concurrentlymajordomus plan validate