diff --git a/docs/TODO.md b/docs/TODO.md index eef2c2ca..1c818845 100644 --- a/docs/TODO.md +++ b/docs/TODO.md @@ -2,6 +2,10 @@ ## dispatch +- 2026-10-22 client9 HEAD independently11modes(3fail/8controls pass),finalowner fetch/timer retained(no media slot leak);controller HEAD-only fix+strict contract/identity/ignoringabort regressions routed. HLS/torrent/RangeGET remain open;QA offline genuineBuffer rebuild prep, mobile/Amber staged. + +- 2026-10-22 storage3 independent7/3pass/4fail: buffer newer-version loss and service deleted snapshot/cache leakage routed separate small commits; coordinator stale render still open/read-only pending registered lifecycle evidence. QA3 app-less3pass not CI proof; genuine cached Buffer followup granted exclusive narrow browser. + - 2026-10-22 resumed six-priority campaign: Firefox QA3, active cancellation client9, tombstones storage3 now; playback dispatch4, Amber dispatch5, mobile dispatch6 staged with acceptance criteria. See docs/agents/CAMPAIGN-2026-10-22.md. All six remain unfinished; old idle/quiet-hours hold superseded for this foreground scope. Final integrated checks/build/preview and live/manual disclosure outstanding. - Next bounded item requested by interpreter2026-10-21T02:40:06Z under continuing owner instruction: existing client read-only currentHEAD active HEAD-request last-owner abort reproduction/shared/rejoin controls;no product/test edits before evidence. HLS/torrent separate. Quiet-hours22:00–08:00 hold for new starts/messages;route next foreground checkpoint at/after08:00 local without another permission loop. No scheduler created. diff --git a/docs/agents/CAMPAIGN-2026-10-22.md b/docs/agents/CAMPAIGN-2026-10-22.md index caa66817..055a269b 100644 --- a/docs/agents/CAMPAIGN-2026-10-22.md +++ b/docs/agents/CAMPAIGN-2026-10-22.md @@ -1,6 +1,6 @@ # Six-priority campaign — 2026-10-22 -Owner: "yeah lets get the fleet spun up and address all of these", relayed by interpreter at14:02:34Z. Routine YES14:03:29Z. Prior holds superseded only within this foreground scope. Baseline unstable fb54cea3. Team is dispatch plus three existing workers; windows alive, assignments sent after durable coordination landing. A sent assignment is not an acknowledgement. +Owner: "yeah lets get the fleet spun up and address all of these", relayed by interpreter at14:02:34Z. Routine YES14:03:29Z. Prior holds superseded only within this foreground scope. Baseline unstable fb54cea3. Team is dispatch plus three existing workers; windows alive. Coordination c6022f21 landed c5b678f7 (durable status/log/ancestry checked). All three assignments acknowledged at c5b678f7: storage14:08:34Z, QA14:08:41Z, client14:08:44Z; each reports safe fast-forward and claim. No browser/expensive process started at acknowledgement; QA retains initial narrow slot. No current tool blocker reported. | Priority | Accountable owner / item | Immediate action | Acceptance / boundary | |---|---|---|---| @@ -21,3 +21,9 @@ Owner: "yeah lets get the fleet spun up and address all of these", relayed by in 6. Verify required focused/lint/mutants and unchanged normal gates; land via queue, verify durable status + unstable ancestry before closing. Integrated build/artifact/local preview and final six-row status, honest live/manual blockers. No deploy/push/spend/production data/real-wallet/credential/live signer/cron authority. No retries, sleeps, force exits, weaker assertions or speculative fixes. No background monitoring claim. Read KNOWN_ISSUES before debugging; existing Firefox flakes and logout failure are baselines, not presumed causes of this CI failure. + +## 14:12UTC evidence/routing checkpoint + +QA released first browser14:11:17Z: original3 scenarios pass but app bootstrap failed because Buffer CDN was denied, so not CI reproduction. Next exclusive narrow Firefox diagnostic authorized only with pinned genuine cached Buffer and actual readiness, preserving assertions and isolated control; no broad/full/build. + +Storage3 dispatch-independent scratch on7369f1fe/runtime-equivalentc5b678f7:7scenarios/3pass/4fail/network0, naturalexit1/29.89ms. Service snapshot/persistent cache leaks original deleted version; old tombstone unconditionally removes newer live active version in buffer; overlapped coordinator older result renders deleted reference at renderVideoList boundary. Two smallest service/buffer fixes routed in separate commits with mutants/controls; coordinator remains open/read-only pending faithful registered lifecycle evidence. No DOM/production proof. diff --git a/docs/agents/prompts/client-reliability.md b/docs/agents/prompts/client-reliability.md index fbdc9af5..6a3cecf3 100644 --- a/docs/agents/prompts/client-reliability.md +++ b/docs/agents/prompts/client-reliability.md @@ -1,3 +1,11 @@ +## Implementation routing 2026-10-22 — client-reliability-9 HEAD only + +Dispatch independently ran11 scratch modes via dispatch imports at169d894f (runtime identicalc5b678f7):3 fail naturally(disposed/same-turn/later),8 pass(shared/cross/legacy/live-success/error/timeout/late-success/error),cancelled0. Final owner retains1HEAD/0abort/1timer5000ms/unsettled/original inflight; media slots0/queue0. Minimal implementation authorized ONLY js/ui/urlHealthController.js HEAD probe lifecycle cancellation hook/cleanup plus tests/url-health-lifecycle.test.mjs or unique HEAD lifecycle tests and strict integrity/spec/evidence notes. Existing observer/cache/app/HLS/torrent modules remain read-only. + +Explicit spec correction permitted: prior queued/media-only completion does not fulfil source-backed Stage3 active HEAD last-owner cleanup. Preserve failed baseline and existing live/shared/legacy controls; equally strict or stricter changed expectations with Test Integrity Note. Release final-owner HEAD by marking cancelled synchronously, abort transport, settle null promptly without waiting for ignored abort/timeout, remove timer/hook exactly once; no cache, stale badge, fallback media/mirror start or replacement deletion. Fresh same-turn and later owner must start fresh request, old success/error/timer/finalizer cannot affect it. Preserve live HEAD success/error/timeout fallback, shared/cross/ownerless legacy ownership, media-hook handoff and FIFO/queue bounds. Add transport ignoring abort, missing AbortController, cancellation-before-start/at-handoff, late callbacks and replacement controls where applicable. HEAD only, do not conflate Range GET task or HLS/torrent completion; measure those later separately. + +Focused regression + restored failing mutants + lint now, request serialized full/browser slot when ready, no expensive job or normal product submission without grant. QA has conditional next narrow Firefox slot. Normal local queue/gates/durable ancestry required. No retries/sleeps/force exits/relaxed expectations, external/signer/cloud/credential authority unchanged. + ## Current assignment 2026-10-22: client-reliability-9 — remaining active cancellation This supersedes the old item8/idle scope below. Read current dispatch campaign brief, PROGRAM/RULE-CHANGES/KNOWN_ISSUES and test integrity. All worktrees were clean at dispatch inspection; inspect your own status then fast-forward own branch to unstable if safe (never discard work); report exact SHA and ack next action. Claim item9. Start actual observer/controller active HEAD-request last-owner/shared/same-turn+later rejoin offline measurements. Use controlled fetch/abort, count settlement/slot/cache/mirrors/stale callbacks; retain live success/error/timeout/FIFO and replacement identity controls. HEAD first, HLS/torrent separately tracked, no wider completion claim. Source/scratch/unique evidence only; NO product or committed test changes until demonstrated defect and dispatch routing/spec note. Do not inherit previous item8 implementation permission for HEAD. Own future health files as roster, app/services/cache read-only. No full suite/build/browser/normal product submission yet; QA has initial expensive/browser slot. env -u NODE_TEST_CONTEXT for commands, no force exit/retries/sleeps. Send read/next action, reproduced result/blocker and READY for checks. After this slice, playback and Amber remain staged in campaign; await bounded routing, not optional self-selection. diff --git a/docs/agents/prompts/storage-cors.md b/docs/agents/prompts/storage-cors.md index 8527e956..5ec03f8f 100644 --- a/docs/agents/prompts/storage-cors.md +++ b/docs/agents/prompts/storage-cors.md @@ -1,3 +1,11 @@ +## Implementation routing 2026-10-22 — storage-cors-3 + +Dispatch independently reproduced all7 scratch scenarios using dispatch imports at7369f1fe (runtime diff0 vsc5b678f7):3pass/4fail, naturalexit1/29.89ms/network0. Temporary ownership ONLY js/nostr/videoEventBuffer.js and js/services/nostrService.js plus new uniquely named focused regression/integrity/evidence files. This supersedes investigation-only restriction for these two boundaries; existing client.js and app/feedCoordinator.js remain read-only. + +Separate commits: first buffer timestamp-safe deletion (recordTombstone already protects strictly newer active content; remove no valid newer version), then service snapshot/persistent eligibility + obsolete affected-record cleanup. Retain failed baseline and independently failing mutants for every new scenario. Do not invent root/address/author rules or broaden deletion across authors; use existing authoritative tombstone semantics and verified conversion path. Cover deletion-marker ID differing from original; late older tombstone against newer live; late older content; multiple versions/unrelated roots/authors; deleted/invalid persistent entries; empty-result persistence so deleted-only caches do not resurrect; warm/second-load/latest-consumer and stale-subscription controls. Preserve live cache/moderation/access/ordering and publication semantics. Report any preexisting identity weakness separately rather than opportunistic rewrite. + +Coordinator stale-refresh result remains OPEN: current scratch pauses actual feed engine decorator and calls actual coordinator, but is not full registered UI lifecycle proof. Gather faithful registered-feed/view/disposal overlap evidence only after first fixes; no coordinator/app edits yet. No tests/runner/helpers changes to bypass contract. If new test needs explicit registration, ask dispatch for narrow ownership. Run focused suites, failing restored mutants and lint; request serialized full gate before product submit; QA holds narrow Firefox browser slot. Normal gates/durable ancestry mandatory. No real signer/cloud/relay/deletion/credential operations. + ## Current assignment 2026-10-22: storage-cors-3 — feed/view tombstone stale-refresh Supersedes old idle/storage2 and deferred3 scope below. Read dispatch campaign brief, PROGRAM/RULE-CHANGES/KNOWN_ISSUES and docs/nips before Nostr investigation. Inspect own worktree and safely fast-forward clean branch to unstable; preserve any unexpected work; report SHA, claim item3, send read/next-action. Read actual tombstone/deletion/cache/view lifecycle; reproduce delete ingest followed by stale refresh/late older event/view switch with synthetic offline events/controlled IO. Check unrelated live/newer valid content and existing deletion semantics; do not invent new policy. Source read/scratch/unique evidence/backlog only; NO product/committed test edits until demonstrated defect and precise ownership routing. App/feed/services/Nostr shared modules remain read-only for now. No real signer/relay/cloud/credentials/delete; no browser/build/full suite/normal product submission yet, QA owns initial expensive/browser slot. Focused offline checks permitted, env -u NODE_TEST_CONTEXT. Report path and strict failed/control counts or already-fixed evidence, proposed smallest files/retained regression and remaining limits. No optional new storage work after this slice without campaign routing. diff --git a/fleet/GOAL.md b/fleet/GOAL.md index 3ef294ee..152cf0a3 100644 --- a/fleet/GOAL.md +++ b/fleet/GOAL.md @@ -50,4 +50,3 @@ Resume existing client worker for current-HEAD active URL-media cancellation rep > "yeah lets get the fleet spun up and address all of these" — owner, relayed by interpreter at 2026-10-22T14:02:34Z; not typed in dispatch. The relay identifies six priorities: Firefox deterministic CI failure; remaining active HEAD/HLS/torrent cancellation; playback reliability promises; feed/view tombstone stale-refresh; Amber sessions; mobile usability. This supersedes the prior idle/local-review and quiet-hours hold for this foreground campaign. Routine investigation, evidence-routed fixes, tests/builds and normal local unstable landing are approved. No push/deploy/spend/production data/real wallet/credential/live signer/scheduler authority. Track all six in docs/agents/CAMPAIGN-2026-10-22.md. Preserve worktrees, use three existing workers with disjoint scope, stage before fixes, serialize browser/full gates, keep app.js single-writer. Final integrated local build/preview and honest live/manual limits required. - diff --git a/fleet/LOG.md b/fleet/LOG.md index 75e78d00..771265c2 100644 --- a/fleet/LOG.md +++ b/fleet/LOG.md @@ -160,3 +160,10 @@ - Interpreter relayed owner "yeah lets get the fleet spun up and address all of these" at14:02:34Z and routine YES14:03:29Z; six priorities recorded in campaign brief/PROGRAM/GOAL, no restricted external authority. Existing windows alive; no new launches. - Inspected all6 worktrees: status0/clean, HEAD-only0 each; unstable fb54cea3, queue0. Client7/dispatch7/QA18/storage18 commits behind; main/lander current. Dispatch safely ff-only to unstable (initial sandbox Git metadata read-only, approved host retry exit0); workers synchronize own branches before work. - Initial assignments client9 HEAD-first cancellation, QA3 Firefox CI diagnosis, storage3 tombstone stale-refresh; source/scratch evidence only. QA initial exclusive narrow browser/expensive slot; focused offline others. Playback/Amber/mobile acceptance-scoped and staged, not dropped. Historical432 gate not rerun; no fresh product verification yet. +- Coordination c6022f21 durably landed c5b678f7; status/log/ancestry0. All3 explicit read/next-action ACKs consumed: storage14:08:34, QA14:08:41, client14:08:44UTC; all report safe ff/claim atc5b678f7. Actual fleet status4 alive/working/unread0 after consumption. No browser/full job at ACK; no diagnosed product defect or current blocker yet. + +## 2026-10-22 — Independent tombstone reproduction; Firefox fixture boundary + +- QA3 first controlled3/3 PASS excludes actual app bootstrap(Bufferdenied3); not CI repro/pass. Browserreleased14:11:17Z. Authorized pinned genuine cached Buffer scratch prep + one narrow app-ready Firefox/control diagnostic; no product/tests/config writes or broad suite. +- Storage3 independently run env -u NODE_TEST_CONTEXT node /tmp/bitvid-dispatch-tombstone-audit.mjs at7369f1fe(runtime JS/tests/config diff0 vsc5b678f7):7tests,3pass/4fail,0network, naturalexit1/29.89ms. Deleted original persists/emits, reload briefly emits it, oldtombstone deletes strictly newer active, older refresh renders deleted reference after newer result. Buffer/service minimal fixes routed as separate commits with tests/mutants; coordinator open/read-only pending full registered-lifecycle fidelity. No browser/DOM or real-event signature qualification. +- Client9 dispatch-independent11mode audit via /tmp/bitvid-dispatch-head-audit.mjs: disposed/same-turn/later exit1(3),shared/cross/legacy/live-success/error/timeout/late-success/error exit0(8),allcancelled0/naturalexit. Finalowner leavesHEAD1/abort0/timer1(5000ms)/unsettled/inflight;media slots0. Routed controller HEAD-only lifecycle cleanup+strict spec/integrity/regressions,including ignoring-abort/replacement/handoff controls;HLS/torrent/RangeGET remain separate/open. QA genuineartifact missing;offline exactcachedpackage reconstruction explicitly routed(no fetch/install scripts),before app-ready narrowbrowser. diff --git a/fleet/RULE-CHANGES.md b/fleet/RULE-CHANGES.md index 067576cb..8d0e8204 100644 --- a/fleet/RULE-CHANGES.md +++ b/fleet/RULE-CHANGES.md @@ -9,6 +9,10 @@ a landing rule changes. ## 2026-10-22 +- Client9 HEAD cancellation independently reproduced by dispatch11modes: disposed/same-turn/later fail3, shared/cross/legacy/live-success/error/timeout/late-success/error controls pass8, naturalexit/cancelled0. Finalowner retains HEAD1/abort0/timer1(5000ms)/unsettled inflight;media slots0 so no slot-leak claim. Route ONLY js/ui/urlHealthController.js HEAD lifecycle cancel/settle/timer-hook cleanup + focused lifecycle tests/unique strict integrity/spec notes. Explicit Stage3 contract extends immediate final-owner cleanup to active HEAD, preserving live/shared/legacy behavior. Abort transport AND settle via cancellation even if transport ignores abort; synchronous cancelled/rejoin identity safety; suppress obsolete fallback/cache/mirror/badge work. Preserve live error/timeout fallback, HEAD success/media handoff/FIFO, non-abort support. HEAD only; HLS/torrent and RangeGET separate. Focused/mutants/lint then request full/browser slot; QA conditional next narrow browser, no competing expensive gate. + +- Storage3 independently reproduced by dispatch on runtime-equivalent7369f1fe: actual subscription/buffer/service/feed-engine/coordinator scratch7=3pass/4fail, naturalexit1/29.89ms/network0. Route storage3 implementation in separate small commits: first ONLY js/nostr/videoEventBuffer.js timestamp-safe active deletion + unique focused tests, then ONLY js/services/nostrService.js snapshot/persistent-cache deleted/invalid eligibility and affected-record cleanup + unique integration tests after buffer controls. Existing client.js tombstone/address/author semantics preserved; no root-only widened deletion. Temporary ownership overrides roster exclusion only for those modules/tests. Coordinator stale-render remains reproduced/open but app/feedCoordinator.js READ-ONLY until faithful registered-feed/lifecycle evidence and separate routing. Focused+mutants+lint now; full/normal product queue/browser via explicit slot. QA owns next narrow Firefox bootstrap diagnostic using pinned genuine cached Buffer; first app-less3pass is not CI reproduction. No gate/expectation weakening. + - Owner six-priority resume relayed by interpreter14:02:34UTC and routine YES14:03:29UTC supersedes local-review/quiet-hours hold for this foreground campaign. Existing client9 active HEAD cancellation first (HLS/torrent separately tracked); QA3 Firefox deterministic CI run39536282396/job119013565277; storage3 tombstone stale-refresh. Investigation/source/scratch evidence only until reproduced defect and explicit implementation routing. QA owns next browser/expensive slot, must announce start/release; no full suite/normal product submission without slot. Client/storage focused offline checks only. Playback enhancements, Amber and mobile remain tracked/acceptance-scoped, not dropped. All worktrees inspected clean, no unlanded unique commits; each worker safely fast-forwards own branch before work, reports SHA. No app.js writer, new launch, test weakening, kit/scheduler or restricted external authority. See campaign brief; newer current assignments override archived prompt bodies. ## 2026-10-20 diff --git a/test_logs/TEST_LOG_2026-10-22_14-05-00_dispatch-startup.md b/test_logs/TEST_LOG_2026-10-22_14-05-00_dispatch-startup.md index 243578a3..9b7bd4a1 100644 --- a/test_logs/TEST_LOG_2026-10-22_14-05-00_dispatch-startup.md +++ b/test_logs/TEST_LOG_2026-10-22_14-05-00_dispatch-startup.md @@ -3,3 +3,6 @@ - git merge --ff-only unstable in dispatch: initial sandbox exit128(read-only ORIG_HEAD); same approved host command exit0, ff tofb54cea3. - fleet status4 windows alive,3 workers idle before assignments. mailbox read2 messages. Queue startup0/no drain. - No lint/unit/browser/build run; only administrative files changed. Prior432 gate not fresh evidence. +- Administrative validation:7/7 backlog JSON parse; initial git diff --check reported trailing blank fleet/GOAL.md (exit2), corrected in followup. No product checks implied. +- Coordination c6022f21 durably landed c5b678f7; land_status landed + git log unstable + merge-base ancestry exit0. +- Followup git diff --check exit0 after whitespace correction;7 backlog JSON valid. All3 worker ACKs report claim/fast-forward atc5b678f7, independent status4windows alive/working. No product verification claimed. diff --git a/test_logs/TEST_LOG_2026-10-22_14-13-00_dispatch-tombstone.md b/test_logs/TEST_LOG_2026-10-22_14-13-00_dispatch-tombstone.md new file mode 100644 index 00000000..56871269 --- /dev/null +++ b/test_logs/TEST_LOG_2026-10-22_14-13-00_dispatch-tombstone.md @@ -0,0 +1,5 @@ +- SHA7369f1feeb76eb03f7c6c45d6da52ab8353cc1c4 printed by git rev-parse HEAD; git diff c5b678f7 HEAD -- js tests config empty/runtime-equivalent. +- env -u NODE_TEST_CONTEXT node /tmp/bitvid-dispatch-tombstone-audit.mjs: exit1 naturally,7tests/3pass/4fail/cancelled0/skipped0,29.894975ms,fixture network attempts0. Script copied from worker scratch with only absolute imports redirected to dispatch. +- Actual client subscribeVideos/buffer/service/feed engine/coordinator; substituted transport, verifier, metadata and persistence IO only; synthetic unsigned events, localStorage real. +- Fails subscription emits/persists original deleted:true, optimistic reload emits deleted original, oldtombstone removes newer active, stale decorator resolves after deletion and renders deleted reference. Controls:live/unrelated,delete+older absence,strictly newer after tombstone pass. +- No browser DOM/full registered UI lifecycle, real signer/relay/cloud or production proof. No committed test/product edits by dispatch. Implementation routed buffer/service separately; coordinator remains open. diff --git a/test_logs/TEST_LOG_2026-10-22_14-15-00_dispatch-head.md b/test_logs/TEST_LOG_2026-10-22_14-15-00_dispatch-head.md new file mode 100644 index 00000000..40ab136a --- /dev/null +++ b/test_logs/TEST_LOG_2026-10-22_14-15-00_dispatch-head.md @@ -0,0 +1,5 @@ +- Dispatch runtime at169d894f (docs-only descendant7369f1fe; controller/observer/cache unchanged sincec5b678f7). +- Inspected /tmp/client9-head-repro.mjs; copied only absolute imports to dispatch /tmp/bitvid-dispatch-head-audit.mjs. Python subprocess env removesNODE_TEST_CONTEXT, invokes direct node once per11 named modes, captures exact exit/TAP/trace; process timeout20 not hit. Harness command exits0 because all results inspected, not because all scenarios pass. +- disposed/same-turn/later each naturalexit1/pass0/fail1/cancelled0. shared/cross/legacy/live-success/live-error/live-timeout/late-success/late-error each exit0/pass1/fail0/cancelled0. Full TAP /tmp/bitvid-dispatch-head-.tap; aggregate /tmp/bitvid-dispatch-head-results.json. +- After disposalHEAD1/abort0/timer1(5000ms)/unsettled/original inflight,media0/active0/queue0. Late completion already suppresses disposed cache/mirror/badge;shared/live fallback controls preserved. Controlled fetch/media/timers/JSDOM,actual observer/controller/cache entrypoints;no real network/CPU/transport byte or browser proof. +- Minimal controller HEAD-only fix routed with strict explicit active HEAD contract note; ignoring abort/replacement/media handoff additional controls required before READY. No product/test edits by dispatch. HLS/torrent/RangeGET remain open. diff --git a/todo/TODO_2026-10-22_14-05-00_dispatch-campaign.md b/todo/TODO_2026-10-22_14-05-00_dispatch-campaign.md index 07410e55..177366f9 100644 --- a/todo/TODO_2026-10-22_14-05-00_dispatch-campaign.md +++ b/todo/TODO_2026-10-22_14-05-00_dispatch-campaign.md @@ -1,6 +1,6 @@ - [x] Read actual two interpreter messages and current rules/goal/quality. - [x] Inspect6 worktrees and preserve work; safely fast-forward dispatch. - [x] Track all6 priorities with acceptance criteria and initial3 briefs. -- [ ] Land coordination and deliver assignments; obtain read/next-action acknowledgements. +- [x] Coordination c6022f21 landed c5b678f7; all3 read/next-action acknowledgements consumed at14:08UTC. - [ ] Independently confirm defects, route minimal fixes, serialize gates. - [ ] Finish staged playback/Amber/mobile and integrated local review/build/preview.