# Modular Runtime Phase 4 — Live Long-Build Canary 01

Date: 2026-08-01

Status: accepted live slice; Phase 4 gate remains open

Execution time: 1,107.973 seconds

## Accepted outcome

One unattended long-build controller used a real read-only Sol/high planner to create a durable two-milestone horizon, executed a real backend feature with Sol/high planning and Luna/xhigh implementation, lost its controller immediately after exact backend integration, closed and reopened SQLite, reconstructed the missing milestone checkpoint, and continued with only the newly ready UI module. The UI then passed Luna implementation, focused checks, trusted real-HTTP checks, two serialized 402×874 Chrome captures, fresh Sol/high visual acceptance, exact-lineage integration, and final milestone checkpointing.

The reopened controller made zero long-horizon planning calls and never redispatched the accepted backend node. Authoritative history contains exactly two integrated commits: one for `person-api`, followed by one for `caregiver-home`.

This accepts the real planner-and-resume slice. It does not accept all of Phase 4.

## Exact execution sequence

| Boundary | Durable result |
|---|---|
| Starting graph | Revision 1 at `8d65ab30ccc3295d80708b8e85e24352014910c5` |
| Sol horizon | One successful transport call; one `architecture_interfaces` milestone followed by one `running_product` milestone |
| Backend | `person-api` accepted in one attempt and integrated as `3b0657257ccc96818b96d3490f62be97fbc70480` |
| Forced interruption | Controller throws after backend graph/integration truth is durable but before the first milestone checkpoint |
| Reopen | SQLite is closed and reopened with a planner that throws if invoked |
| Resume | Zero planner calls; zero backend executor calls; first checkpoint reconstructed at graph revision 4 |
| UI | Only `caregiver-home` dispatches; it completes within its two-attempt ceiling |
| Visual proof | Pending and completed 402×874 states have no overflow, no console errors, loaded fonts, required visible structure, and accepted Sol review |
| Final integration | `caregiver-home` integrates as `855dd6da515d072ff2db4e40fe25909172a96c05` |
| Completion | Second checkpoint records graph revision 10; the following event returns `horizon_complete` |

## Sol planning result

The sealed horizon contains exactly the required near work:

1. `m1-person-summary-api` — implement and accept `person-api` from the immutable API contract;
2. `m2-caregiver-home` — build the running API-backed Robert home from the accepted API, product contract, and design foundation.

The plan pins:

- project request SHA-256 `80b7f8f3889d0028531eaecbf9af2cd5a20c55e00c6ba2da1c3cb883d67cfe26`;
- starting graph revision 1;
- starting integration head `8d65ab30ccc3295d80708b8e85e24352014910c5`;
- `helios-long-build-v1` contract lineage;
- `helios-foundation-v1` design lineage;
- read-only `gpt-5.6-sol` with high reasoning.

No graph node, version, recipe, resource mechanism, or implementation task was invented by the horizon planner.

## Resume proof

The first executor call list is exactly:

```text
person-api
```

The reopened executor call list is exactly:

```text
caregiver-home
```

The reopened horizon planner call count is zero. The number of stored backend attempts is unchanged across reopen. The integration queue contains, in order:

```text
person-api
caregiver-home
```

The final repository is clean and contains exactly two commits above the pinned base. All four final product commands pass independently:

```text
npm run test:api
npm run test:api-http
npm run test:home
npm run test:home-http
```

## Running-product evidence

| Evidence | Dimensions | SHA-256 | Result |
|---|---:|---|---|
| `long-build-home-402.png` | 402×874 | `9922037f60f22e4a5096b422af262a51d40f862b0ecdba867845fd164e146a9d` | accepted |
| `long-build-completed-402.png` | 402×874 | `e9e2fb2d626d56f96680eb4698cec27ae8f1b9775659f4b727f85bc8c5467424` | accepted |
| `fresh-visual-review.json` | exact two-image review | `d2a7bb5d7a8e4b4d29af5133076bf7ae3251932d3fd1b852e050b08a2c24b583` | accepted; zero blockers |

The integration-time fresh Sol review was required for the UI node to become accepted. A second fresh read-only Sol/high context then reviewed the exported exact PNG bytes in 12.389 seconds so the preserved audit does not depend on the disposable controller database. It found the white canvas, restrained sun accent, modern sans hierarchy, grounded outlines, one primary action, stable identity/navigation, and coherent completed state compliant with the Helios contract.

Evidence directory: [`evidence/MODULAR_RUNTIME_PHASE4_LONG_BUILD_CANARY_01`](./evidence/MODULAR_RUNTIME_PHASE4_LONG_BUILD_CANARY_01/)

Additional immutable hashes:

- `horizon.json`: `5113bee1ff1b78bbdcf014064befbd447c62a600945a6642314baa6e3f217e34`;
- `checkpoints.json`: `32f031e4995915c1b3fe268bb86da8939dcb38ea94b5ac2a81316b743685128d`;
- `run-summary.json`: `6609383569be4ff89340afffc2283870ede1893014a0ae3c89e353878332820d`.

## Current-revision regression

Commands:

```text
pnpm --filter @orchestrator/modular-builder-core test
pnpm --filter @orchestrator/modular-builder-core build
pnpm --filter @orchestrator/modular-builder-core check:source
NO_COLOR=1 RUN_LIVE_CODEX=1 PHASE4_LONG_BUILD_EVIDENCE_DIR=<absolute-evidence-path> pnpm --filter @orchestrator/modular-builder-core exec vitest run test/live-long-build-canary.test.ts --reporter=verbose
NO_COLOR=1 RUN_LIVE_CODEX=1 pnpm --filter @orchestrator/modular-builder-core exec vitest run test/live-phase4-evidence-review.test.ts --reporter=verbose
```

Results:

- 193 deterministic tests pass across 37 active suites;
- TypeScript passes with no diagnostics;
- 55 runtime source files average 171 logical lines, with p50 142 and p90 370;
- the largest runtime source file remains 492 logical lines;
- no runtime source file crosses the 500-line cohesion-review threshold;
- live long-build canary: 1/1 in 1,107.973 seconds;
- preserved exact-pixel Sol review: 1/1 in 12.389 seconds;
- no human checkpoint was used.

## Transport compatibility note

Before the accepted run, the provider rejected the initial response schema because `uniqueItems` is outside its strict structured-output subset. This occurred before a planning result, product worker, graph change, or evidence directory existed. Uniqueness was already enforced by deterministic parsing, so the redundant transport keyword was removed and a regression assertion now prevents its return. The successful current-revision run required one horizon-planner transport call.

## Exact boundary before the next slice

This canary proves real sequential dependency execution and exact controller resume across backend and UI modules. It does not prove compatible candidate batching, atomic multi-candidate promotion, graph compaction, bounded horizon renewal, warm-cache reuse, system-level canary review, or measured improvement against the same workload without those mechanisms.

The next smallest Phase 4 slice is compatible batch integration: prepare disjoint same-base candidates concurrently, validate the union against current lineage, promote them through one recoverable integration epoch, and prove that partial failure never leaves ambiguous authority. Only after that passes should graph compaction and rolling-horizon renewal be admitted.
