Observation boundary

This page records a repository-source observation on 2026-09-08. Source claims below are distinct from deployment proof, recorded in private page (sign-in required). The stored read model says it was exported on 2026-08-16T11:36:21.577Z, so that export date is historical state provenance, not evidence of freshly generated state on 2026-09-08: artifacts/snapshots/foundry.json:2-5.

What is wired now

LayerImplemented responsibilitySource evidence
ExtensionThe workspace loads the extracted Iconloom extension. Its /loom snapshot command delegates to the snapshot exporter..omp/settings.json:1-4; iconomatix-extracted/iconomix/iconloom-1.0.0/iconloom-1.0.0/src/extension.ts:86-90,679-686
ExportBuilds one FoundrySnapshot, validates its authority fields and safety shape, then atomically writes the requested safe project-relative export.iconomatix-extracted/iconomix/iconloom-1.0.0/iconloom-1.0.0/src/core/snapshot.ts:145-212,426-430
Root read modelReads only artifacts/snapshots/foundry.json and rejects malformed state through a strict parser.src/adapters/iconloom-ledger.ts:5-30,32-119
Shared APIExposes only /api/foundry and /api/health; it accepts GET/HEAD and rejects mutation attempts.src/adapters/foundry-api.ts:5-76
CockpitReact fetches /api/foundry, passes a successful snapshot to the cockpit, and exposes an unavailable state rather than substituting another source.src/main.tsx:1-17; src/App.tsx:21-79,104-144
flowchart TD
  L["Extension-owned generated ledger"] --> E["/loom snapshot exporter"]
  E --> S["Sanitized snapshot export"]
  S --> V["Strict root snapshot reader"]
  V --> A["Shared read-only API"]
  A --> C["React cockpit"]
  C -. "shows next legal operation only" .-> H["Live human OMP action"]

The dashed edge is navigation, not browser control. The cockpit renders the exported next operation and says it cannot advance the controller; candidate choice remains in the live human command surface: src/app/foundry-cockpit.tsx:793-825.

The same API handler is used by Vite development/preview middleware and the separately coded Node host: src/adapters/vite-iconloom-api.ts:12-45; src/adapters/node-server.ts:53-72. The Node host source serves only contained regular files from the built client directory and returns an error for missing paths rather than inventing an SPA fallback: src/adapters/node-server.ts:74-93,115-139. Its package build/start wiring is present in source, but this page makes no live-host claim: package.json:10-16; src/adapters/serve.ts:4-17.

Trust boundary

  • The extension is the only layer in this map that reads generated run state. The root adapter reads the sanitized export path, not the generated ledger: src/adapters/iconloom-ledger.ts:5-30.
  • The exporter rejects forbidden capability, raw-vector, and source-path fields before output; the root parser then requires the exact snapshot shape, validates counts, hashes, authority literals, budget relationships, and the legal next-operation form: iconomatix-extracted/iconomix/iconloom-1.0.0/iconloom-1.0.0/src/core/snapshot.ts:145-212; src/adapters/iconloom-ledger.ts:32-119.
  • If that export is absent or invalid, the API returns the trusted-export-unavailable response; the UI explicitly refuses cached, direct-ledger, or placeholder substitution: src/adapters/foundry-api.ts:64-75; src/App.tsx:104-139.
  • FoundrySnapshot is the actual cross-boundary interface. It carries dated state, separate current/history counts, measured and inferred findings, frontier status, authority gates, readiness, budgets, stop reason, and next permitted operation: src/contracts/dashboard.ts:86-108.

Authority is not a score

The declared source order is host policy, project governance, generated runtime ledger, executable package, then the blueprint. The ledger is typed-operation-only and application access is forbidden: docs/blueprint.yaml:8-35. This is policy precedence, not an HTTP authorization shortcut.

The runtime read model makes the decision boundary literal: candidate decision, approval, and release are human_only; blocker override is none; models may not select: src/contracts/dashboard.ts:48-54; src/adapters/iconloom-ledger.ts:91-119. A mechanical frontier can therefore be displayed as eligibility without becoming a shortlist, approval, or release.

Design seam: durable core versus live automation

The blueprint is explicitly a foundation-level architecture contract: docs/blueprint.yaml:1-6. It assigns src/contracts, src/gates, src/search, src/evidence, src/decision, and src/release to a pure durable core with no model provider, user interface, or filesystem-adapter dependency: docs/blueprint.yaml:37-56.

Those directories do contain real deterministic functions. They are not, however, a running root controller. [INFERENCE] On the 2026-09-08 static source path, the wired application is snapshot reader → API → cockpit; the budget, DAG, frontier, evidence, recovery, checkpoint, and readiness functions have no invocation on that path: src/adapters/foundry-api.ts:45-76; src/App.tsx:25-79; src/gates/budget.ts:23-45; src/gates/dag.ts:14-28; src/search/frontier.ts:20-53; src/evidence/separation.ts:19-32; src/decision/recovery.ts:24-38; src/decision/checkpoint.ts:54-115; src/release/readiness.ts:43-69.

The blueprint’s named interfaces and full stage sequence describe the intended controller boundary, not evidence that a root worker, provider adapter, automated artistic decision, or release pipeline is currently connected: docs/blueprint.yaml:89-183,185-244. FoundrySnapshot is the exception: it is a live shared DTO across exporter, parser, API, and cockpit.