diff --git a/context/CONTEXT_2026-10-22_20-54-00_client-reliability-9.md b/context/CONTEXT_2026-10-22_20-54-00_client-reliability-9.md new file mode 100644 index 00000000..6e093d04 --- /dev/null +++ b/context/CONTEXT_2026-10-22_20-54-00_client-reliability-9.md @@ -0,0 +1 @@ +Item9 HEAD slice done/landedf41ac656. Read-only HLS diagnostic atd04d501e actualobserver/controller/helper reproduces5cancellationfailures/7controls pass/0cancelled/naturalexit1. Pending manifest GET/body retains timer and promise after final-owner disposal; rejoin original,late cache. Need dispatch explicit controller+HLShelper ownership/contract before edits. No browser/full/build/product/retainedtest changes. diff --git a/docs/agents/backlog/client-reliability-9.json b/docs/agents/backlog/client-reliability-9.json index 2500c5d8..e378fc34 100644 --- a/docs/agents/backlog/client-reliability-9.json +++ b/docs/agents/backlog/client-reliability-9.json @@ -7,5 +7,5 @@ "addedOn": "2026-10-22", "filedAt": "fb54cea3a2ba99b4860421724a5050af6b97c293", "brief": "docs/agents/CAMPAIGN-2026-10-22.md", - "evidence": "HEAD-only fix e9c960ed/merged09f52bdd durably landed f41ac656 normalgateexit0,435discovered/435unique starts missingextra0,ancestry0;build/artifactexit0;controlled native Chromium+Firefox lifecycle PASS with synthetic loadeddata/publicdeny. Prior60focused/16mutants/lint11. Resources released. HLS/torrent/RangeGET separately OPEN; no wholeStage3 claim. test_logs/TEST_LOG_2026-10-22_20-52-00_client-reliability-9-browser.md" + "evidence": "HEAD-only fix e9c960ed/merged09f52bdd durably landed f41ac656 normalgateexit0,435discovered/435unique starts missingextra0,ancestry0;build/artifactexit0;controlled native Chromium+Firefox lifecycle PASS with synthetic loadeddata/publicdeny. Prior60focused/16mutants/lint11. Resources released. HLS/torrent/RangeGET separately OPEN; no wholeStage3 claim. test_logs/TEST_LOG_2026-10-22_20-52-00_client-reliability-9-browser.md HLS read-only atd04d501e:12modes/7controls pass/5cancellationfail/0cancelled/naturalexit1; GET/body finalowner retains timer/unsettled,rejoin old,latecache. Await explicit controller+HLShelper routing. test_logs/TEST_LOG_2026-10-22_20-54-00_client-reliability-9-hls-investigation.md" } diff --git a/test_logs/TEST_LOG_2026-10-22_20-54-00_client-reliability-9-hls-investigation.md b/test_logs/TEST_LOG_2026-10-22_20-54-00_client-reliability-9-hls-investigation.md new file mode 100644 index 00000000..49ba02ed --- /dev/null +++ b/test_logs/TEST_LOG_2026-10-22_20-54-00_client-reliability-9-hls-investigation.md @@ -0,0 +1,11 @@ +# Read-only HLS manifest cancellation measurement + +- Current HEAD `d04d501ee2a44271397c3af933a1655cf16e49af`, clean before investigation. HEAD slice already landedf41ac656/normal435files/buildartifact/native-controlled browser pass. Dispatch20:52:04Z authorized read-only HLS last-owner/shared/rejoin measurements only; no product or retained-test writes, browser/full/build. +- Actual callpath: `attachUrlHealthBadges` ownership -> `UrlHealthController.handleUrlHealthBadge` -> `probeUrlList` -> `probeUrl` -> HEAD completion -> `probeUrlWithVideoElement` HLS early branch -> `probeHlsManifest`. HLS branch precedes media ownership hook/queue; helper owns GET controller/timer through fetch and response.text but receives no lifecycle. Source locations controller323-349 and hlsPlayback383+ at this SHA. No media slot leak claim. +- Scratch `/tmp/client9-hls-repro.mjs` reuses real observer/controller/cache/HLS helper with JSDOM, controlled IntersectionObserver, deferred fetch/body boundaries, native AbortController, controlled timers; no public network, wall-clock sleep or force exit. Flush only drains continuations. All resources completed via controlled IO before strict failed assertions, then fixture cleanup restores globals. +- Initial9-mode fixture produced7fail/2pass: legacy badge was detached (update intentionally skips disconnected DOM), and automatic healthy mirror contaminated live-error/timeout controls. Retained `/tmp/client9-hls-initial-fixture.tap`; corrected scratch to append legacy badge and use single-source live controls. Corrected9 modes4fail/5pass. Expanded body/cross-controller controls, no product/assertion weakening. +- Final exact command `env -u NODE_TEST_CONTEXT -u UNIT_TEST_SHARD node /tmp/client9-hls-repro.mjs > /tmp/client9-hls-repro-final.tap 2>&1`: naturalexit1,12tests/7pass/5fail/0cancelled/167.265191ms suite. +- Five failures: final-owner disposal retains GET1/abort0/timer1/unsettled/original inflight; same-turn and later same-source owners rejoin original; late success caches healthy after disposal; pending response.text disposal also retains abort0/timer1/unsettled. Media slots0/queue0, disposed badge stayschecking; no stale badge write observed. +- Seven passing controls: shared live owner, cross-controller shared owner, ownerless legacy, live success, live error, live timeout, shared owner during pending body read. All controlled completions leave timers0/slots0/queue0. +- Proposed routing, NOT implemented: controller HLS lifecycle handoff plus hlsPlayback helper optional cancellation API across fetch/body; synchronous cancellation identity, prompt settlement despite ignored abort/missing controller, timer/hook cleanup and no obsolete cache/badge/mirror; preserve all live/shared/legacy/native-media behavior. Helper ownership/spec must be explicitly routed by dispatch before product/test edits. +- HLS playback engine/decoder, real transport bytes, browser HLS behavior, torrent, RangeGET and wholeStage3 remain unverified. No CPU benefit claim. Storage owns heavy slot; no heavy jobs launched. diff --git a/todo/TODO_2026-10-22_20-54-00_client-reliability-9.md b/todo/TODO_2026-10-22_20-54-00_client-reliability-9.md new file mode 100644 index 00000000..fd5ef854 --- /dev/null +++ b/todo/TODO_2026-10-22_20-54-00_client-reliability-9.md @@ -0,0 +1,5 @@ +- [x] HEAD slice durable,normal435files/buildartifact/controlled nativebrowser complete. +- [x] HLS source/callpath and strict offline12mode diagnostic5fail/7pass documented. +- [ ] Dispatch independent reproduction and explicit HLS helper ownership/spec routing. +- [ ] HLS implementation/retainedtests/verification only after routing. +- [ ] Torrent/RangeGET and broaderStage3 separately open.