Skip to content

fix(web): improve preview recording frame delivery - #10403

Merged
maria-rcks merged 2 commits into
pingdotgg:mainfrom
maria-rcks:t3code/optimize-preview-recording
Sep 6, 2026
Merged

fix(web): improve preview recording frame delivery#10403
maria-rcks merged 2 commits into
pingdotgg:mainfrom
maria-rcks:t3code/optimize-preview-recording

Conversation

@maria-rcks

@maria-rcks maria-rcks commented Sep 6, 2026

Copy link
Copy Markdown
Collaborator

preview recordings can lose motion frames when the browser selects av1 at its default bitrate. prefer h.264 with compatible fallbacks, request the selected fps explicitly, and scale the requested bitrate with captured pixels and frames (0.05 bits/pixel/frame, bounded to 2.5–50 mbps). stop media tracks once the encoder has flushed, before allocating the output buffer and saving the file, so native capture does not continue during that work.

verified 34 focused recording/scope tests, scoped lint, and the web typecheck. a repeated 1920×1080 encoder stress benchmark compared the final 6.22 mbps request against a 24.88 mbps reference using the same dense moving pattern for four seconds, reversing run order on the repeat:

four-second recording 24.88 mbps reference final 6.22 mbps request
encoded frames, two runs 229 / 235 236 / 234
delivered frames per second 57.25–58.75 58.5–59.0
file size 19.52 / 20.31 mb 6.29 / 6.27 mb
moving-pattern psnr, first run 28.03 db 27.37 db

this reduces encoded data to buffer, copy, save, and upload by 68–69% against the high-bitrate reference, with similar frame delivery and a small measured detail loss. total process cpu and peak rss were not measured; bitrate requests are advisory. the earlier upstream av1 baseline delivered 47.8–55.0 fps in two six-second runs of the dense pattern, so final frame delivery remains improved over that baseline, though file size remains larger than av1.

the benchmark uses canvas capture and real browser encoders in the attached mac preview, with native recording active in both cases to keep the background tab unthrottled. the current source's encoder factory was evaluated in that browser and selected h.264 at 6,220,800 bps. the installed desktop client has not been rebuilt, so the changed native recording interaction remains unverified. the uploaded original output decoded locally and played through from its uploaded url at 1920×1080 with 236 frames.

the image below is a reduced 320px / 10 fps motion preview. measurements use the original 1080p recording.

final: reduced motion preview of the lighter h.264 recording

model: gpt-5.6-sol. harness: codex.

@cursor

cursor Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Bugbot is paused — on-demand spend limit reached

Bugbot uses usage-based billing for this team and has hit its on-demand spend limit.

A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:S 10-29 changed lines (additions + deletions). labels Sep 6, 2026
@macroscopeapp

macroscopeapp Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — This production recording change alters default encoder selection, bitrate policy, capture frame-rate constraints, and stream-release timing for existing recording flows. The scope is focused and tested, but the product-default changes warrant human review.

Not approved because:

  • Monthly spending limit reached (workspace setting). Approvability relies on correctness review in order to determine eligibility

Review your spending limits in Billing settings. You can add or adjust custom eligibility rules. Learn more.

@maria-rcks
maria-rcks merged commit 3941c2a into pingdotgg:main Sep 6, 2026
24 checks passed
BarretoDiego pushed a commit to BarretoDiego/t3code that referenced this pull request Sep 7, 2026
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 7, 2026
## What's Changed
* fix(clients): show feedback results in composer banners by @juliusmarminge in pingdotgg/t3code#10398
* fix(server): stop Windows terminal polling from spiking CPU by @UtkarshUsername in pingdotgg/t3code#9476
* fix(web): onboarding installs agents without needing Node or npm by @t3dotgg in pingdotgg/t3code#10402
* fix(server): allow settling threads with unanswered async questions by @t3dotgg in pingdotgg/t3code#10400
* feat(ci): ship stable releases from the latest nightly commit by @t3dotgg in pingdotgg/t3code#10410
* feat(marketing): add a nightly channel to the download page by @t3dotgg in pingdotgg/t3code#10408
* fix(web): keep settings inputs focused during IME composition by @Lucenx9 in pingdotgg/t3code#10262
* fix(server): preserve Codex reset credits during usage updates by @yashranaway in pingdotgg/t3code#10308
* docs: link the repository security reporting policy by @yashranaway in pingdotgg/t3code#10303
* fix(web): only show auto balance errors after failed checks by @maria-rcks in pingdotgg/t3code#10407
* fix(web): improve preview recording frame delivery by @maria-rcks in pingdotgg/t3code#10403
* fix(server): preserve inline provider secrets on redacted saves by @maxwellyoung in pingdotgg/t3code#10054
* fix(web, mobile): replace Apple desktop machine labels by @extoci in pingdotgg/t3code#10396
* fix(web): hide browser when the right panel starts closing by @Neel2107 in pingdotgg/t3code#10385
* fix(web): keep settings section headings description-free by @maria-rcks in pingdotgg/t3code#10415
* fix(usage): read and redeem hub reset credits through CLIProxyAPI by @juliusmarminge in pingdotgg/t3code#10395
* fix(web): deduplicate expanded tool labels and keep errors expandable by @Yash-Singh1 in pingdotgg/t3code#10420
* fix(server): skip git status scans while the index is locked by @Gigioxx in pingdotgg/t3code#9845
* fix(mcp): allow text-only preview snapshots by @juliusmarminge in pingdotgg/t3code#10232
* fix(claude): name the expired login or usage limit instead of a generic API error by @vitalyiegorov in pingdotgg/t3code#10321
* feat(mobile): queue a message while its attachment is still uploading by @juliusmarminge in pingdotgg/t3code#10404
* feat(mobile): show when an existing thread has a message waiting in the outbox by @juliusmarminge in pingdotgg/t3code#10405
* fix(codex): accept misalignment policy errors on thread resume by @realbakari in pingdotgg/t3code#10373
* fix(server): skip disabled settlement lookups by @t3dotgg in pingdotgg/t3code#10424
* fix(server): run OpenCode CLI commands sequentially by @t3dotgg in pingdotgg/t3code#10427
* feat(web): name the drop action while dragging sidebar threads by @SunkenInTime in pingdotgg/t3code#10378
* perf(web): keep the sidebar responsive during bulk thread updates by @t3dotgg in pingdotgg/t3code#10413
* fix(web): onboarding wizard now supports light mode by @t3dotgg in pingdotgg/t3code#10432
* feat(threads): dismiss async questions without replying by @t3dotgg in pingdotgg/t3code#10431
* fix(web): stop collapsing the composer when it loses focus by @t3dotgg in pingdotgg/t3code#10437
* fix(server): keep interrupted threads resumable after restarts by @maria-rcks in pingdotgg/t3code#10421

## New Contributors
* @Neel2107 made their first contribution in pingdotgg/t3code#10385
* @realbakari made their first contribution in pingdotgg/t3code#10373

**Full Changelog**: pingdotgg/t3code@v0.0.39-nightly.20260906.1316...v0.0.39-nightly.20260907.1325

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.39-nightly.20260907.1325
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S 10-29 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant