docs(playback): playback-qa-2 record measured zero-card pipeline blocker

This commit is contained in:
thePR0M3TH3AN committed 2026-10-20 11:59:28 -04:00
1 parent fa358eb4c1
commit 16cc80e1eb
3 files changed
+277 -2

No files matched your search

+2 -2
View File
@@ -3,8 +3,8 @@
"area": "playback-qa",
"status": "blocked",
"title": "Capture actual-app local core-flow/mobile baseline before UI changes",
"blockedOn": "Client6 exclusive full/browser gate; await dispatch explicit final browser grant after durable history release. Noninteractive runner prepared, syntax-check only.",
"blockedOn": "Dispatch grant/routing for narrow actual relay/filter/EOSE/ingest/render boundary measurement; app startup+crypto/media passed but unchanged 3-card wait still0.",
"addedOn": "2026-10-20",
"filedAt": "1bb3a4fc452969f060c09a286b72b8cd7ac4123e",
"notes": "BaselineINCOMPLETE and client6exclusivehold respected. Noninteractive ownrunner prepared,syntax-only;no browser/server/build/full since15:26:32 release. Interpreter15:36:55 identified missinglocalmediaendpoint;generated genuine VP8 64x64/2s1019B,ffprobe20frames,SHA256d911005a5bca7fb1f3e5aa2fbee701b6476c9baf93460264c2aa5105dd0b3c69 outsidefrozenapp. Own HEAD/GET/Range handler contract7/7inmemory,3 brokenvariants fail/restored7/7;no sockets. Futuregrantedrun realHTTPpreflight beforebrowser,all822apphashes+mediahash checked,unchangedrealBuffer/externaldeny/3card+UIassertions/loginfirstactualnav. Exactfixture/handler/preflight+updatedrunnerhash docs/testing/playback-qa-2-second-pass.md. Await explicitdispatchfinalbrowsergrant afterhistoryrelease;no product/vendor/config/test changes,no appdefectclaim."
"notes": "Latestsource-correctedactualrun15:55:01.326→15:55:18.667:realcanonicalcrypto,HEAD/GET/Range200/200/206,getApplicationReady completion andofficiallocalrelayAPI allPASS;3cards15s still0. No login/UI/other2viewports;noappdefectclaim. Browser/privateapp+relayCLOSED/RELEASE,depsremoved. Savedhealthlocal31848/unreachable[]/backoff{},noactuallocalWSframe/EOSEtrace;nextrootroute15:55:53 is measurementONLY,notnewfix. Cheapactualschemaprobe missing s invalid/addcanonical s valid,but actualconvertEventToVideo acceptsBOTH;gapnotproven0cardcause. ProposedpassiveWSREQ/EVENT/EOSE+warns/cache/DOMcounts,unchangedinputs/3cardguard/runtime/media/Buffer;awaitspecificdiagnosticgrant. Originaldrivererror/specfixesfullyrecorded;no product/test/full/build/newmirrors."
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

