LearnNewsExamplesServices
Frontmatter
id17533
titleExercise the isolated AgentOS plane boundary before relocation
stateClosed
labels
enhancementaitestingarchitecturebuildagent-os
assigneesneo-opus-vega
createdAtAug 22, 2026, 2:22 AM
updatedAtAug 24, 2026, 1:07 AM
githubUrlhttps://github.com/neomjs/neo/issues/17533
authorneo-gpt-emmy
commentsCount5
parentIssue17500
subIssues
17634 Classify Edge launch targets for runtime denial probes
17645 Promote exact launch-root and dependency authority into the AgentOS inventory
subIssuesCompleted2
subIssuesTotal2
contentTrust
projected
quarantined0
signals[]
blockedBy[x] 17525 Build the zero-residue AgentOS extraction inventory
blocking[x] 17631 Reconcile out-of-AgentOS consumers before relocation, [x] 17627 Container-plane projection owner over a source-neutral corpus mirror, [ ] 16202 Neural Link recorder writes the host graph; its data belongs in the container
closedAtAug 24, 2026, 1:07 AM

Exercise the isolated AgentOS plane boundary before relocation

Closed Backlog/active-chunk-18 enhancementaitestingarchitecturebuildagent-os
neo-gpt-emmy
neo-gpt-emmy commented on Aug 22, 2026, 2:22 AM

Context

Epic #17500 requires two blocking proofs before any AgentOS relocation leaf may start. #17525 / PR #17530 owns proof 1: the exact zero-residue inventory. This leaf owns proof 2: exercise the selected C′ package topology and the complete static/runtime denial pair against that inventory before files move.

Current source already contains nearly every primitive:

  • ai/scripts/lint/scriptPlaneClosure.mjs — transitive capability closure, bare-package normalization, and named unresolved edges;
  • ai/scripts/lint/lint-script-plane.mjs — launch-root acquisition from npm, workflows, and orchestrator task definitions;
  • test/playwright/unit/ai/services/hostBarrelImportReach.spec.mjs — static Cloud-package reach with a real positive control;
  • test/playwright/unit/ai/services/hostBarrelRuntimeReach.spec.mjs + its module.register() denial loader — eager-lifecycle/runtime reach with Cloud and host controls;
  • package.brain.json + its lock — the existing durable-driver tier (chromadb, better-sqlite3, @chroma-core/default-embed);
  • MANAGED_WORKSPACE_MCP_SERVER_DESCRIPTORS — the existing Host-Edge MCP population seed;
  • #17525's registry — every script/root/workflow/subprocess/config/custody identity plus the 12 current computed/unresolved closure edges.

What is missing is their composition over the selected future topology.

Premise correction — 2026-08-23: exact-head intake proved that the paired-gate exercise precedes store-edge severance in the Epic's reviewed leaf order, while this ticket originally required the exercise itself to report zero Cloud reach. That was impossible by construction. The corrected contract below makes instrument integrity and controls green, but makes the current-head topology receipt red-capable: every non-empty blocker is a named output with an owning successor, never a reason to weaken or skip the exercise. Evidence: https://github.com/neomjs/neo/issues/17533#issuecomment-5383344554

The Problem

Today all proofs run inside the monorepo's installed dependency tree. That environment can make a false Edge package look healthy:

  • a root or workspace ancestor can hoist Cloud drivers into resolution range;
  • a manifest can omit an Edge entrypoint and make a green denial result vacuous;
  • the static walker can pass while better-sqlite3 still loads through eager initAsync();
  • a runtime denial can fail for syntax/cwd/loader reasons and still look like a useful negative;
  • a computed import can sit outside the static graph while no registry binds its disposition;
  • the Cloud side can disappear entirely and “Edge resolves nothing” still passes.

A manifest omission is therefore not isolation. The proof needs an isolated artifact, bidirectional membership reconciliation, static closure, runtime denial, and a named Cloud positive control over one shared population.

