Repository navigation
Keep a full local save from crashing the page - #174
Merged
Merged
Conversation
Persisting the library wrote the whole store to localStorage, and a quota error escaped Zustand into the tool page. A full disk now retries without source text, then without the bulky lists, and leaves the open draft in memory. Co-authored-by: Gáborjáni-Szabó Ádám <Programcode@users.noreply.github.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Warning Review limit reachedEnable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. Next included review available in 49 minutes. View limit details
Note 🎁 Summarized by CodeRabbit Free
Comment |
Programcode
marked this pull request as ready for review
October 22, 2026 12:26
This branch was successfully deployed
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.
The session store writes almost the whole library into
localStorageunderdebate-trainer-storage. When that write hits the quota, Zustand let the exception out and the tool page crashed. Dropping the library from every save would flash an empty library before hydration, so the normal save is unchanged.On a quota error the write retries without source text (titles and ids stay), then without the bulky saved lists. The open draft and the result on screen stay in the payload. If every copy is still too big, the error is swallowed and the change remains in memory. Other errors still throw.
No layout change.
Verified locally (GitHub Actions is out of minutes, so this is not a CI pass):
npx vitest run src/test/stores/resilient-local-storage.test.ts src/test/debate/debate-gates.test.tsx(15 passed)npx eslinton the helper, the session store, and the testnpm run typecheckNot run:
npm run verifyand a browser pass with a deliberately fulllocalStorage.