Skip to content

test(prism): measure recovery coalescing after live observation starts - #537

Closed
lukemaj wants to merge 2 commits into
feat/379-cross-machine-parityfrom
fix/379-recovery-coalescing
Closed

lukemaj wants to merge 2 commits into
feat/379-cross-machine-parityfrom
fix/379-recovery-coalescing

Conversation

@lukemaj

@lukemaj lukemaj commented Oct 19, 2026

Copy link
Copy Markdown
Contributor

What: The buffered-recovery regression waits for a real live-observer milestone before measuring one buffered event batch.
Why: Observer startup replay decoded the four persisted events as singleton chunks, so the assertion measured replay scheduling instead of live batch coalescing.
So what: This #379 component targets the integration branch and awaits both required independent reviews and current CI before integration.

Refs #379, especially the current component map. This repairs an inherited CI failure while preserving the current recovery implementation and the exact assertion that only the changed child and marker are recovered. It advances the Objective by restoring trustworthy recovery proof for remote Drafters.

The fixture writes a marker event through the native EventSink, awaits its actual recovery callback, clears startup observations, then publishes the existing four-event batch and awaits its final callback. The expected recipients are unchanged. No sleeps, timeout changes or production-source changes.

Proof

Node24.13.1 and pnpm11.10.0, scoped vp commands only:

  • Original unchanged test file: 1 failed / 2 passed, recovering the same child three times during startup replay. Temporary instrumentation recorded stream high-water202/afterSequence0 and singleton replay sequences199,200,201,202; instrumentation was removed.
  • Corrected fixture, full vp test run apps/server/src/prism/RecoveryReactor.test.ts: 3 passed, final restored run7.68s.
  • Faithful mutation control: removing production new Set coalescing while keeping the corrected fixture gives 1 failed / 2 skipped with the original duplicate-recipient assertion. Production source was restored byte-for-byte before the final3-pass run.
  • Scoped lint, format check and git diff --check: passed.

Local raw logs remain /tmp/chromeria-379-recovery-{before,highwater,live-green,no-coalescing-valid-red,restored-final,lint,final-format}.log. An earlier attempted mutation control restored source before module loading and therefore passed; it is invalid evidence, superseded by the frozen-source failing mutation above.

Current base is63c41e7b0ab32460dae0287b448a87c3ac9e8e51. Integration's separate compiler/fixture/policy repairs are in fix/379-main-compat. No complete-CI, whole-379 acceptance, independent-review or final-approval readiness is claimed here. This component will be aligned after compatibility lands before its final review/merge gate. No package version bump under repository policy. Website/SEO impact: none, test synchronization only.

Elon record

Requirements and who asked: User #379 requests repair of inherited red CI while preserving meaningful native recovery/lifecycle proof.
Deleted: A new production queue/coalescer, timing sleeps, timeout changes, weakened assertions, fabricated readiness and unrelated behavior changes.
Bottleneck: The test observed startup replay before native live-stream readiness, so batch boundaries were not the condition it claimed to test.
Checked myself: Reproduced the exact failure, traced real EventSink high-water/chunks, exercised a native callback milestone, proved the corrected assertion rejects removal of real coalescing, restored production source and passed all three focused cases plus scoped lint/format.

Authored by gpt-6.1-sol, medium effort, Codex harness in T3 Code.

@github-actions github-actions Bot added the vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. label Oct 19, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ℹ️ No successful main baseline artifact is available yet. This run establishes the initial measurement.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire — 4.9 KiB — 6.8 KiB ✅
Codex Thread snapshot wire — 3.8 KiB — 4.9 KiB ✅
Codex Live turn WebSocket wire — 1.2 KiB — 2.0 KiB ✅
Codex Live turn WebSocket decoded — 20.8 KiB — 29.3 KiB ✅
Codex Live turn messages — 1 — 8 ✅
Claude Total thread wire — 5.0 KiB — 6.8 KiB ✅
Claude Thread snapshot wire — 3.8 KiB — 4.9 KiB ✅
Claude Live turn WebSocket wire — 1.2 KiB — 2.0 KiB ✅
Claude Live turn WebSocket decoded — 21.2 KiB — 29.3 KiB ✅
Claude Live turn messages — 2 — 8 ✅

Baseline: unavailable · PR result: fcd3162 · Source CI: failure

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 108.5 KiB
  • Claude decoded thread snapshot: 108.8 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@lukemaj

lukemaj commented Oct 19, 2026

Copy link
Copy Markdown
Contributor Author

What: Move the existing537recovery fixture repair into lower compatibility539 before its next reviewed candidate; do not merge539with failedCI.
Why: Actual2bServer7 failed only the known unchanged RecoveryReactor test (1failed/1199passed/2skipped). Keeping its repair in a component scheduled after539 creates a lower-CI/upper-fix gate cycle.
So what: Resume the same539compatibility owner for the exact preserved test repair and necessary map539reference; obtain fresh complete independent reviews andCI on its new head. Keep537draft as an explicit absorption record, then close it as absorbed once539lands; do not claim537merged.