The Architectural Reality

  • C′ is one repository whose root is the Host-Edge package and whose cloud/ child is installed independently. npm workspaces are forbidden; resolution may not depend on ancestor hoisting.
  • Databases, durable state, ingestion, migration, backup, and compaction exist only in Container Cloud. Edge may call served contracts; it cannot resolve a durable-store driver, path, service, or transitive handle.
  • shared/ is conditional. A module enters it only when the exact inventory proves genuine cross-plane consumption and the module owns no driver, host capability, or ambient config authority.
  • ADR 0039 establishes that static and runtime instruments are complementary. Neither may be promoted into the whole property alone.
  • The #17525 registry is custody authority. Current closure is evidence/conflict checking, not an implicit membership fallback.
  • The mandatory full npm run --silent ai:structure-map -- --files --loc currently exceeds Node's maximum string size; scoped source reads above are the placement evidence.
  • Structural fast-path: if a new spec is needed, test/playwright/unit/ai/services/agentOsPlaneBoundary.spec.mjs matches the existing static/runtime denial siblings. Production logic extends existing closure/lint modules; no parallel gate module is prescribed.
  • The Epic's reviewed order is inventory → paired-gate exercise → store-edge severance. A current Edge→Cloud finding is therefore valid proof output. The exercise fails only when it cannot name or classify the finding, when a control is vacuous, or when authority and population disagree.

The Fix

Build a temporary, disposable C′ fixture from the exact inventory and run one paired proof over it. The proof has two result layers: instrument integrity must be green; topology findings are an exact, red-capable receipt whose non-empty blockers name their successor owners.

  1. Materialize an Edge root package and independently installed nested cloud/ package outside the repository/ancestor dependency tree. Do not use npm workspaces or a symlinked parent node_modules. Refuse an empty manifest population.
  2. Promote every manifest input the current report drops into exact authority: resident ai/scripts modules, every npm/workflow/task launch-root identity, root commands, and package dependencies. Reconcile each plane bidirectionally; a missing row and a stale row are distinct findings.
  3. Prove the isolated Edge artifact's real resolver cannot see chromadb, better-sqlite3, @chroma-core/default-embed, or any future Cloud-only dependency authority. The nested Cloud control must resolve the same dependency from its own package root. Adding a Cloud driver to Edge is a mutation RED.
  4. Run scriptPlaneClosure over every Edge manifest entrypoint from that same population. Record every Cloud package, Cloud/durable path, root escape, and unregistered unresolved/computed edge. The current receipt may be non-empty; every identity must be exact and successor-owned.
  5. Run the existing runtime denial hook only over an explicitly authority-classified eager-evaluable Edge population. An ineligible entrypoint requires a reason; omission is residue. A success is licensed only by paired controls:
    • the Cloud positive-control entrypoint dies under the identical Cloud-package denial for the denial reason;
    • an Edge entrypoint dies when a dependency it genuinely uses is denied, proving the hook observes that target.
  6. Reconcile every computed/dynamic Edge closure edge with the registry. An added edge and a same-count substitution each RED by identity.
  7. Emit a deterministic machine-readable current-head receipt separating instrumentErrors from topologyFindings. The command exits non-zero when either is non-empty; unit fixtures prove every finding arm without making hosted CI depend on the known pre-severance topology.
  8. Keep fixture creation/cleanup OS-temp scoped and import-safe. Reuse or extract the existing closure and denial helpers rather than copying their semantics into a third implementation.
  9. Link the receipt and native successor relationships on Epic #17500. No relocation is authorized until proof 2 exists and every successor marked preRelocationBlocker is discharged.

Contract Ledger Matrix

Target Surface Source of Authority Proposed Behavior Fallback Docs Evidence
plane manifest populations #17525 registry + retained launch-root/dependency authority every resident/launchable/dependency identity maps exactly to Edge, Cloud, shared, stays-Engine, or retire; both residue directions are explicit refuse empty, missing, stale, or duplicate authority fixture/gate JSDoc missing + stale + zero-population mutations
isolated C′ package roots Edge-root / nested-Cloud / no-workspaces invariant resolution starts from the owning package root; Edge cannot see Cloud-only dependencies and Cloud never falls back to Edge/ancestor installs emit exact resolver-path finding fixture JSDoc Edge denial + nested-Cloud positive + injected-driver RED
static Edge closure scriptPlaneClosure.mjs + inventory custody every Edge entrypoint reports exact package/path/escape/unresolved findings over one manifest population non-empty findings remain red and successor-owned; never silently downgraded existing closure JSDoc + proof composition full population + export-all/path/package controls
runtime Edge denial ADR 0039 runtime witness + explicit probe-eligibility authority every eligible Edge entrypoint runs under Cloud denial; every ineligible entrypoint has a reason non-denial death is instrument error; omission is residue denial-pair JSDoc Edge result + Cloud death + Edge-used-package death
computed-edge registry exact #17525 edge identities every dynamic/computed Edge edge is eliminated or explicitly dispositioned; expression identity catches same-member substitutions additions/substitutions fail even at equal count registry evidence add + same-count replace mutations
current-head proof receipt Epic #17500 reviewed leaf order instrument errors and topology findings are separate; findings name successor and preRelocationBlocker state no green-by-omission and no relocation authorization Epic receipt comment deterministic JSON + human summary

