Speed up terminal menus and full transcript - #548
Draft
fazxes wants to merge 21 commits into
Draft
Conversation
Move skill discovery and transcript preparation off the input and render paths. Reuse indexed snapshots for menu queries and full transcript viewports. Read authentication presence without loading stored secrets. Add a ReleaseSafe percentile gate for the affected surfaces.
|
Security review: https://reviewer.vercel-security.com/vercel-labs/fx/pull/548 |
Resolve the Security.framework metadata lookup at runtime so Linux-hosted macOS cross-target builds do not require framework SDK paths.
Keep installed full transcript pages borrowed across frame commits, reject stale static revisions, and retain a valid live page while its replacement is building.
Keep the PGSO production manifest expectation synchronized with the opt-in terminal performance test exclusion.
Retain the last prepared page while a visible full transcript refreshes, without relaxing exact-revision requirements for an initial static open.
Retain the last prepared page for the duration of an open full-transcript session while newer content is prepared, preventing loading frames from replacing the reader's selection.
Fence skills and authentication actions on current background generations, protect catalog readers, and bound Ctrl-O preparation to reusable viewport windows. Strengthen performance and stress oracles so stale first paint cannot satisfy content-ready budgets.
Allow six temporary descriptors during the active resource phase while continuing to require an exact return to the pre-action descriptor baseline.
Permit legitimate multi-megabyte command descriptors in the immutable page handoff while keeping retained prepared windows capped. Wait for actual Ctrl-O readiness before asserting alternate-screen cancellation.
Use the bootstrap or host-provided skill catalog for WASM prompts instead of requiring a native HOME-backed filesystem refresh.
Fix background page ownership, auth presence, overlapping skill actions, pending Ctrl-O input, and replacement rendering. Expand percentile coverage to modal, catalog, manager, and hosted-terminal surfaces.
Queue both commands in one terminal transaction and keep the overlap flow as a focused always-on E2E regression.
Retain percentile and timeout evidence for direct tmux panes without treating capture-process scheduling as fx frame latency.
Defer restored child readers until their exact page is ready, retain the saved visual offset, and repaint only same-width prepared pages during replacement.
Use the 1 ms cadence for pending opens and scroll-window refills while live full-transcript refresh keeps the normal bounded event-loop cadence.
Freeze the installed full-transcript page while command output is active, but build one current page for an explicit pending open and refresh after completion.
fazxes
marked this pull request as ready for review
September 1, 2026 12:08
fazxes
marked this pull request as draft
September 1, 2026 13:19
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