Repository navigation
fix(browser): keep background QA usable and restore saved handoffs - #325
Conversation
Keep desktop browser hosting subscribed outside chat views and acquire bounded native rendering surfaces for background operations. Measure the applied viewport, skip unwanted image capture, and revoke timed-out work without disconnecting unrelated tabs. Dispose late recording resources and release capture/control queues after cancellation. Adapt the pinned upstream cancellation and root-subscription proposals, with local native rendering and recording cleanup extensions. Validate hidden Electron pixels, viewport geometry, uploads, profile isolation, screencast frames, and stalled-command recovery. Carry-Group: upstream-bugfixes Carry-Upstream: https://redirect.github.com/pingdotgg/t3code/pull/16941 head=f88dc5fb4c6b91bd5715d3aacf5f931bb1fba6b9 Carry-Upstream: https://redirect.github.com/pingdotgg/t3code/pull/16620 head=1722a7ae9060883d71d3ba06872c54076dec6bf1 Carry-Observation: Adapted imports; native paint readiness, measured viewport, late-resource cleanup, and restart-epoch fencing extend those upstream proposals.
Separate the lifetime of a QA handoff from its running process. Retain the launch recipe and source until explicit stop or thread deletion; put idle processes to sleep and restore them when the saved link or panel is opened. Opted-in development previews mint fresh browser access without persisting credentials in links or history. Wait for streamed browser control before dispatching recovery, preserve healthy forms, and let newer user navigation win. Keep interrupted startup cleanup reliable even when persistence fails. Prepare manual QA unattended and select authenticated browser profiles explicitly. Carry-Group: incubator Carry-Observation: Retained handoff lifecycle, browser authentication bootstrap, and client reopening form one feature across server, contracts, and clients. Process deadlines no longer revoke saved QA recipes.
Use the workspace Vite executable for managed launches, retain clean authenticated handoffs, and separate QA preparation from human acceptance. Keep normal QA in its own profile and bound cross-thread recovery requests. Carry-Group: tooling
Carry-Group: incubator
Carry-Group: tooling
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 92ef164d66
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Carry-Group: incubator
|
@codex review |
Carry-Group: tooling
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ff334dce6d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Carry-Group: upstream-bugfixes
|
@codex review |
|
Codex Review: Didn't find any major issues. Chef's kiss. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Background browser QA could stall on a hidden-tab capture, disconnect unrelated automation, or require opening the owning thread before its tab existed. Saved QA handoffs also stopped being recoverable after their 24-hour process lease and could lose browser authentication before a person returned.
This keeps browser hosting subscribed outside chat views, acquires bounded native rendering surfaces, measures the applied viewport, and cancels expired work without replaying mutations or evicting unrelated hosts. Retained handoffs now outlive their processes: opening the saved link or panel restores the process and renews opted-in T3 development browser access. Healthy open forms are preserved. QA guidance selects ordinary and authenticated profiles explicitly and prepares manual QA without requesting a review window.
Fixes #287. Named profile selection itself was delivered in #315; this completes its background reliability and evidence-upload workflow.
Validation:
Native hidden-window capture (390×844 CSS pixels at 2× device scale):
Upstream provenance (adapted, with additional native rendering, cancellation, and epoch fencing fixes):
f88dc5fb4c6b91bd5715d3aacf5f931bb1fba6b9.1722a7ae9060883d71d3ba06872c54076dec6bf1.The guarded merge command also accepts
--skip-checkpointso an explicitly deferred checkpoint is not requested after merging; CI, review, and merge guards remain intact. No package build, installation, or restart is part of this delivery.Implemented with GPT-6-Astra and GPT-6.1-Sol through the Codex harness; Luna agents audited code/history/guidance, and Astra independently reviewed the implementation.