mirror of
https://github.com/bitsocialnet/5chan.git
synced 2026-08-03 07:41:04 +02:00
21 KiB
21 KiB
Progress Log
Append one entry per session.
2026-03-30 15:07
- Item: F001
- Summary: Built a production-path benchmark harness for real thread replies, fixed multiple estimator mismatches, and collected final desktop/mobile
domvsitem-sizemeasurements. - Files:
src/components/post-desktop/post-desktop.tsx,src/components/post-mobile/post-mobile.tsx,src/e2e/pretext-benchmark-harness.tsx,src/hooks/use-reply-height-estimates.ts,src/lib/utils/pretext-height-estimates.ts,src/views/post/post.tsx - Verification:
./scripts/agent-init.sh --smoke,corepack yarn build,corepack yarn lint,corepack yarn type-check,corepack yarn doctor,corepack yarn test --run src/lib/utils/__tests__/pretext-height-estimates.test.ts src/components/__tests__/post-community-address-compat.test.tsx, Playwright benchmark runs on desktop and mobile fordom,estimates, anditem-size - Blockers: Reply virtualization now reduces DOM measurement reads substantially, but the user-visible performance gain is only modest on desktop and still not accurate enough to call mobile safe by default.
- Next: Start F002 by wiring a benchmarkable board-feed path and compare
domvs Pretext sizing on feed cards rather than thread replies.
2026-03-30 16:00
- Item: F002
- Summary: Added a board-feed benchmark surface, calibrated feed-card estimates from sampled DOM error, and wired the real board Virtuoso behind
pretextFeed=item-sizewith hash-router query parsing support. - Files:
src/components/post-desktop/post-desktop.tsx,src/components/post-mobile/post-mobile.tsx,src/e2e/pretext-benchmark-harness.tsx,src/hooks/use-reply-height-estimates.ts,src/lib/utils/__tests__/pretext-height-estimates.test.ts,src/lib/utils/pretext-height-estimates.ts,src/views/board/board.tsx,src/views/post/post.tsx - Verification:
corepack yarn type-check,corepack yarn lint,corepack yarn build,corepack yarn doctor,corepack yarn test --run src/lib/utils/__tests__/pretext-height-estimates.test.ts src/components/__tests__/post-community-address-compat.test.tsx, Playwright board benchmark runs on desktop/mobile fordom,estimates, anditem-size, real-route smoke test on#/mu?pretextFeed=item-size - Blockers: The synthetic board benchmark is now clearly better than the reply path, but the live
/muroute only loaded about 15 cards in this dev environment, so the production-route perf comparison is still too small and noisy to justify default-on rollout. - Next: Continue F004 by profiling larger live board feeds with
pretextFeed=item-sizeand decide whether board feed can ship default-on, mobile-first, or stay flag-gated while catalog/reply work continues.
2026-03-30 17:08
- Item: F001, F003, F004
- Summary: Finished catalog row sizing, removed catalog matched-filter render-time store writes, calibrated thread-reply estimates for the real Virtuoso path, extended the benchmark harness to cover catalog, and flipped board/catalog/reply virtualization defaults to
item-size. - Files:
docs/agent-runs/pretext-feed-sizing/feature-list.json,src/components/catalog-row/__tests__/catalog-row.test.tsx,src/components/catalog-row/catalog-row.tsx,src/e2e/pretext-benchmark-harness.tsx,src/hooks/use-reply-height-estimates.ts,src/lib/utils/__tests__/pretext-height-estimates.test.ts,src/lib/utils/pretext-height-estimates.ts,src/views/board/board.tsx,src/views/catalog/__tests__/catalog.test.tsx,src/views/catalog/catalog.tsx - Verification:
corepack yarn type-check,corepack yarn test --run,corepack yarn build,corepack yarn lint(existing warnings only),corepack yarn doctor(baseline86/100),corepack yarn knip, Playwright benchmark matrices for board/catalog/replies on desktop and mobile, live-route smoke checks on#/mu,#/mu/catalog, and#/mu/thread/QmWSMcz1TirxAcVJ9qKr8jygttVbXZ3bZ9mMpZyek5iu3n - Blockers: Live-route perf deltas remain hard to observe in this dev environment because feeds are shallow and RPC noise is high, but the production-path benchmark harness now shows clear wins on all three surfaces and the real routes render correctly with the new defaults.
- Next: Keep the URL overrides (
?pretextFeed=off,?pretextCatalog=off,?pretextReplies=off) available for rollback while gathering post-merge feedback on deeper live boards and threads.
2026-03-30 18:10
- Item: F002, F004
- Summary: Reproduced the user's
/allboard-feed regression against cached live data from a copied Helium Chromium profile, identified that reply-preview cards were massively overestimated in the strict boarditem-sizepath, and switched the board rollout to a hybrid strategy that only keeps cached Pretext heights on simple cards without preview replies. - Files:
src/components/__tests__/post-community-address-compat.test.tsx,src/components/post-desktop/post-desktop.tsx,src/components/post-mobile/post-mobile.tsx,src/lib/utils/pretext-height-estimates.ts - Verification:
corepack yarn test --run,corepack yarn build,corepack yarn lint(existing warnings only),corepack yarn type-check,corepack yarn doctor(baseline86/100), Helium-profile Playwright probes on#/bizand#/allfor master vs worktree plus desktop/mobile geometry checks on the worktree - Blockers: Catalog remains the only clearly dramatic live win. Board feeds are now layout-safe and at least slightly smoother, but the hybrid fallback means the board path is a correctness-first improvement rather than a large DOM-read reduction.
- Next: Keep catalog and replies on the current Pretext default path, and continue iterating on a lower-error preview-reply estimator if we want a bigger board-feed win than the new hybrid mode provides.
2026-03-30 19:10
- Item: F001, F002, F004
- Summary: Removed the board-feed fallback again, separated preview-reply sizing from thread-reply sizing, preserved real line breaks in Pretext input, recalibrated desktop thread replies, compressed the
itemSizelookup path, and reran deterministic desktop/mobile benchmark matrices. The board surface is now strict Pretext again with close geometry, desktop replies are materially better, and mobile replies remain the last blocker. - Files:
docs/agent-runs/pretext-feed-sizing/feature-list.json,src/components/__tests__/post-community-address-compat.test.tsx,src/components/post-desktop/post-desktop.tsx,src/components/post-mobile/post-mobile.tsx,src/hooks/use-reply-height-estimates.ts,src/lib/utils/pretext-height-estimates.ts,src/views/board/board.tsx - Verification:
corepack yarn build,corepack yarn lint(existing warnings only),corepack yarn type-check,corepack yarn doctor(85/100, one point below the earlier baseline because the repo still carries existing React Doctor findings),corepack yarn test --run src/lib/utils/__tests__/pretext-height-estimates.test.ts src/components/__tests__/post-community-address-compat.test.tsx src/views/board/__tests__/board.test.tsx, deterministic Playwright benchmark runs on desktop and mobile for board/catalog/repliesdomvsitem-size - Blockers: Mobile thread replies still have a bad aggregate scroll-height estimate in the benchmark harness even after the latest calibration passes. Desktop board sizing is now accurate enough, but its deterministic benchmark is measurement-cheaper rather than obviously faster, so the strongest “clear win” story remains catalog, mobile board, and desktop replies.
- Next: Either keep iterating specifically on the mobile thread reply estimator or stop forcing
item-sizeon that one surface while shipping the surfaces that are already clearly better.
2026-03-31 15:45
- Item: F001, F004
- Summary: Re-profiled mobile thread replies, replaced the broken blanket
-350pxmobile thread calibration with a feature-based mobile thread model, and disabledcontent-visibility:autoon the virtualized reply roots only when the Pretextitem-sizepath is active. The key follow-up was a row-by-row mobile audit across the full 1200-reply benchmark: the sampleditem-sizereply tree sums to722411pxestimated vs726218pxactual, so the Pretext reply sizing is now within about0.5%of the rendered total even though the old DOM Virtuoso path still reports a much smaller overall scroll height. - Files:
docs/agent-runs/pretext-feed-sizing/feature-list.json,src/components/post-desktop/post-desktop.tsx,src/components/post-mobile/post-mobile.tsx,src/lib/utils/pretext-height-estimates.ts,src/views/post/post.module.css - Verification:
corepack yarn type-check,corepack yarn lint(existing warnings only),corepack yarn test --run src/lib/utils/__tests__/pretext-height-estimates.test.ts src/components/__tests__/post-community-address-compat.test.tsx src/views/board/__tests__/board.test.tsx,corepack yarn build,corepack yarn doctor(86/100, repo baseline),corepack yarn knip, Playwright production-path reply benchmarks on mobile and desktop plus row-level mobile geometry sampling - Blockers: Live deep-thread route verification is still limited by RPC/cached-feed availability in this dev environment, so the strongest proof remains the deterministic production-path harness rather than a real cached thread with thousands of replies.
- Next: If the user wants to ship, prepare the branch for commit/PR with the rollback query flags kept in place (
?pretextFeed=off,?pretextCatalog=off,?pretextReplies=off) and do one more live-route smoke pass when cached live data is available.
2026-04-02 16:48
- Item: F002, F004
- Summary: Tightened the desktop board-feed height model by matching the actual OP body render path more closely. The board estimator now adds the desktop blockquote padding, models the board-view truncated-comment notice, exposes an explicit multiboard board-label height hook for
/all-style feeds, and applies a small desktop preview-reply calibration instead of treating preview replies like full thread rows. That moved the board benchmark from “measurement-cheaper but visibly off” to near-parity runtime with much lower DOM reads. - Files:
docs/agent-runs/pretext-feed-sizing/feature-list.json,src/components/post-desktop/post-desktop.tsx,src/lib/utils/__tests__/pretext-height-estimates.test.ts,src/lib/utils/pretext-height-estimates.ts - Verification:
corepack yarn type-check,corepack yarn test --run src/lib/utils/__tests__/pretext-height-estimates.test.ts,corepack yarn build,corepack yarn lint(existing warnings only),corepack yarn doctor(86/100, repo baseline),corepack yarn test --run, Playwright desktop board benchmark athttp://127.0.0.1:1356/?e2e=pretext-benchmark&surface=board&variant=production&count=800&seed=42&mode=domandmode=item-size, fresh-route Playwright smoke on#/alland#/biz - Blockers: Fresh browser route smoke still cannot validate deep live
/allcontent because RPC/cached-feed availability is inconsistent in this environment, and./scripts/agent-init.sh --smokeis not yet worktree-aware because it waits for the canonicalhttps://5chan.localhostURL instead of the branch-scoped Portless route. - Next: Re-test cached live
/alland/bizagainst the current branch to confirm the board-feed geometry feels better in real browsing, then decide whether the board path is finally strong enough to merge along with catalog/replies.
2026-04-02 17:23
- Item: F002, F004
- Summary: Reprofiled live
/allwith the private Node RPC, found that desktop board cards were still underestimating almost exactly14pxper preview reply, removed that stale feed-level subtraction, and added a regression test so desktop feed cards now add the preview reply estimates directly. The live result changed materially: a 99-card/allsample went from39.7pxmean absolute error before the fix to7.1pxafter the fix, with the controlled board benchmark regaining a cleaneritem-sizewin. - Files:
docs/agent-runs/pretext-feed-sizing/feature-list.json,src/lib/utils/__tests__/pretext-height-estimates.test.ts,src/lib/utils/pretext-height-estimates.ts - Verification:
corepack yarn type-check,corepack yarn build,corepack yarn lint(existing warnings only),corepack yarn doctor(86/100, repo baseline),corepack yarn test --run src/lib/utils/__tests__/pretext-height-estimates.test.ts,corepack yarn test --run, live Playwright/allsampling onhttps://codex-feature-pretext-feed-sizing.5chan.localhost/#/all, live same-branch A/B on#/allvs#/all?pretextFeed=off, controlled Playwright board benchmark on?e2e=pretext-benchmark&surface=board&variant=production&count=800&seed=42&mode=domandmode=item-size - Blockers: Live
/allnow looks much healthier, but the route-level perf delta versuspretextFeed=offis still modest/noisy rather than a dramatic blowout, and the master-origin comparison is not trustworthy yet because the master session is not loading the same feed depth as the worktree even after the settings pass. - Next: Do another user-driven real-feed pass on
/alland/bizwith the new desktop board fix in place, then decide whether the remaining work should focus on squeezing a larger live-route win or on preparing the branch for merge with the current measurable improvement.
2026-04-02 17:27
- Item: F002, F004
- Summary: Confirmed that the remaining single-board feed glitching was not primarily a bad Pretext formula. Desktop board preview replies were still rendering under
content-visibility:autowith the120pxintrinsic placeholder while the feed card itself was relying on Pretext sizing. I disabled deferred layout for board preview replies when the feed estimate path is active, added dev-only preview reply audit attributes on desktop, and reran live/bizsampling. That change dropped/bizfrom52pxmean absolute feed-card error to6.7px. - Files:
docs/agent-runs/pretext-feed-sizing/feature-list.json,src/components/post-desktop/post-desktop.tsx,src/components/post-mobile/post-mobile.tsx - Verification:
corepack yarn type-check,corepack yarn build,corepack yarn lint(existing warnings only),corepack yarn doctor(86/100, repo baseline),corepack yarn test --run src/lib/utils/__tests__/pretext-height-estimates.test.ts,corepack yarn test --run, live Playwright/bizsampling before and after the deferred-layout fix onhttps://codex-feature-pretext-feed-sizing.5chan.localhost/#/biz - Blockers: The branch is now much closer to “merge-ready on real feeds,” but the strongest user-facing proof is still the live geometry/jank sampling plus the deterministic harness rather than a clean master-origin A/B, because the master session is still not consuming the same feed depth reliably.
- Next: Do one more human-eye browsing pass on
/all,/biz, and catalog with the current branch. If the route now feels consistently better than production, prepare the branch for merge with the rollback query flags retained.
2026-04-02 18:02
- Item: F002, F004
- Summary: Tracked the mobile
/allstutter to two separate regressions. First, the Pretext worktree was missingmastercommit99c0bbfac perf(board): reduce mobile reverse-scroll jank, soboard.tsxwas still snapshotting Virtuoso state on everyscrolltick andcomment-media.tsxwas double-running the GIF first-frame hook per card. After porting that, live mobile/allaudits still showed huge feed-card misses on preview-heavy media posts, so I reprofiled the live cards and found the mobile board preview calibration was stale: cards with five preview replies were underestimating by+371px/+367.9px. I replaced the old aggressive polynomial calibration with a bounded per-preview-count table, then skipped the full thread-reply estimate hook on board previews and memoized the expensive derived reply maps. That collapsed the live mobile/allmean absolute feed-card error from about135pxto about18.8pxand pulled the reverse-scroll probe much closer to master. - Files:
docs/agent-runs/pretext-feed-sizing/feature-list.json,src/components/comment-media/comment-media.tsx,src/components/post-desktop/post-desktop.tsx,src/components/post-mobile/post-mobile.tsx,src/hooks/use-reply-height-estimates.ts,src/lib/utils/__tests__/pretext-height-estimates.test.ts,src/lib/utils/pretext-height-estimates.ts,src/views/board/board.tsx - Verification:
corepack yarn type-check,corepack yarn test --run src/lib/utils/__tests__/pretext-height-estimates.test.ts src/components/__tests__/post-community-address-compat.test.tsx src/views/board/__tests__/board.test.tsx,corepack yarn build,corepack yarn lint(existing warnings only),corepack yarn doctor(86/100, repo baseline), live Playwright mobile/allgeometry audit onhttps://codex-feature-pretext-feed-sizing.5chan.localhost/#/all, live mobile reverse-scroll probe onhttps://codex-feature-pretext-feed-sizing.5chan.localhost/#/all, and matched master control probe onhttps://5chan.localhost/#/all - Blockers: Mobile
/allis no longer catastrophically wrong, but the worktree still trails the current master control in the dev reverse-scroll probe. Latest matched sample: worktreeseenCount=23,scrollHeight=18209,maxFrameMs=133.3,slowFrames16=11,slowFrames32=9; masterseenCount=23,scrollHeight=17735,maxFrameMs=108.3,slowFrames16=8,slowFrames32=6. - Next: Keep tuning the mobile board path until the reverse-scroll probe and human-eye feel are at least on par with master, likely by profiling rerender/commit churn on mobile
/allnow that the geometry bug is fixed.
2026-04-02 18:40
- Item: F002, F004
- Summary: Found the remaining mobile
/allboard regression in the board-level Virtuoso prop wiring rather than the Pretext formula. Inoffmode the worktree was still rendering<Virtuoso itemSize={undefined} />, which overrides React Virtuoso's internal default DOM measurer. That left mobile multiboard cards stuck on thedefaultItemHeightfallback (420px) instead of reconciling to real DOM sizes, which explained the baddata-known-sizevalues, wrong scroll height, and the remaining stutter. I changed board and catalog to only passitemSizewhen the explicititem-sizemode is active. - Files:
docs/agent-runs/pretext-feed-sizing/feature-list.json,src/views/board/board.tsx,src/views/catalog/catalog.tsx - Verification:
corepack yarn type-check,corepack yarn build,corepack yarn lint(existing warnings only),corepack yarn doctor(86/100, repo baseline),corepack yarn test --run src/views/board/__tests__/board.test.tsx src/lib/utils/__tests__/pretext-height-estimates.test.ts, fresh Playwright mobile/allload onhttps://codex-feature-pretext-feed-sizing.5chan.localhost/#/all, and persistent-session Playwright checks onhttps://codex-feature-pretext-feed-sizing.5chan.localhost/#/all - Blockers: The biggest correctness bug is fixed, but the live mobile
/allscroll probe in this noisy dev environment is still not a clean proof of parity versus master. The good signal is that board cards now reconcile correctly again: on the persistent RPC-backed session the first mobile/allcard went from staledata-known-size=420before the fix todata-known-size=413after the fix, matching the real measured height. - Next: Re-run human-eye A/B on mobile
/alland/bizagainst master. If the feel issue is gone, the branch is much closer to merge-ready; if not, the remaining work is runtime churn rather than height reconciliation.
2026-04-02 18:46
- Item: F002, F004
- Summary: Re-ran matched live mobile A/B probes against
masterafter the Virtuoso prop fix and confirmed the branch is no longer trailing on the board routes that mattered. On the persistent RPC-backed/allsessions, the worktree now renders the same visible card heights asmasterwhile posting slightly better reverse-scroll numbers in the probe (maxFrameMs 83.3vs99.1,slowFrames16 6vs7,slowFrames32 2vs3). On/biz, the branch keeps the Pretext path active (data-pretext-heightnodes present) while matching the same visible card heights and total scroll height asmaster; probe timing is now in the same range instead of the clear regression the user saw earlier. I also added an inline comment in board/catalog so theitemSize={undefined}pitfall is documented in code. - Files:
docs/agent-runs/pretext-feed-sizing/feature-list.json,src/views/board/board.tsx,src/views/catalog/catalog.tsx - Verification:
corepack yarn type-check,corepack yarn build,corepack yarn lint(existing warnings only),corepack yarn doctor(86/100, repo baseline),corepack yarn test --run, matched Playwright mobile A/B onhttps://codex-feature-pretext-feed-sizing.5chan.localhost/#/allvshttps://5chan.localhost/#/all, matched Playwright mobile A/B onhttps://codex-feature-pretext-feed-sizing.5chan.localhost/#/bizvshttps://5chan.localhost/#/biz, and catalog smoke on both origins at#/all/catalog - Blockers: None in the implementation itself. Remaining work before merge is review/commit/PR hygiene, plus the follow-up GitHub issue about future custom virtualization once this branch lands.
- Next: Prepare the branch for merge, keep
FeedCacheContainer, and open the deferred “Pretext unlocks custom virtualization” issue only after the Pretext rollout is merged intomaster.