Repository navigation
Fixes GRE-822: follow rebuild job snapshots in the browser - #1258
Merged
Merged
Conversation
When health reports tenant_feature_toggles, the job row follows the socket and skips HTTP polling. Without that capability, the socket plus poll stays.
A rebuild job row stays up when the session dies. The helper work is GRE-1001.
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.
Fixes GRE-822
Summary
When
/healthreportstenant_feature_toggles, the browser job row follows the socket and skips HTTP polling. The next frame, including the snapshot after reconnect, replaces status, message, and progress. While that capability is absent, including while health is still loading, the provider keeps the existing socket plus HTTP poll.A lost session during a rebuild job still does not end the row. The socket helper is unchanged. That gap is GRE-1001.
Definition of done
See the definition of done.
Evidence
cd web && npm run test -w @print-partner/web -- src/context/JobContext.test.tsxpassed 28 tests, includingjob_context_rebuild_reconnect_uses_snapshotandjob_context_flag_off_uses_existing_transport.PrinterSendPanel.job-recovery.test.tsxpassed 1 test. eslint on the two context files was clean.npm run qualityfromweb/ran on Node v24.21.0. The repo asks for Node 22.x, which is not installed here. Lint, knip, typecheck, and web vitest passed: 286 files, 1712 tests. Servertest:cifailed one test, GRE-649 insrc/services/bambu-connect.test.ts. The Python probe could not parse a pid becauseFORCE_COLORcolored the Node print. One rerun withFORCE_COLORandNO_COLORunset passed in 639ms. The remaining quality steps then passed with those variables unset: accepted-stl bundle 30, workflow smoke 12, build, route bundles 3, runtime 4, and the GRE-498 browser proof.The doc commit
fc78c6d0only names GRE-1001. It does not changeJobContext.This PR does not change STL rendering, build management, part download, or the printable checkoff sheet.
Sol round 1, Claude Opus 5.5, effort xhigh, on
5dc6efc1: APPROVE 8/10. S1 stays out of this PR. The ticket does not changeconnectJobWebSocket, so the session-loss fix is GRE-1001 and the doc names it. S2 and S3 are nits and stay declined. Health loading uses the same absent-capability path as the flag-off test. The namedrebuildJobSnapshotshelper keeps the capability comment next to the check. No second Sol round. The doc-only commit does not change behavior.Council round 1 on
fc78c6d0: Claude Opus 5.5 9/10 APPROVE, Grok 4.7 9/10 APPROVE, Qwen3.8-Flash 8/10 APPROVE. Qwen sits below the other two, so this head stays. Qwen S1 asks for afetchJobprobe after a socket error. That probe stays out. A late read can overwrite the snapshot this ticket keeps. GRE-1001 covers a socket that will not reconnect, including every 1008 reason other thanJob not foundand a URL-construction failure. Qwen S2 through S5 stay declined. The test drives a later socket frame on the same subscription, which is the row behavior this slice adds. The helper reconnect policy is unchanged. Health loading uses the absent-capability path. The flag-off test shows a socket error does not replace the polled row. Claude's nits stay declined for the same reasons.Exemption
Exemption: none
Reviewed with sol-loop: 1 round with Claude Opus 5.5 on effort xhigh. Sol verdict: approved.
Council review
Rounds: 1
Created with Grok 4.7 in T3 Code.