Fix stale dialog chunks, fast-mode pricing in Projects, the offline tab icon, the phone topbar and two re-sign-in prompt cases - #1929
Merged
Conversation
…rade A tab older than an upgrade asks for the old chunk name. The server now answers a missing file under assets/ with 404 instead of index.html, and Usage history and Browser Watch open as a short note with Reload instead of taking the whole deck to the crash pane.
The Projects tally kept its counters by model alone, so a fast turn was priced at the standard rate: half the board's figure where ccusage did not calibrate the day, and a premium spread over every project where it did. The tally now keeps each speed's share (rebuilt once from the transcripts), each share is priced at its own rate, and a calibrated day's drift is taken back to the standard basis by the day's own speed mix.
…he deck The offline mark was a path on the deck, first requested when the event stream had already failed, so it could not load and the tab kept its previous mark. Every state's file is now fetched once while the deck answers and handed to the tab's links as a data: URL.
Report this is first in the popover's DOM, so the dismiss hook focused it and a keyboard Enter after opening the popover filed a report. AnchoredPopover now takes a focusRef for its first stop, and the issue popover names Done.
With Feedback on the bar the controls came to 314px, so at 360px the waiting pill was cut off the left edge and at 320px a control went off the right one; a selected agent's ribbon drew its state over the Session list button. Under 480px History, Browser watch and Feedback now open from one menu button, and the ribbon leaves the bar.
…ust worked After a re-sign-in of an account that had collected nothing for half a day, the first collection stamps its attempt before it records anything, and a roster read in between paired that attempt with the verdict cached before the sign-in: a new incident, and the prompt asked again. A stopped collector now counts as a dead login only on a verdict asked after the last sign-in.
Removing the store's last account leaves sequence.json with an empty accounts map, and the roster read kept every mark over it. The same address pasted from a share later inherited the mark, and a refusal of that shared login opened a re-sign-in prompt. An emptied store now forgets the marks it no longer holds; an unreadable one still forgets nothing.
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.
What changes
assets/with 404 instead ofindex.html. Each of the two dialogs opens as a short note with Reload and Close, and the deck no longer goes to the crash pane or files a crash report.data:URL. The tab's writer (showTabIcon, which the crash screen also uses) hands those to the links. The offline mark therefore needs no request to a deck that has gone away.AnchoredPopovertakes afocusRef, and the issue popover now opens on Done. Report this stays one Shift+Tab away.sequence.jsonholds an empty accounts map, the roster read now forgets the marks of accounts that are gone. A file that cannot be read still forgets nothing.Verification
npm run typecheck: clean.--maxWorkers=3 --minWorkers=1): 846 files, 11383 tests passed, exit 0. After the rebase ontodevelopment, the touched and neighbouring tests were run again: 161 files, 2671 tests passed.stale-dialog-chunk.test.ts: the 404 for a missing asset, and each lazy dialog settling on its note. Before the fix this rethrew "Failed to fetch dynamically imported module".projects-report-fast-mode.test.ts: before the fix, a fast Opus 5.5 turn cost $0.744 against the board's $1.488, and the calibrated split was 1:1 instead of the board's ratio.offline-tab-icon.test.ts: before the fix, the offline href was still/state/favicon-error.svg.issue-popover-focus.test.ts: before the fix, the first stop was "Report this".topbar-phone-width.test.ts: cascade arithmetic. Before the fix, the controls left no room for the pill at 320–412px, and the ribbon was not hidden on a phone.reauth-after-resignin.test.ts: the real roster read, against a sandboxed store and faked processes. Before the fix it opened a new incident named by the sign-in.signin-mark-last-account.test.ts: the real roster read, with the realwithTidied. Before the fix the mark survived, and a pasted share of the same address came back withorigin: ccdeck_signinand an incident.data:URLs, with no icon request after the deck went away.