docs(research): pretable wrapped-text filter perf diagnostic#142
Merged
Conversation
Three-phase pattern (trace + analyze + memo) with conditional fix in same PR. Mirrors PR #124 / PR #133 with a Phase D escape hatch for single-cause low-risk fixes. Targets pretable's interaction scripts landing 1-2 ms over the 16 ms single-frame budget on Chromium S2/hypothesis (PR #134 finding). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Five-task plan: trace capture, manual analysis, memo, conditional fix, gates + PR. Auto-merge if memo-only; hold if a fix ships. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
…itted traces The trace was captured locally per the spec but force-added past .gitignore — the project's standing pattern is `status/traces/*.zip` is gitignored. Removing the binary; memo updated to note the trace is local-only and that Playwright's default action-trace format doesn't capture per-function timeline data anyway (the real blocker for this investigation, separately documented in the memo's "bench-harness gap" follow-up). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The trace path reference in the memo was pointing at a binary that was force-added past .gitignore and then removed in the prior commit. Update the reference to note the trace is local-only and the Playwright action-trace format wouldn't have given flame-graph data anyway. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Contributor
Vercel preview readyPreview: https://pretable-51qu1l8fn-cacheplane.vercel.app Updated automatically by the |
Merged
5 tasks
blove
added a commit
that referenced
this pull request
May 13, 2026
…h perf diagnostics) (#143) * docs(specs): bench-harness CDP tracing design Opt-in CDP-level tracing path for apps/bench/tests/bench.spec.ts. Unblocks future perf diagnostics that need flame-graph data (the wrapped-text filter investigation from PR #142 hit this exact wall). No matrix-runner integration; opt-in via PLAYWRIGHT_PERF_TRACE=1 env. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * docs(plans): bench-harness CDP tracing implementation plan Four-task plan: wire CDP-tracing branch behind PLAYWRIGHT_PERF_TRACE=1 env opt-in, manual verification, repo-memory entry, gates + PR. Auto-mergeable. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * feat(bench): opt-in CDP tracing in bench.spec.ts via PLAYWRIGHT_PERF_TRACE Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * docs(research): repo-memory entry — bench-harness CDP tracing Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * chore: prettier format spec + plan Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
createDomRenderSnapshotcallsestimateRowHeightover every row insnapshot.visibleRows(~500 rows post filter-text), and post-filter most of those rows are not in the WeakMap layout cache — driving ~500 wrap-awareprepareText+layoutPreparedTextpasses per interaction.rowHeights, mount-time cache warm, identity-keyed memo,useDeferredValue).What's in this PR
status/traces/2026-05-13-pretable-filter-text-perf.trace.zip— captured single-sample trace artifact (force-added past.gitignore'sstatus/traces/*.ziprule since the memo references it).docs/research/2026-05-13-pretable-wrapped-text-filter-perf-diagnostic.md— the memo.What's NOT in this PR
scripts/bench-matrix.mjsthreshold change. No public-API change.Test plan
pnpm -w typecheckcleanpnpm -w testclean (191 website tests + all package tests pass)pnpm -w lintcleanpnpm formatclean🤖 Generated with Claude Code