docs(playback): playback-qa-2 preserve demonstrated cold feed render gap

This commit is contained in:
thePR0M3TH3AN committed 2026-10-20 12:09:59 -04:00
1 parent 4a1d182653
commit 48ceb2805c
4 files changed
+173 -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": "Measured actual pipeline delivers3 video events+EOSE and ingest/appmaps3 but DOMcards0; dispatch routing for read-only filtering/visibility/render boundary, no defect attribution yet.",
"blockedOn": "Client7 routed cold-feed subscription refresh fix; await durable landing + rebuilt integrated artifact + dispatch browser clearance to finish original mobile/UI baseline.",
"addedOn": "2026-10-20",
"filedAt": "1bb3a4fc452969f060c09a286b72b8cd7ac4123e",
"notes": "Passive diagnostic16:00:32.126→16:00:50.999 onUNCHANGEDoriginal3seeds:localWSvideoREQ kinds30078/#tvideo/limit200,3EVENTids+EOSE;rawEvents/allEvents/activeMap/appVideoMapall3,initializedtrue,pool1,sharedclient. DOMtestidcards0/data-video-id0,Trendingempty. Firstmissingboundaryafteringest/appmap→DOM;no render/filterdecisioncausalityyet. s-tag schemafailure REAL but notpreventingingest/converter;notblindlycorrected. Startup+realcrypto/genuinemedia200/200/206/822pins/denyguardPASS;10otherHTTPblocked,0local404/pageerror. NoUI/remainingviewports. Ownedbrowser/serverclosed+RELEASE,depsremoved;awaitnarrowrouting,no product/test/full/build/newmirrors/assertionchange. Evidence docs/testing/playback-qa-2-pipeline-evidence.md+actualscreenshot;actualUIbaselinestillrequired."
"notes": "Measured hard localreviewblocker16:06:34.174→16:06:51.787:transport3EVENT+EOSE/client+appmaps3/actualfiltered3,all3allow/serviceInclude=true,notprivate/nsfw/blocked;whitelistfalse/lockdownfalse/bodynotinert/docvisible/containerconnected. Passivecache0→subscriptionupdate3;viewcurrent0/rendered0/signature__EMPTY__/lastmetadata.reasoncache/DOM0after15s. SourceNostrService.loadVideos livecallback caches/emitswithoutonVideos usedbyfeedrefresh. Dispatch16:08:41 routedclient7method-onlyactualservicefix,QAproductread-only/browserHOLD. Originalschema s mismatch disclosed(notpreventingingest/eligibility),observerrelativeimportpageerrorseparatefromproduct;allinterventionsretained. Ownedresourcesreleased,noUIflowsorother2viewportsverified. Rendergaptrace/screenshot docs/testing/playback-qa-2-render-gap.md;finishdocs-onlyevidencequeue thenwaitfix/artifact/clearance,notbaselineclosure."
}
+4
View File
@@ -1,3 +1,7 @@
> Latest checkpoint16:08:41: [measured cold-feed render gap](playback-qa-2-render-gap.md) routed to client7.
> Actual app now boots and ingests/admits3 videos,but no cards render. Core/mobile baseline remains blocked;
> the source-checkout failure below is historical and no longer the active prerequisite.
# playback-qa-2: actual-app offline baseline blocked
Baseline HEAD: `ac99ae9a6bdbeae555a30f659b0720ae67e777e8`.
Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

