diff --git a/docs/TODO.md b/docs/TODO.md index 60655790..a60966a0 100644 --- a/docs/TODO.md +++ b/docs/TODO.md @@ -13,3 +13,5 @@ - 2026-10-19: client-reliability-1 assigned: reproduce/classify and fix profile-modal suite hang without weakening assertions. Initial evidence: three isolated 60s timeouts (one clean environment), full baseline stopped at file 220/425; read docs/agents/prompts/client-reliability.md and claim the item. Scope excludes app.js and unrelated subsystems. - 2026-10-19: client-reliability-1 fix committed at dbdac18d (test-only fixture, original assertions preserved; native focus contract and both mutants fail when broken). Isolated27/27 natural exit2.44s, lint11/11. Full60s/file run passed226/425 files including profile-modal; file227 tests/race/nostr-client-init-race.test.mjs timed out;198 later files untested. Await dispatch routing for this unowned blocker before normal landing/close. No product/browser/build qualification or landing claimed. See test_logs/TEST_LOG_2026-10-19_20-13-00_client-reliability-final.md. + +- 2026-10-19: client-reliability-1 and client-reliability-2 ready for normal landing at181eae95: profile27/27 and race1/1 natural exit; all425 unit files passed with60s/file bound; lint11/11. Four deliberately broken variants fail and are reverted. Dispatch routing unblocked the second item; no product Nostr/shared-runner changes. Remaining: durable normal queue landing, unstable verification, then backlog close. Browser/build and real IO unverified (test-only scope). See test_logs/TEST_LOG_2026-10-19_20-35-00_client-reliability-both.md. diff --git a/docs/agents/backlog/client-reliability-1.json b/docs/agents/backlog/client-reliability-1.json index 012f2bd6..607c321e 100644 --- a/docs/agents/backlog/client-reliability-1.json +++ b/docs/agents/backlog/client-reliability-1.json @@ -1,9 +1,9 @@ { "id": "client-reliability-1", "area": "client-reliability", - "status": "blocked", + "status": "in-progress", "title": "Diagnose and fix profile-modal suite hang without weakening assertions", - "blockedOn": "dispatch: unowned tests/race/nostr-client-init-race.test.mjs retains background relay work; full gate fails after 226/425 passed; fix dbdac18d passes isolated27/27 and lint11/11", + "blockedOn": null, "addedOn": "2026-10-19", "filedAt": "8b204687d2c0020c0fe97cedb3e9f8661a8d709a" } diff --git a/test_logs/TEST_LOG_2026-10-19_20-35-00_client-reliability-both.md b/test_logs/TEST_LOG_2026-10-19_20-35-00_client-reliability-both.md new file mode 100644 index 00000000..ee3c5ecd --- /dev/null +++ b/test_logs/TEST_LOG_2026-10-19_20-35-00_client-reliability-both.md @@ -0,0 +1,11 @@ +# Both reliability fixes: final validation at181eae95d9bb9626cfbca9904652731fe7cd49aa + +- `git merge unstable`: already up to date (contains dispatch routing and profile fix). +- `env -u NODE_TEST_CONTEXT NODE_ENV=test node --import ./tests/test-helpers/setup-localstorage.mjs --test-reporter=spec tests/race/nostr-client-init-race.test.mjs`: exit0 naturally; 1 passed/0 failed/cancelled/skipped, scenario10.32ms, total14.86ms. +- Same direct command for tests/profile-modal-controller.test.mjs: exit0 naturally;27 passed/0 failed/cancelled/skipped,2635.71ms. +- `npm run lint` unrestricted: exit0,11/11 stages. Sandbox git subprocess restrictions were the reason for unrestricted lint, not a code failure. +- `env -u NODE_TEST_CONTEXT UNIT_TEST_TIMEOUT_MS=60000 npm test`: exit0, all425/425 files completed,0 quarantined. Runner emits file outcomes, no aggregate scenario count. The previous profile file220 and race file227 both completed; all198 files beyond the prior blocker were reached. +- Profile mutants: product visibility exclusion removed ->1 failed; fixture hidden-attribute omission ->1 failed. Race mutants: historical early-return init ->1 failed; fixture connection failure ->1 failed. All exited1 and were reverted; no product Nostr files edited. See prior integrity/evidence entries. +- Scope: two test files plus notes/backlog only. No product changes, timeouts/retries/sleeps/forced exits/runner changes. No browser/build/real-signer/real-wallet/production or deploy verification claimed. +- Slowdown: baseline full-suite cutoffs hid the second resource leak; a scenario pass was insufficient to prove process completion. Improvement: a readable per-scenario reporter plus pending-resource diagnostics would distinguish style CPU cost from retained relay retries earlier. +- Normal landing queue submission follows; neither item is closed before durable landing plus unstable verification. diff --git a/todo/TODO_2026-10-19_20-35-00_client-reliability-both.md b/todo/TODO_2026-10-19_20-35-00_client-reliability-both.md new file mode 100644 index 00000000..9e2e5f31 --- /dev/null +++ b/todo/TODO_2026-10-19_20-35-00_client-reliability-both.md @@ -0,0 +1,5 @@ +- [x] client-reliability-1: preserve26 existing scenarios, add native style contract, mutation checks, profile27/27 natural exit. +- [x] client-reliability-2: deterministic pool barrier, successful IO fixture, subscription cleanup, preserve original assertions; race1/1 natural exit and both mutants fail. +- [x] Separate commits, merge unstable, lint11/11 and full425/425 file exits0 on181eae95. +- [ ] Unchanged normal queue gate and durable landing; verify unstable ancestry, then close both backlog items. +- Not verified: browser/build/application layout, real network/signers/wallets/production/deploy; test-only changes.