docs: record client-reliability-6 real history wiring coverage audit

This commit is contained in:
thePR0M3TH3AN committed 2026-10-20 11:04:49 -04:00
1 parent bbf57388cb
commit 8356f27d48
6 files changed
+57 -2

No files matched your search

@@ -0,0 +1,3 @@
# Item6 audit
Atd88716e3 real profile remove local/synced controls pass;historical runtime no-op fails both actual-wiring diagnostics after cleanup but existing profile27 stillpass. Valuable missing regression,notcurrentproductfailure. Verified metadata merge tobbf57388/claimed;profile product/tests unchanged. Await test-only routing;notes only,no product/test commits. See test_logs/TEST_LOG_2026-10-20_15-04-00_client-reliability-6.md. QA full/normal slot respected.
@@ -0,0 +1,3 @@
# Item6
Classify historical no-op as a regression gap: actual wiring works,but existing fake-renderer profile suite passes27/27 even with historical override. Propose focused new real-wiring test and unique integrity,not product or app/history-service/cache edits. Exercise DOM event and backing persistence/recreation;fake only synced external IO and unrelated constructor dependencies. No live signer/relay or full app/reload claim.
+2
View File
@@ -37,6 +37,8 @@
## client-reliability
- 2026-10-20: item6 audit atd88716e3(profile paths unchanged throughbbf57388):real local profile remove/clear and fake-synced remove/recreation pass,0network;historical runtime no-op failsboth aftercleanup but existingprofile27/27 stillpasses;lowerlayers3files/8pass. Classify missing real-wiring regression,notcurrentproductfailure. Proposed test-only focused file+uniqueintegrity;await routing,QA expensive slot respected. Evidence test_logs/TEST_LOG_2026-10-20_15-04-00_client-reliability-6.md. No product/test changes or live signer/relay/fullapp proof.
- 2026-10-20: item5 done/closed after normal product landing0bd0b1c3(submission4bc52f9d,gate exit0,unstable ancestry exit0). Full427files/focused28/lifecycle18/six reverted mutants/lint11/build-artifact/Chromium+Firefox controlled smoke pass;obsolete mirror HEAD1→0. Browser+expensive slot released13:57UTC after10m57s initial wait. Dispatch landing/release event sent;preview refresh dispatch-owned. Closure metadata/final follow;no next item. Active abort/actual fallback/livepeers/CPU/fullStage3 unverified.
- 2026-10-20: item5 ready atmergedf2a392fa(product12f92732):full427/427 files60s-bound exit0,focused28/lifecycle18,six reverted mutants,lint11/build-artifact/native Chromium+Firefox smoke pass;obsolete mirror HEAD1→0,shared/rejoin/retry/hidden reveal pass,0 external/pageerrors. Full-slot wait10m57s recorded;browser released,expensive slot held through normal landing. Remaining queue/durable ancestry/close;active abort/real playback/CPU unverified.
@@ -1,9 +1,10 @@
{
"id": "client-reliability-6",
"area": "client-reliability",
"status": "open",
"status": "in-progress",
"title": "Audit real profile history removal wiring and historical no-op regression coverage",
"blockedOn": null,
"addedOn": "2026-10-20",
"filedAt": "7f99c0456931c917082d6a6680c79655221dcc82"
"filedAt": "7f99c0456931c917082d6a6680c79655221dcc82",
"evidence": "Audit atd88716e3,profile paths unchanged throughbbf57388:actual local+fake-synced wiring works;historical no-op fails2diagnostics but existingprofile27survives,lowerlayer8pass. Missing regression,propose test-only real-profile file;await routing. Evidence test_logs/TEST_LOG_2026-10-20_15-04-00_client-reliability-6.md"
}
@@ -0,0 +1,38 @@
# Item6 profile history wiring audit
## State and scope
- Audit executed atd88716e3c6351468a53bc7fdb84fe912c01697b5; actual profile/history product files unchanged from filedAt7f99c045. Subsequently merged verified assignment/QA metadata tobbf57388cb4724ff915c2090cf29506bce2c69f7 and claimed item6. `git diff --exit-code d88716e3..HEAD -- js/ui/profileModalController.js js/historyView.js js/ui/watchHistoryController.js js/watchHistoryService.js tests/profile-modal-controller.test.mjs`: exit0. No unnecessary reruns after unchanged product merge.
- Initial claim returned no item while normal assignment metadata was behind QA gate. Dispatch explicitly authorized continued read-only evidence before prose landing; claim succeeded once metadata landed. QA expensive slot respected: no full/browser/build/normal-gate launch.
- No product or committed test edits; unique evidence/scratch only. NIP51/33 and Known Issues reviewed. No private data, real signer/relay/cloud/wallet activity.
## Coverage inventory
- `rg -n 'createWatchHistoryRenderer|onHistoryReady' tests/profile-modal-controller.test.mjs tests/watch-history.test.mjs`: profile test imports actual factory but injects fake renderer at1386; its history test checks lazy initialization/pause/resume. No removal is invoked and captured config's remove callback is not exercised. Other actual renderer construction is feed-registration/service-fallback case atwatch-history.test.mjs2306, not profile removal.
- `rg -l 'profileHistory|profilePaneHistory|handleRemove\(|remove-history' tests --glob '*.mjs' --glob '*.ts'`: profile file plus two menu markup test files. E2E search profileNavHistory/profileHistoryClear/profilePaneHistory has no matches; standalone history-view E2E clear is not this profile config path.
- Existing lower-layer removal/controller/snapshot suites exercise local persistence, synced replace options, last-item clear and disabled behavior independently of profile renderer wiring. Their coverage does not reject the historical profile override (confirmed behaviorally below).
## Real wiring diagnostic
Scratch `/tmp/bitvid-client-reliability-6-history-audit.mjs`, finalSHA256c9f7cc21426d930d37ecf7a5edc4dfff5c99fdc6b2bcceb5b637959730f6c812. Actual ProfileModalController constructor/ensureProfileHistoryRenderer config→actual createWatchHistoryRenderer→actual profile DOM remove click→default remove selecting actual WatchHistoryController→actual watchHistoryService. Wrapper only observes returned handleRemove promise for deterministic event completion; it calls the original method. Controlled actor/fetchHistory boundary uses actual local service and fake synced publish/read backend; required unrelated profile services are empty shims. Actual component markup is used. No modal.load/show, application bootstrap, live signer/relay or full reload claim.
Commands: `env -u NODE_TEST_CONTEXT NODE_ENV=test node /tmp/bitvid-client-reliability-6-history-audit.mjs <mode> [--historical-noop]`.
- `local`: natural exit0. Seed2 real local queue items,click remove first; renderer/service retain only audit-keep. Fake publish calls0,errors0,forbidden fetch/WebSocket0. Actual profile Clear local history button empties real local queue; renderer recreation reads empty. Logs `/tmp/item6-local.log`.
- `synced`: natural exit0. Actual removal leaves audit-keep in renderer/fake backend; exactly2 fake publish-boundary calls (service snapshot plus controller list update),both replace:true/actorPubkey actor/reducedlist; second source remove-item. Renderer recreation retains only audit-keep. No-op calls0/errors0/forbidden network0. Logs `/tmp/item6-synced-final.log`. Fake backend substitutes signing/relay/publish serialization; no real encrypted-event or all-relay acceptance proof.
- Local and synced `--historical-noop`: each naturally exits1 AFTER destroy/reset/DOM cleanup,deepStrictEqual actual[audit-first,audit-keep] expected[audit-keep]. Historical runtime config override routes remove to callbacks.onHistoryReady returning null: no-op1,publish0;removed item reappears after renderer's real refresh and remains in backing state. Logs `/tmp/item6-noop-local.log`,`/tmp/item6-noop-synced.log`. Earlier versions of diagnostic preceded extra synced actor/source assertions; those assertions only execute in non-mutant synced branch and final synced run verifies them.
- Initial scratch fixture failed controller's required-services contract before any audited action; supplied unrelated required service objects and reran. That fixture setup error is not a product failure.
## Existing suite mutant escape
Preloader `/tmp/item6-historical-noop-preload.mjs`,SHA2561d4209ef87dc9732876d12411999a2b7a232561f2ec1ab46bacdcad1db0cc890 injects same historical no-op into actual ProfileModalController prototype entirely at runtime. No source/test file edits.
- `env -u NODE_TEST_CONTEXT NODE_ENV=test node --import ./tests/test-helpers/setup-localstorage.mjs tests/profile-modal-controller.test.mjs`: natural exit0,27pass/0fail/0cancelled/0skip; duration7635.26ms (`/tmp/item6-existing-profile-baseline.log`).
- Same command plus `--import /tmp/item6-historical-noop-preload.mjs`: natural exit0,27pass/0fail/0cancelled/0skip; duration7085.08ms (`/tmp/item6-existing-profile-mutant.log`). This deliberately reintroduced bug escapes all existing profile assertions.
- `env -u NODE_TEST_CONTEXT node scripts/run-unit-tests.mjs watch-history-local-remove watch-history-controller-local-remove watch-history-remove-snapshot`: natural exit0,3files/8scenarios. These are lower-layer controls, not profile wiring qualification (`/tmp/item6-existing-history-layers.log`).
## Classification and proposed scope
Missing high-value regression, not a demonstrated current product failure: real local and fake-synced wiring currently works, but original no-op bug survives current profile suite. Proposed test-only `tests/profile-history-removal-wiring.test.mjs` plus unique integrity/evidence, using actual profile/factory/DOM/default remove/controller/local service; controlled synced read/publish only. Acceptance: local remove persists, local clear/recreation empty, synced reducedlist replacement options and recreation correct; historical no-op must fail after deterministic cleanup. Preserve assertions and reject source-string-only/fake-renderer substitutes. No app/history-service/cache/product edits needed.
Sent concrete evidence/proposed test scope to dispatch; awaiting retained-test routing before any committed test changes. Unverified: real Nostr/signing/encryption/relay persistence, full application/modal lifecycle/reload, synced Clear-local behavior versus encrypted-list clearing, manual user confirmation and other TODO2 feed/view coverage (separate area). No full/browser/build/routing/landing readiness claim.
@@ -0,0 +1,8 @@
# Item6
- [x] Read current objective/rules,mergeverifiedunstable and claim aftermetadata visibility.
- [x] Audit full corpus for actual profile removal wiring.
- [x] Real local remove/clear and fake-synced replacement/recreation controls.
- [x] Historical no-op fails2diagnostics but existingprofile27/27 survives;lowerlayers8pass.
- [x] Send gap classification/test-only scope to dispatch.
- [ ] Dispatch routes retained tests or audit closure;no product/committed tests authorized yet.