+167
View File
@@ -0,0 +1,167 @@
# QA2: demonstrated cold-feed refresh gap (client7 routed)
Dispatch16:08:41 classified this as a hard local-review blocker and routed a method-only actual-service
regression/fix to client-reliability-7. QA is product-read-only and holds browser closed until durable fix+
refreshed built artifact. No forced refresh/render is an acceptable baseline substitute.
## Trigger and observation
Fresh actual app at1b3ef49c/build1834b6a9,empty browser cache,existing local mock relay preseeded3 synthetic
kind30078 video events. Hosted media is genuine local VP8 with real HEAD/GET/Range semantics;crypto uses genuine
canonical toolkit and local pinned Buffer mirror. Runtime artifact,external deny guard,inputs and3-card15s bound unchanged.
Granted targeted passive run16:06:34.174→16:06:51.787Z(17.613s),Chromium154.0.8037.97,360×800:
- Actual local relay video REQ returns3 EVENTs plus EOSE;client and app caches contain3.
- Actual getFilteredActiveVideos returns3;all3 shouldIncludeVideo and canAccess decisions aretrue.
- No private,NSFW,deleted,invalid,author-blocked or event-blacklisted flags. Whitelistfalse,lockdownfalse,hydratedtrue.
- Passive service chronology:initial videos:updated cache count0,then videos:cache size3 and videos:updated subscription count3.
- View remains currentVideos0,renderedIDs0,last signature__EMPTY__,metadata.reason=cache;actualDOM cards0 after15s.
- View container connected and matches activevideoList;bodynotinert,documentvisible. This rules out the measured
access/private/NSFW/blacklist and mount/visibility candidates for this reproduction.
[Actual empty styled Trending screenshot](playback-qa-2-render-diagnostic.png)
First missing observed notification/render boundary is after allowed subscription data enters the service/appmap.
Source:js/services/nostrService.js loadVideos applyAndNotify invokes onVideos for cache/optimistic paths;
live subscription callback caches/emits but never invokes that callback. js/app/feedCoordinator.js onVideos owns
refreshFeed/render;applicationBootstrap binds subscription:changed but not videos:updated for main-feed rendering.
This is the minimal owner/file boundary sent to dispatch,not a product edit by QA. Client7 owns reproduction/fix.
## Fidelity and interventions
Original diagnostic seed omitted canonical s tag. Actual schema rejects that omission,while actual converter and
service eligibility accept all3,and wire/ingest/allow decisions are measured. Thus this schema mismatch did not
prevent the observed ingestion/eligibility and must not be presented as the empty-render cause. The post-fix
baseline should retain the established canonical fixture shape;no input or assertion was silently changed here.
An early passive observer initScript had1 pageerror for relative module resolution on the initial document.
The observer subsequently DID attach on the actual app and captured the exact cache/subscription chronology below.
This is an instrumentation error,not a product error. Product methods were not wrapped/replaced;only event listeners
and read-only queries were added. No refresh/render invocation,manual card insertion,cache mutation,new seeds,
fake media events/health,extra mirror or product change. Existing earlier driver interventions remain preserved in
[second-pass history](playback-qa-2-second-pass.md).
All owned browser/context/app+relay servers closed16:06:51.787Z,explicit RELEASE16:07:45Z;temporary dependency
symlink removed. Preview3000 and other processes untouched. No login/navigation/Profile/Upload/remaining viewport
checks were executed. Full core/mobile baseline is blocked,not done. QA will resume original assertions only after
client7 durable landing,integrated preview rebuild and dispatch browser clearance.
## Exact captured decisions
```json
{
"started": "2026-10-20T16:06:34.174Z",
"ended": "2026-10-20T16:06:51.787Z",
"downstream": {
"activeVideos": 3,
"filteredVideos": 3,
"whitelistMode": false,
"lockdownActive": false,
"accessHydrated": true,
"decisions": [
{
"id": "d8214f91f51180561f0fac563d163c4d3a049f53ea6dd24d0a3c892f918777e1",
"isPrivate": false,
"isNsfw": false,
"deleted": false,
"invalid": false,
"accessAllowed": true,
"serviceInclude": true,
"authorBlocked": false,
"eventBlacklisted": false
},
{
"id": "1895c1e24ab449778121178f2301a2d5b9d296f6a76c2703900cd9141034058f",
"isPrivate": false,
"isNsfw": false,
"deleted": false,
"invalid": false,
"accessAllowed": true,
"serviceInclude": true,
"authorBlocked": false,
"eventBlacklisted": false
},
{
"id": "11939f8c1f39254c8ff49905e9ec8c78c19d362e7f131d99eb0f2bb5eecaee22",
"isPrivate": false,
"isNsfw": false,
"deleted": false,
"invalid": false,
"accessAllowed": true,
"serviceInclude": true,
"authorBlocked": false,
"eventBlacklisted": false
}
],
"viewExists": true,
"viewCurrentVideos": 0,
"viewRenderedIds": 0,
"viewLastSignature": "__EMPTY__",
"viewContainerConnected": true,
"viewContainerMatches": true,
"latestMetadata": {
"why": [],
"config": {
"timeWindow": null,
"actorFilters": [],
"tagFilters": [],
"sortOrder": "recent"
},
"reason": "cache",
"preserveOrder": true
},
"viewMetadata": {
"why": [],
"config": {
"timeWindow": null,
"actorFilters": [],
"tagFilters": [],
"sortOrder": "recent"
},
"reason": "cache",
"preserveOrder": true
},
"bodyInert": false,
"documentVisibility": "visible",
"passiveFeedEvents": [
{
"type": "observer-attached",
"at": 1792512395999
},
{
"type": "videos:updated",
"at": 1792512396468,
"reason": "cache",
"count": 0
},
{
"type": "videos:cache",
"at": 1792512396487,
"size": 3
},
{
"type": "videos:updated",
"at": 1792512396487,
"reason": "subscription",
"count": 3
}
]
},
"fixtureHttp": {
"head": 200,
"get": 200,
"range": 206,
"bytes": 1019,
"contentType": "video/webm"
},
"pageErrors": [
"Failed to resolve module specifier '/js/applicationContext.js'"
],
"resourcesClosed": true
}
```
Diagnostic source SHA2567867eaced118cad69ae9f5e5dd0054149d71b8c892772a5a75fda2225d8b2715;
full report retained at own scratch render-result.json. Original822file runtime manifest remains
662fa755e3cde021058f5bf9a5bd2825698bad064ab80472a5ba70e651d764b1.
No actual WebTorrent/live peer/provider/signer/production/release qualification is implied.