You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
## Summary
- preserve provider credentials, routing, and execution context through
hosted preflight and runtime boundaries
- align Codex, Claude, and OMP hosted execution, including writable temp
paths, process ownership, terminal failure semantics, and bounded
completion results
- make shipped GitHub delivery authoritative and resilient to transient
merge-state races
- harden private candidate/image packaging and add focused regression
coverage for the deployed contracts
## Deployed validation
Validated through `dev.theopenengine.com` with real provider calls, real
work, and real `--ship` delivery to
`the-open-engine/zeroshot-matrix-demo-20260812-3ebd`. Every shipped PR
merged and its repository CI passed.
| Provider / coordinator | RunIntent | Shipped PR |
|---|---|---|
| Azure OpenAI + OMP / custom | `019ffd84-61e7-7d70-b900-f74eab6a6a5c` |
demo PR 65 |
| Azure OpenAI + OMP / built-in | `019ffd8d-6159-70a3-ac33-cc3a1eeb049d`
| demo PR 67 |
| OpenRouter + Claude / custom | `019ffd9c-e8f8-7f30-a6b1-d142a54238b6`
| demo PR 72 |
| OpenRouter + Claude / built-in |
`019ffd9c-ef80-7901-b892-4b1fdaf0d244` | demo PR 73 |
| OpenAI + Codex / custom | `019ffd9c-f8e8-7070-9b16-781bba765fab` |
demo PR 74 |
| OpenAI + Codex / built-in | `019ffd9c-ff78-7791-950c-c003ba111378` |
demo PR 75 |
The targeted Azure failure rows were proven first; only then were the
four previously green rows rerun as regression guards. The accumulated
demo repository suite passes 543/543 tests. No delivery fixtures or
simulated provider results were used.
The full runtime tree was tested at `42c6cfd`; this PR was then
recomposed as one conventional commit. The only tree delta in `f3ed3fe`
is two test-fixture files (no production/runtime files). Zero-cloud main
pins `f3ed3fe`, and focused exact-head deployment run `31757758450`
completed successfully with image scan, IaC apply, and public health
checks.
## Validation
- focused completion-boundary suite: 24 passing
- private hosted preflight suite: 7 passing
- `npm run check`: green (0 errors; existing warnings only)
- Opcore staged gate: 92/92 files covered, clean
- repository pre-commit validation: green
- branch push hooks: green
- exact-head PR CI: green (one unrelated Rust timing flake passed on the
single rerun)
- zero-cloud exact-main CI:
[green](https://github.com/the-open-engine/zero-cloud/actions/runs/31757674291)
- zero-cloud exact-main full deployment:
[green](https://github.com/the-open-engine/zero-cloud/actions/runs/31757674266)
Co-authored-by: Michael Eichelbeck <michael@theopenengine.com>
Copy file name to clipboardExpand all lines: AGENTS.md
+35-4Lines changed: 35 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -213,7 +213,9 @@ cannot succeed. After provider success, trusted Git delivery verifies the mutati
213
213
configuration, and that the retained revision remains an ancestor of the current target before
214
214
pushing one deterministic-branch commit. Review delivery succeeds only with a verified open pull
215
215
request. Ship delivery succeeds only after an authoritative merge receipt or GitHub acceptance of
216
-
merge-method auto-merge; an open pull request alone never succeeds. The backend validates the
216
+
merge-method auto-merge; an open pull request alone never succeeds. Transient auto-merge
217
+
enablement failures use one bounded retry policy and re-read the exact pull-request authority
218
+
before retrying or accepting a lost response. The backend validates the
217
219
secret-free, versioned result, and any execution, cleanup, or delivery defect produces a closed
218
220
failure. Keep the runtime, binary, image, and manifest private. Provider and harness interpretation
219
221
belongs only in the Zeroshot runtime bundle and worker, never in hosting, IaC, or the run-intent
@@ -226,6 +228,9 @@ Structured-output recovery eligibility is also registry-derived: every engine wh
226
228
capability is `true` or `experimental` must implement its provider-owned, fail-closed recovery
227
229
adapter. Recovery always runs as a fresh nested turn with provider sessions, MCP, approval bypass,
228
230
write-capable tools, network tools, and user-defined agents/configuration disabled.
231
+
OMP SDK children inherit only the registry-declared non-secret configuration environment plus the
232
+
fixed minimal process environment. Credentials remain on the private credential channel; never add
233
+
arbitrary ambient passthrough or duplicate provider configuration lists beside the registry.
229
234
230
235
Cluster Protocol Rust types are the source of truth. Files under
231
236
`protocol/openengine-cluster/v1/` are generated projections; update them with
@@ -617,11 +622,13 @@ Cluster preflight validates the selected registry entry's `settingsValidator` wi
617
622
Detached provider tasks default to the `detached` execution boundary. Embedding runtimes that
618
623
already own process, filesystem, and network isolation must set
619
624
`ZEROSHOT_TASK_EXECUTION_CONTEXT=benchmark`; the task runner validates and propagates this
620
-
provider-neutral boundary so adapters do not attempt incompatible nested containment.
625
+
provider-neutral boundary so adapters do not attempt incompatible nested containment. Task
626
+
preflight and provider command preparation must share `src/task-execution-context.js`; availability
627
+
probes must receive the same validated boundary that command preparation will use.
621
628
622
629
OMP's supported version, package identity, and release asset digests are pinned once in `omp-release.ts`; the RPC codec and any registry/version-probing/Docker-build code import it. Never recopy the version string, asset names, or digests elsewhere.
623
630
624
-
OMP's `rpc-stdio` invoke lane uses one shared lifecycle driver, `runOmpRpcTask` (`omp-rpc-driver.ts`), for both foreground (`contract-invoke.ts`) and detached (`task-lib/rpc-watcher.js`) execution, so the two paths produce identical result semantics. Spawn evidence is persisted (via the caller's `onSpawn` hook) before the first stdin write, and is reported only once the child process is confirmed spawned (the Node `'spawn'` event) — never synthesized from a pre-spawn/undefined pid, which would let ownership-based termination signal an unrelated process. Output is normalized-events-only: raw RPC frames, prompt text, and control payloads are never logged, only `OutputEvent`s (`omp-rpc-events.ts`). The detached watcher's prompt never enters its argv (`ps` and `/proc/<pid>/cmdline` expose argv to every local user for the watcher's whole lifetime); `task-lib/runner.js` hands it over the private, length-prefixed stdin pipe in `src/watcher-prompt-channel.js`, and the watcher fails closed — no OMP spawn, ownership-aware cleanup still runs — when that channel is absent, truncated, over the pinned 1 MiB frame contract, or closed before a complete payload. The per-task OMP config overlay (`omp-config-overlay.ts`) and its cleanup are ownership-checked by the shared `src/command-cleanup-ownership.js` owner used by both cleanup call sites; a failed or unsafe cleanup leaves the task's cleanup receipt intact (durably retryable) instead of silently discarding it. Provider `dockerIsolation`/`worktreeIsolation` capabilities are gated in `orchestrator.js` and `preflight.js` before any container/worktree is created, not after.
631
+
OMP's `rpc-stdio` invoke lane uses one shared lifecycle driver, `runOmpRpcTask` (`omp-rpc-driver.ts`), for both foreground (`contract-invoke.ts`) and detached (`task-lib/rpc-watcher.js`) execution, so the two paths produce identical result semantics. Spawn evidence is persisted (via the caller's `onSpawn` hook) before the first stdin write, and is reported only once the child process is confirmed spawned (the Node `'spawn'` event) — never synthesized from a pre-spawn/undefined pid, which would let ownership-based termination signal an unrelated process. Output is normalized-events-only: raw RPC frames, prompt text, and control payloads are never logged, only `OutputEvent`s (`omp-rpc-events.ts`). The detached watcher's prompt never enters its argv (`ps` and `/proc/<pid>/cmdline` expose argv to every local user for the watcher's whole lifetime); `task-lib/runner.js` hands it over the private, length-prefixed stdin pipe in `src/watcher-prompt-channel.js`. Watchers are plain detached Node children with no IPC channel, so wrapper completion has exactly one lifetime owner. The watcher fails closed — no OMP spawn, ownership-aware cleanup still runs — when the prompt channel is absent, truncated, over the pinned 1 MiB frame contract, or closed before a complete payload. The per-task OMP config overlay (`omp-config-overlay.ts`) and its cleanup are ownership-checked by the shared `src/command-cleanup-ownership.js` owner used by both cleanup call sites; a failed or unsafe cleanup leaves the task's cleanup receipt intact (durably retryable) instead of silently discarding it. Provider `dockerIsolation`/`worktreeIsolation` capabilities are gated in `orchestrator.js` and `preflight.js` before any container/worktree is created, not after.
0 commit comments