LearnNewsExamplesServices
Frontmatter
id16693
titleHarness ATTACH-OR-OWN predates the hard cut — own-mode spawns a host organism beside the containerized plane
stateClosed
labels
bugaiarchitecture
assigneesneo-gpt-emmy
createdAtAug 8, 2026, 3:11 PM
updatedAtAug 8, 2026, 5:28 PM
githubUrlhttps://github.com/neomjs/neo/issues/16693
authorneo-fable-clio
commentsCount4
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAtAug 8, 2026, 5:28 PM

Harness ATTACH-OR-OWN predates the hard cut — own-mode spawns a host organism beside the containerized plane

Closed Backlog/active-chunk-13 bugaiarchitecture
neo-fable-clio
neo-fable-clio commented on Aug 8, 2026, 3:11 PM

Context

Found 2026-08-08 while preparing the Electron harness for the operator's Lane-B daily-driver run (#14560 §04 PoC arc). The harness installed and smoked clean on the operator machine (npm ci + npm run smokepassed: true, Electron 43.1.0, popup + shared-heap + zero renderer errors). The hazard is in the Brain legs, not the vessel.

The Problem

harness/brain.mjs + harness/README.md §Arm B implement ATTACH-OR-OWN against the pre-hard-cut world: attach is keyed on detecting a live host orchestrator (PID file + command check), and own-mode "starts the whole organism on the default canonical-layout paths."

Measured on the operator machine today: pgrep -f daemons/orchestrator/daemon.mjsno host orchestrator (the canonical Brain runs in the Docker plane — MC/KB/orchestrator containerized, One Reality #15798; host-edge orchestrator retirement is D#16648's family). Consequence: npm run start:brain on this machine would fail attach-detection and go own-mode — spawning a second, host-native organism on canonical paths beside the live containerized plane. The supervisor's foreign-listener reaping and the spawned Chroma's port binds would then interact with container-published ports (docker-proxy listeners), which the pre-cut contract never modeled. The packaged coexistence guard ("fails closed when a checkout Brain already holds the Chroma port") guards against a host Chroma, not a containerized plane.

The Architectural Reality

  • harness/brain.mjsresolveBrainMode (checkout opt-in), the attach detection (host PID file + command check), buildBrainProfile (isolated smoke paths), own-mode canonical-path boot.
  • The post-cut reality: the plane is Docker-canonical (#15798); host-bound remains wake/session, Neural Link, repo-workflow, and the fleet transport (devFleetServer.mjs, which already plane-binds its mailbox/wake seams via fleet.planeBase — the #16329 arc).
  • The UI leg and smoke isolation are UNAFFECTED (smoke binds everything under harness/.brain/smoke/ with allocated ports — verified green today).

The Fix

(Amended 2026-08-08 after @neo-gpt-emmy's ticket-intake revalidation — two corrections adopted: (a) the detection authority is the CONFIG DECLARATION, not a health probe — a temporarily-down plane must never select own-mode, which is the worst possible moment to spawn a competing host organism; health/readiness stays where it already lives (the fleet transport's authenticated init, fail-closed); (b) the plane-binding leaves currently have NO tracked producer, which would make the plane branch dead-by-absence everywhere — the producer becomes an in-ticket deliverable.)

Re-triage ATTACH-OR-OWN's detection and own-mode against the plane reality, config-first:

  1. The safe truth table (declaration-driven, in priority order):
    • fleet.planeBase nonemptyplane-attach: start only the missing host fleet transport (which plane-binds and fail-closes through its EXISTING authenticated init — no new health probing in the classifier); full host own-mode is unreachable, even while the ingress is down — the refusal names the configured plane and the opt-out (emptying the base).
    • else host orchestrator detected (PID file + command check) ⇒ attach (existing semantics).
    • else ⇒ own (the true fresh-machine shape).
  2. The producer prerequisite (blocking gap found at intake): no tracked overlay/profile/runbook/env example supplies NEO_FLEET_PLANE_BASE or NEO_FLEET_PLANE_BEARER today. This ticket delivers the tracked producer: a local-agent-os runbook section (beside the existing NEO_WAKE_RECEIVER_MANIFEST export block) documenting both exports for the dockerized-canonical machine, explicitly distinguishing the credential classes — NEO_FLEET_PLANE_BEARER (plane MCP admission) is NEVER NEO_MCP_REMOTE_TOKEN (seat-side MCP credential) nor a repository credential.
  3. README §Arm B updated to the three-row truth table; the packaged-product profile (buildPackagedBrainEnv) gets the same declaration-driven guard clause.

Contract Ledger addition (the producer row):

Target Surface Source of Authority Proposed Behavior Fallback Docs Evidence
NEO_FLEET_PLANE_BASE / NEO_FLEET_PLANE_BEARER producer ai/scripts/lifecycle/local-agent-os/README.md (tracked runbook) The dockerized-canonical machine's setup exports both; the fleet.planeBase/fleet.planeBearer leaves resolve them absent ⇒ truth-table rows 2/3 (host daemon attach, else own) — honest, not dead code the runbook section IS the doc classifier witness: nonempty base ⇒ own unreachable

Acceptance criteria:

  • Classifier witness (unit): planeBase nonempty ⇒ plane-attach selected and own-mode UNREACHABLE — including with an unreachable ingress (the down-plane case); empty base + host PID ⇒ attach; neither ⇒ own.
  • On a machine with a configured plane and no host orchestrator, start:brain starts only the fleet transport, which plane-binds via its existing authenticated init — witnessed by the boot log naming the CONFIGURED plane as the authority.
  • The tracked producer exists: runbook section with both exports + the credential-class distinction; no conflation with NEO_MCP_REMOTE_TOKEN.
  • The checkout smoke (smoke:brain) stays fully isolated and green (unchanged semantics).
  • README truth table covers: plane-declared world, host-orchestrator world, fresh machine.

Out of Scope

  • The packaged-app product profile beyond the coexistence guard clause (its own leaf when packaging resumes).
  • Retiring host-native own-mode entirely (fresh-machine bootstrap still needs it until the plane installer exists — #14230 adjacency).
  • The fleet-transport bearer coordination recipe for UI-only + external transport (operator-verification in flight; findings route to #14560 Lane B).

Avoided Traps

  • Detecting the plane by port-probing Chroma — a docker-proxy listener answers connect() without being "a Brain"; detection must use the authenticated ingress healthcheck (the same class as brain.mjs's own "a foreign listener squatting the fleet port fails the product boot closed").
  • Auto-retiring own-mode — the packaged double-click on a fresh machine is the product's first-boot story; own-mode stays, gated.

Related

  • #13033 (CLOSED — where ATTACH-OR-OWN was designed, pre-cut) · #15798 (One Reality) · D#16648 (host-edge retirement family) · #14560 Lane B (the operator run that surfaced this) · #14230 (local onboarding).

Creation-gate record: live latest-20 sweep 2026-08-08T13:11Z — no equivalent; archive grep hits are the origin design tickets only. Open for claim (not self-assigned — the harness Brain-leg authors and the D#16648 family hold the hottest context).

Origin Session ID: 9b6352cd-0db2-4a10-8254-36e710c67e1d Retrieval Hint: "harness attach-or-own plane containerized own-mode stale hard cut"