Repository navigation
cmux NEXT: a hidden tab too busy to answer the hibernation probe freezes - #23980
Conversation
…s (red) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15d2c-7e44-7fc1-abd1-eae4a427ac80&host=Air-Blue
A probe the page did not answer (a script error, or no reply within its 2 s deadline) counted as playing media, so the page never froze and was asked again every 30 s while hidden. It now counts as unknown: after 3 in a row the page freezes; it hibernates only under memory pressure, since its form edits are unknown. The media the tab last reported still keeps it awake. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15d2c-7e44-7fc1-abd1-eae4a427ac80&host=Air-Blue
…e freeze guards Freezing off, an agent's grace, neighbors and hovered tabs still keep it awake. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15d2c-7e44-7fc1-abd1-eae4a427ac80&host=Air-Blue
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
red: cmux-next checks (god files, concurrency, crash safety, l10n); base red: the same failure on the base 4e912c0; does not block |
… a show, and not past a reported call A freeze probe no longer starts beside the hibernation probe of the same page; a probe that ends after the page was shown counts nothing; a page whose last answer reported capture or Web Audio stays awake while later probes go unanswered (Chromium reports neither natively). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15d2c-7e44-7fc1-abd1-eae4a427ac80&host=Air-Blue
|
Found 12 test failures on Blacksmith runners: Failures
...and 2 more test failures. View all on Blacksmith
|
Bugbot needs on-demand usage enabledBugbot uses usage-based billing for this team and requires on-demand usage to be enabled. A team admin can enable on-demand usage in the Cursor dashboard. |
A page the hibernation probe thawed is refrozen by the freeze probe that runs beside it in the same replan, as before; the hibernation probe reads the count and records answers. Drops the refreeze in prepare. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15d2c-7e44-7fc1-abd1-eae4a427ac80&host=Air-Blue
|
|
|
Review (subagent, correctness first): SHIP at 6158387 An independent acpmux Claude reviewer read three rounds. It found two problems, both since fixed:
It gave SHIP at 6158387 with two non-blocking nits:
|
|
Review (subagent, correctness first): SHIP at def9c19 def9c19 merges the base (it includes #23935) into the reviewed 6158387. The PR diff is unchanged:
The |
|
Bead |
|
Shipped in:
|
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Leo-ask: ask-a3c16b28b7
Leo-ask: ask-8f7a35dd52
Leo, 2026-10-21: "AUDIT MY CURRENTLY RUNNING APP WHERE CAN WE MAKE THINS MORE FUCKING EFFICIENT" and "WHERE IS ALL THE CPU AND RAM COMING FROM".
We audited Leo's running cmux read-only. The hottest Chromium page renderer averaged 25% CPU with a 586 MB footprint, and the GPU process another 25%. One way a hidden page ends up like that is in
BrowserHibernation. Before a hidden page freezes (30 s) or hibernates, a probe asks it, with a 2 s deadline, whether it plays media or holds form edits. If the probe threw or missed the deadline, the page was treated as playing media. A page busy enough to miss the deadline therefore:The busiest pages were the ones that never slept.
Change
PageProbe.answered).BrowserTabState.media), so reading it needs no round trip to the busy page.isCapturing, which already excludes the page before any probe.freezeSecondsapart (about 90 s), mean a page busy the whole time.unansweredexemption (it used to be reported asaudio).freezeHiddenTabs: "off"Tests
UnansweredPageProbeTests(committed red first, e519a0d):Changelog
No capture: nothing drawn changes.
Observed / Not run
cmux-ci run --class light --script scripts/ci/package-test-lane.sh --arg suite --arg Packages/macOS/CmuxNext --arg <suites>:probe-unknown-freezes-red-evidence. The first red commit, e519a0d, never ran its tests: the base's web step failed until ci: the agent pane page ships the Inspector's ContextSection.css (base red since #23789) #23935 landed.UnansweredPageProbeTestsfailed 2 of 3:aPageThatDoesNotAnswerIsNotPlayingMedia: the probe gaveplayingMedia: true, so the exemption was.audio.aHiddenPageTooBusyToAnswerFreezes: the busy page never froze within 15 s.UnansweredPageProbeTestspassed 3 of 3, and the busy page froze in about 6.8 s. HiddenPageFreezeTests, NeighborTabsWakeTests, HiddenPageHibernationTests and NeighborTabsTests also passed.BrowserHibernationthrough thefreezerseam, which is the path Chromium pages take in the app.cmux browser listreports no renderer PID.Agent session: Air-Blue
🤖 Generated with Claude Code