Requirements and who asked: User379 requires inheritedCI repair, no failing-gate waiver, one topology owner and reviewed component integration. The same test defect and complete repair were already owned in537.
Deleted: Merging539red, independently rebuilding recovery logic, production coalescer changes, sleeps/timeout tweaks, weakened duplicate assertion, treating old review success as new-head approval, and blind CI retries.
Bottleneck: One inherited live-observer test fixture belongs in the lower complete baseline repair, rather than a separately blocked upper component.
Checked myself: ActualActionsjob118146648689/run39277877062 completedFAILURE17:32Warsaw; full downloadedlog/tmp/chromeria-539-2b-server7-ci.log says exactlyRecoveryReactor.test.ts bufferedupdates assertion, duplicate thread:recovery three times,1failed1199passed2skipped. Read exact preserved537diff/headfcd3162f740ea5e766fe461d75e0d5d932f84310 and originalbefore/high-water/faithfulmutation/finalrestored evidence. Parent-authored test fix has no production change. CurrentPRGraphQLsummary incorrectly continuedshowingjobinprogress, so actualjob/log evidence controls. SourceServer1Teststep completedSUCCESS17:33/allstepscompleted butjobstatusstillinprogress; this isnotcalledwholejobgreen. WebcompletedSUCCESS17:32, no10mincancellationclaimed.

Finite new539writegrant: apps/server/src/prism/RecoveryReactor.test.ts exactly as preserved537blob; docs/map.md addPR539toexistingPrismroutingpart ratherthan537asmerged. No RecoveryReactor production source edit. Parent537branch/workspace remainsread-only and preserved, separate384worker hasnoPrismfileownership. Full3casetest,scopedlint/fmt/inventory/whitespacecurrentcandidate proof; originalred/validmutationsource equivalence mustremainexplicit. Mapmetadataonlyadapts539reference. Updatecurrent539body/handoff/hashmanifest andSTOPcleanafterordinaryforwardpush. Newwhole-componentreviewsSol+OpusMEDIUMandfreshCIrequired, noactualclientpassorotherproofwaived.

Previousfull539Sol6271047252/Opus6271180993verdicts remain true scoped historical reports at2b; thecurrentcandidatecannotmergebecause of thisCIgate and sourcewillchange. No finalPR/mainmerge/deploy/runningChromeriarestart/livedata. PR531branchuntouched. Parentretainsallsquashmerge/cascade decisions; repositorysupportsquashonly, nofast-forwardpushshortcut.

@lukemaj

lukemaj commented Oct 19, 2026

Copy link
Copy Markdown
Contributor Author

What: PR #537 is absorbed by internally merged #539; it closes unmerged rather than delivering a duplicate component.
Why: The exact recovery fixture belonged in lower539to remove its CI/fix dependency cycle, and both fresh independent reviews plus completecurrentCIpassedthatcandidatebeforeintegration.
So what: Parent closes this draft as superseded, verifies equivalent source in integration, and retires its obsolete task-only workspace/branch; parent379andallunfinishedchildacceptance remainopen.

Requirements and who asked: User379authorizes independently reviewed componentintegration, and the finiteabsorptiondecision5396271477541/5376271477920reservedthisclosureuntil539actuallylands.
Deleted: Duplicate recovery delivery, a false537mergedclaim, productioncoalescerchanges, approvaltransfer and stalequeuealertascurrentred.
Bottleneck: Lower539is nowinternallymerged; uppercomponentcascadeandremainingacceptance continue.
Checked myself: Live539stateMERGEDat18:40:46Warsaw, mergecommitb6d778b90409e337fcec9168c96b5c5330702055parent63c41e7b0ab32460dae0287b448a87c3ac9e8e51/tree79e196e151cc3f07a78a5835beaa22ea29eba314exactlymatchesreviewed472tree;537headfcd3162f740ea5e766fe461d75e0d5d932f84310clean/stopped, nativeRecoveryReactortestblobidentical2e2d14ca443d644d64a931cd96ad7d181f79d3d0innewintegration. Mapcorrectlycites539, not537.

Fullmergedcomponent #539 ; exactfreshreviewaggregate5396271811947; actualcurrentCIrun39282401928SUCCESSandlatestfingerprint39284355091SUCCESS. Retainedoriginalred/high-water/faithfulmutation/restoredproofandnewOpusmutationremaincanonicalreportinputs. Closing537doesnotclose379orclaimfinalmainreadiness. Its implementation/proofhistoryremainsintheclosedPRandmerged539; no uniqueproductionimplementationisdiscarded.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XS vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant