Repository navigation
fix(gpu): recover monitoring after stalled response bodies - #4444
Merged
gabsprogrammer merged 3 commits intoSep 13, 2026
Merged
gabsprogrammer merged 3 commits into
gabsprogrammer merged 3 commits into
Conversation
This was referenced Sep 12, 2026
This was referenced Sep 16, 2026
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.
Why this matters
GPU Monitor stops refreshing permanently when any of its three HTTP responses or JSON bodies stalls: fetchInFlight stays true and every later poll is skipped. Bound the complete snapshot read to 15 seconds, abort outstanding fetches, and release the polling lock. Leaving the page aborts the active request and prevents late state writes.
Behavioral invariant
A stalled poll must settle and allow later scheduled polls to recover. Snapshot reads publish only while their effect is live. Existing hidden-tab and HTTP-response behavior is preserved.
Overlap check
Searched open and closed Osmantic/ODS PR titles for GPU polling/recovery and the complete PR file inventory for useGPUDetailed.js. Inspected #3025 and #3313: they handle HTTP errors and initial hidden-tab loading, without a total request/body deadline or unmount cancellation. This PR does not duplicate those HTTP/initial-load changes. The file may require reconciliation if those main-targeted PRs are merged into beta later.
Validation
npm test -- --maxWorkers=1 src/hooks/__tests__/useGPUDetailed.recovery.test.js: 2 passed.git diff --check: passed.Browser-network behavior is exercised through controlled fetch/body promises, not a live GPU host. Reverting this commit restores the previous polling behavior; no persisted state or backend contract changes.
Batch integration receipt (2026-09-12)
9fc9f610.npm test -- --maxWorkers=4939 tests passed in 118 files;npm run lint0 errors, 577 warnings;npm run buildpassed.python -m pytest tests/test_talk.py tests/test_talk_attachment_encoding.py -q45 passed.2a35c1e5:make lint, all four platform dispatch/smoke scripts, and installer simulation passed. Later changes add tests and adjust two progress labels only.make gateis not green locally: the installer noninteractive-sudo test has two failures reproduced unchanged on base9fc9f610. BATS has 416/421 passing, with five WSL/root-environment failures also reproduced on that base. These are recorded limits, not passing gates. Full-repository private-key scanning also flags pre-existing test fixtures; changed-file pre-commit checks pass.Merge coordination
Suggested sequence: #4444, #4445, #4446, #4447, #4448, #4449, #4450, #4451, #4453, #4454, #4455, #4456, #4457, #4458, #4459, #4460, #4461, #4462, #4463, #4464. Each PR is independently based on public-beta; the sequence is for applying and verifying the combined batch, not a claim of stacked base branches.
Three textual reconciliations are preserved in the integration head: #4459 retains #4447 reader cleanup/terminal framing plus stop-abort guards; #4461 combines the GFM and copy-component imports; #4463 retains both the caption-limit notice and jump-to-latest action. Other merges applied automatically. Rerun the focused suites and combined dashboard checks after upstream integration; revert the relevant PR commit to roll back its behavior. No upstream PR has been merged by this batch.
Current PR candidate:
3fd723015a96d208960b742598aa183301f18b7e.