+275
View File
@@ -297,3 +297,278 @@ const bad=mediaResponse('GET','bytes=999999-',bytes);assert.equal(bad.status,416
const method=mediaResponse('POST',null,bytes);assert.equal(method.status,405);assert.equal(method.body,null);
console.log('local media fixture preflight7/7 pass (HEAD,GET,3ranges,416,405), no sockets');
```
## Final-grant attempt and authorized runner contract correction
Explicit dispatch grant15:44:58.082Z,START15:45:33 before launch.
Run15:45:39.511→15:45:46.059Z (6.548s),Chromium154.0.8037.97:actual local fixture wire
HEAD200/GET200(1019 genuine bytes)/Range206 all passed. Buffer mirror1hit,local404=0,pageerror=0,externalguardunchanged.
Stopped first readiness assertion;no3-card/login/UI actions executed. Screenshot:playback-qa-2-resumed-stop.png.
Avoidable scratch-contract error: runner asserted `(await nostrToolsReady).ok === true`. Actual source
`js/nostrToolsBootstrap.js` success returns `frozenCanonical` (toolkit),while failure returns `{ok:false,...}`.
This is **not a demonstrated app/toolkit defect**. Original exact failed source/report retained in own scratch
noninteractive-attempt-3.mjs/attempt-3-result.json;baseline remains incomplete. All owned resources closed15:45:46.059Z,
RELEASE/intervention sent15:46:53Z. No retries or false app-success claim.
Interpreter15:46:29 and dispatch15:47:12 explicitly authorized only this scratch specification correction and one
bounded rerun after cheap offline proof. Corrected equally stronger check requires:actual returned toolkit callable
getPublicKey/finalizeEvent/verifyEvent;identity with immutable canonical global;no mock flag;Node-signed seeded
event verifies;independent tampered event rejects;synthetic key derives expected pubkey;browser-produced signature
independently verifies with Node's real nostr-tools. No application/toolkit/crypto methods are replaced.
All3-card/UI assertions and genuine fixture/artifact/traffic pins remain unchanged.
Offline proof evaluated the genuine unchanged vendored bundle in a Node vm:callable APIs/sign/verify/tampered rejection/
pubkey match/independent Node verification6/6,exit0. Initial vm-preflight plumbing required a newline after the bundle
sourceMappingURL comment and creating challenge events in that vm's own realm;those probe setup errors were corrected
without library/app mutation. This proof does not qualify browser loader/global identity until actual run.
Prepared corrected runner SHA256731cc9073f3c6594fa2b77735cac34415f1f034729c2dc48dd3b5bf702592864,syntax-check0.
```yaml
test_integrity_note:
change_type: ["spec_correction"]
scope: "own scratch runner only; no registered test or product change"
scenarios:
- id: SCN-QA2-real-toolkit-readiness
given: "actual bootstrap resolves its frozen canonical toolkit, or an explicit failure"
when: "baseline checks readiness before real UI actions"
then: "require canonical real callable APIs and positive/negative synthetic cryptographic proofs"
observable_outcomes:
- "valid event verifies, tampered event rejects, actual generated signature independently verifies"
determinism_controls: ["fixed synthetic key/event; genuine vendored toolkit; no network or stubs"]
anti_cheat_rationale:
prevents: ["always-true verifier", "no-op signer", "mock toolkit mistaken for readiness"]
relaxation:
did_relax_any_assertion: true
if_true_explain_spec_basis: "Replaced invalid ok:true envelope assumption with source-defined actual toolkit contract and stronger crypto proofs; UI assertions unchanged."
```
## Corrected cryptographic readiness passed; zero-card setup failure
Dispatch15:47:12 approved corrected bounded rerun;START15:49:25 before launch.
Run15:49:29.399→15:49:48.277Z (18.878s),real local media wire200/200/206 passed,real canonical toolkit checks
all passed(including browser-produced signature independently verified). Next documented harness prerequisite
`waitForFeedItems(3,15000)` failed with0 cards. No login/navigation/modal/390/1280 checks executed.
Owned resources closed15:49:48.277Z;explicit RELEASE sent15:50:24Z. No app defect attribution or relaxed count/timeout.
Read-only source-backed setup gaps identified under dispatch15:50:54 route: `js/index.js:startApplication` assigns
`setApplication(application)` before awaiting `application.init()`/`application.start()`. Previous runner waited
for instance presence only;actual exported `getApplicationReady()` is the startup-completion boundary.
Also existing fixture explicitly reapplies `setTestRelays` after harness installation;runner relied only on initial
query/storage/install override. Install itself applies overrides,so absence of reapply is not claimed as sole cause.
Earlier seed-mode dev/live speculation was not supported by an observed filtering rule and is NOT attributed.
Cheap socket-free source ordering3/3 and genuine synthetic signature/filter match3/3 passed. Source subscription
filter kinds30078/#tvideo matches all3 inputs. This verifies fixture input/filter compatibility,not full-app hydration.
Routine authorized correction only awaits the real exported ready promise with15s bound and invokes existing
fixture relay API after readiness. Exact3-card count and15s card timer,UI assertions,artifact/fixture/Buffer pins
and external deny guard remain unchanged. Read-only failure diagnostics add actual relay health/feed count/body.
Source gap is proven;whether it caused the previous0 cards is not claimed without the next measured result.
Corrected prepared driver8fb7bad44a79bf4abfe9d7b4febdb64cc30dad30e78c2cd18dbb9da94c01f6dd,syntax0.
Saved zero-card result:
```json
{
"driver": "noninteractive bounded actions",
"started": "2026-10-20T15:49:29.399Z",
"mirrorHits": [
"https://cdn.jsdelivr.net/npm/[email protected]/+esm"
],
"blockedHttp": [
"https://esm.sh/@aws-sdk/[email protected]?bundle",
"https://cdn.jsdelivr.net/npm/[email protected]/+esm",
"https://esm.sh/[email protected]",
"https://esm.sh/[email protected]?target=es2022&exports=nip04",
"https://esm.sh/[email protected]/nip44?target=es2022",
"https://cdn.jsdelivr.net/npm/[email protected]/lib/nostr.bundle.min.js",
"https://cdn.jsdelivr.net/npm/[email protected]/lib/nostr.bundle.min.js",
"https://cdn.jsdelivr.net/npm/[email protected]/lib/nostr.bundle.min.js",
"https://cdn.jsdelivr.net/npm/[email protected]/lib/nostr.bundle.min.js",
"https://cdn.jsdelivr.net/npm/[email protected]/lib/nostr.bundle.min.js"
],
"blockedWs": [],
"failedLocal": [],
"pageErrors": [],
"consoleErrors": [
"Failed to load resource: net::ERR_BLOCKED_BY_CLIENT.Inspector",
"Failed to load resource: net::ERR_BLOCKED_BY_CLIENT.Inspector",
"Failed to load resource: net::ERR_BLOCKED_BY_CLIENT.Inspector",
"Failed to load resource: net::ERR_BLOCKED_BY_CLIENT.Inspector",
"Failed to load resource: net::ERR_BLOCKED_BY_CLIENT.Inspector",
"Failed to load resource: net::ERR_BLOCKED_BY_CLIENT.Inspector",
"Failed to load resource: net::ERR_BLOCKED_BY_CLIENT.Inspector",
"Failed to load resource: net::ERR_BLOCKED_BY_CLIENT.Inspector",
"Failed to load resource: net::ERR_BLOCKED_BY_CLIENT.Inspector",
"Failed to load resource: net::ERR_BLOCKED_BY_CLIENT.Inspector"
],
"actions": [
{
"name": "actual toolkit ready",
"at": "2026-10-20T15:49:32.995Z",
"result": {
"callable": true,
"canonicalIdentity": true,
"frozen": true,
"mockFlag": false,
"validSeed": true,
"tamperedRejected": true,
"pubkeyMatches": true,
"independentSignatureVerified": true
},
"ok": true
},
{
"name": "three synthetic relay cards hydrate",
"at": "2026-10-20T15:49:33.045Z",
"ok": false,
"error": "page.evaluate: Error: [testHarness] Timed out waiting for 3 feed items (found 0)\n at check (http://127.0.0.1:31847/js/testHarness.js:571:11)"
},
{
"screenshot": "playback-qa-2-resumed-stop.png"
}
],
"fixtureHttp": {
"head": 200,
"get": 200,
"range": 206,
"bytes": 1019,
"contentType": "video/webm"
},
"browserVersion": "154.0.8037.97",
"boot": "passed",
"baseline": "blocked-or-failed",
"failedStep": "three synthetic relay cards hydrate",
"failure": "page.evaluate: Error: [testHarness] Timed out waiting for 3 feed items (found 0)\n at check (http://127.0.0.1:31847/js/testHarness.js:571:11)",
"ended": "2026-10-20T15:49:48.277Z",
"resourcesClosed": true
}
```
## Startup-complete correction measured: still zero cards
Dispatch15:54:23 confirmed conditional route;START15:54:58 before browser.
Actual run15:55:01.326→15:55:18.667Z (17.341s) passed real toolkit cryptographic proofs,local media wire200/200/206,
and actual `getApplicationReady()` completion. Official existing `setTestRelays` returnedok and local31848.
Unchanged3-card15s wait still found0,so readiness correction is **not demonstrated as the cause/fix**.
Failure diagnostics:appPresent true,relayHealth.relays=[ws://127.0.0.1:31848],unreachable=[],backoff={},feedItems=[];
actual styled Trending page empty,version1834b6a9. These are configured health/cache observations,not proof of an
actual WS subscription or delivered EVENT/EOSE. That boundary was not traced in this run.
No login/nav/modal/remaining viewport action ran. No product defect is established. Resources closed15:55:18.667Z;
explicit RELEASE15:55:33Z. Screenshotplayback-qa-2-resumed-stop.png SHA256e065fd4216da5cefbc9bde4b5773a4bd3ac64e9aeb642996d936755482598fab.
Dispatch15:55:53 now routes narrow read-only boundary measurement,not more speculative corrections.
Interpreter15:55:45 identified missing canonical s tag. Cheap **actual source** validation confirms:
- validateEventStructure(videoPost,without s)→validfalse,Missing required tag for videoPost:s.
- Same real signed note plus[s,nostr:dTag]→validtrue.
- Actual convertEventToVideo returnsinvalidfalse for BOTH,so schema gap is real but not proven as feed failure cause.
No seed/runtime/assertion/browser change followed this probe. Both signatures and actual relayfilter match already passed.
The scratch seed differs from canonical existing fixture's s tag;this gap must remain explicit in fidelity claims.
Missing saved boundary evidence:actual localWS creation/REQfilters,relaymatching EVENT/EOSE traffic,then ingest and
render cachecounts. Proposed one diagnostic-only pass uses passive page websocket/frame listeners+warn/errors;
read-only rawEvents/allEvents/activeMap/appvideosMap counts and actualDOMcard selectors at first failure.
Original seed stays unchanged for measurement;no manual data injection,render invocation,health fakery,crypto stub,
new mirrors or timeout/count relaxation. Requires dispatch's explicit diagnostic grant before another browser.
Latest failed-run report:
```json
{
"driver": "noninteractive bounded actions",
"started": "2026-10-20T15:55:01.326Z",
"mirrorHits": [
"https://cdn.jsdelivr.net/npm/[email protected]/+esm"
],
"blockedHttp": [
"https://esm.sh/@aws-sdk/[email protected]?bundle",
"https://cdn.jsdelivr.net/npm/[email protected]/+esm",
"https://esm.sh/[email protected]",
"https://esm.sh/[email protected]?target=es2022&exports=nip04",
"https://esm.sh/[email protected]/nip44?target=es2022",
"https://cdn.jsdelivr.net/npm/[email protected]/lib/nostr.bundle.min.js",
"https://cdn.jsdelivr.net/npm/[email protected]/lib/nostr.bundle.min.js",
"https://cdn.jsdelivr.net/npm/[email protected]/lib/nostr.bundle.min.js",
"https://cdn.jsdelivr.net/npm/[email protected]/lib/nostr.bundle.min.js",
"https://cdn.jsdelivr.net/npm/[email protected]/lib/nostr.bundle.min.js"
],
"blockedWs": [],
"failedLocal": [],
"pageErrors": [],
"consoleErrors": [
"Failed to load resource: net::ERR_BLOCKED_BY_CLIENT.Inspector",
"Failed to load resource: net::ERR_BLOCKED_BY_CLIENT.Inspector",
"Failed to load resource: net::ERR_BLOCKED_BY_CLIENT.Inspector",
"Failed to load resource: net::ERR_BLOCKED_BY_CLIENT.Inspector",
"Failed to load resource: net::ERR_BLOCKED_BY_CLIENT.Inspector",
"Failed to load resource: net::ERR_BLOCKED_BY_CLIENT.Inspector",
"Failed to load resource: net::ERR_BLOCKED_BY_CLIENT.Inspector",
"Failed to load resource: net::ERR_BLOCKED_BY_CLIENT.Inspector",
"Failed to load resource: net::ERR_BLOCKED_BY_CLIENT.Inspector",
"Failed to load resource: net::ERR_BLOCKED_BY_CLIENT.Inspector"
],
"actions": [
{
"name": "actual toolkit ready",
"at": "2026-10-20T15:55:03.441Z",
"result": {
"callable": true,
"canonicalIdentity": true,
"frozen": true,
"mockFlag": false,
"validSeed": true,
"tamperedRejected": true,
"pubkeyMatches": true,
"independentSignatureVerified": true
},
"ok": true
},
{
"name": "actual application startup completes",
"at": "2026-10-20T15:55:03.484Z",
"result": {
"readyPromiseCompleted": true,
"relays": [
"ws://127.0.0.1:31848"
]
},
"ok": true
},
{
"name": "three synthetic relay cards hydrate",
"at": "2026-10-20T15:55:03.491Z",
"ok": false,
"error": "page.evaluate: Error: [testHarness] Timed out waiting for 3 feed items (found 0)\n at check (http://127.0.0.1:31847/js/testHarness.js:571:11)"
},
{
"screenshot": "playback-qa-2-resumed-stop.png"
}
],
"fixtureHttp": {
"head": 200,
"get": 200,
"range": 206,
"bytes": 1019,
"contentType": "video/webm"
},
"browserVersion": "154.0.8037.97",
"boot": "passed",
"baseline": "blocked-or-failed",
"failedStep": "three synthetic relay cards hydrate",
"failure": "page.evaluate: Error: [testHarness] Timed out waiting for 3 feed items (found 0)\n at check (http://127.0.0.1:31847/js/testHarness.js:571:11)",
"failureDiagnostics": {
"appPresent": true,
"relayHealth": {
"relays": [
"ws://127.0.0.1:31848"
],
"unreachable": [],
"backoff": {}
},
"feedItems": [],
"body": "Switch to dark theme\nTrending\n\nNo public videos available yet. Be the first to upload one!\n\nseed. zap. subscribe.\nv: 1834b6a9 \u2022 2026-10-20"
},
"ended": "2026-10-20T15:55:18.667Z",
"resourcesClosed": true
}
```