Decision Record impact

Depends on ADR 0039 and aligns with the corrected C′ authority in D#17489 / Epic #17500. It does not amend ADR 0039 and does not freeze ADR 0040 or the repository name.

Decision Record

Required: #17502 will record ADR 0040 after the naming sweep. This paired proof is evidence for that record, not a substitute for it.

Discussion Criteria Mapping

Source criterion This leaf
D#17489 OQ3 / invariant 5 manifest membership, static closure, runtime denial, Cloud positive control, and computed-edge disposition run over one population
no-workspaces correction fixture install has no workspace or ancestor-hoist path
corrected timing DC_kwDODSospM4BFFq_ this is blocking proof 2; no relocation leaf starts before proof 1 and proof 2 are accepted
Epic Stage-3 leaf 2 delivers the temporary membership + paired-gate exercise without moving production files

Acceptance Criteria

  • A disposable C′ fixture materializes a non-empty Edge root and independent nested cloud/ package outside the repo's ancestor dependency tree, with no npm workspace or parent/symlinked node_modules.
  • Exact manifest authority includes resident modules, npm/workflow/task launch roots, root commands, and dependency identities. Missing and stale entries RED independently and name the exact identity; an empty population REDs.
  • The isolated Edge resolver cannot resolve every Cloud-only dependency in the declared set; the nested Cloud positive resolves each from its own root; adding one driver to Edge REDs.
  • Static closure runs over every Edge manifest entrypoint and emits exact Cloud-package, Cloud/durable-path, root-escape, and unregistered unresolved/computed findings. export * and bare-package edges cannot disappear from the instrument.
  • Runtime denial runs over every explicitly eligible Edge entrypoint; every ineligible entrypoint is registry-owned with a reason. The Cloud control and Edge-used-package control fail for the exact denial contract, not merely with a non-zero exit.
  • A computed-edge addition and same-count substitution each RED by stable semantic identity; the current registry population is fully dispositioned.
  • Instrument errors and topology findings are separate in deterministic JSON/human output. Unit fixtures make every detector arm RED/GREEN; known pre-severance topology findings do not become hosted-CI false greens or permanently failing tests.
  • The proof reuses/extracts the existing static/runtime instruments rather than copying their semantics.
  • Fixture output is OS-temp scoped, cleaned on pass/fail, and commits no install/build artifact.
  • The current-head receipt is linked on Epic #17500. Every non-empty topology finding names a native successor relationship and whether it blocks relocation; no relocation is authorized until those blockers close.

Out of Scope

  • moving AgentOS files or creating the external repository;
  • severing the two measured Edge→store spines (this proof names them; the Epic's next leaf owns the repair);
  • authoring final production plane manifests before naming/repository scaffolding;
  • choosing the repository name or drafting ADR 0040;
  • changing database ownership away from Container Cloud;
  • treating a green static walk or package omission as the whole property.

Avoided Traps

  • Manifest omission as isolation: ancestor hoisting can make undeclared drivers resolve.
  • Static-only green: cannot observe eager dynamic better-sqlite3 loading.
  • Green-before-severance inversion: requiring proof 2 to be topologically green before the reviewed leaf 3 repair hides the very blockers the exercise exists to surface.
  • Runtime death without reason: syntax/cwd/loader failure is not a denial control.
  • One-sided membership: a missing row and a stale row are separate drift classes.
  • Count ratchet: one edge can replace another at the same total.
  • Parallel gate implementation: reuse/extract the established closure and denial pair.
  • Fixture inside the repo tree: parent node_modules would invalidate the isolation claim.

Related

Parent: #17500. Blocked by: #17525 / PR #17530. Decision Record leaf: #17502. Source: D#17489. Existing boundary authority: ADR 0039.

Origin Session ID: bbd4f722-ca03-4269-a88e-29555b12b9f9

Retrieval Hint: query_raw_memories("AgentOS extraction second blocking proof isolated Edge manifest runtime denial Cloud positive control")

Live latest-open sweep: checked latest 20 open issues at 2026-08-22T00:22:08.694Z; no equivalent found. A2A in-flight claim sweep: latest 30 all-state messages at the same timestamp; no overlapping claim found.

tobiu referenced in commit bc0e2da - "feat(agentos): the paired plane-boundary proof — all four layers (#17533) (#17653) on Aug 24, 2026, 1:07 AM
tobiu closed this issue on Aug 24, 2026, 1:07 AM