Skip to content

Keep a full local save from crashing the page - #174

Merged
Programcode merged 1 commit into
mainfrom
cursor/storage-quota-wont-crash-791b
Oct 22, 2026
Merged

Programcode merged 1 commit into
mainfrom
cursor/storage-quota-wont-crash-791b

Conversation

@Programcode

Copy link
Copy Markdown
Owner

The session store writes almost the whole library into localStorage under debate-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 eslint on the helper, the session store, and the test
  • npm run typecheck

Not run: npm run verify and a browser pass with a deliberately full localStorage.

Open in Web Open in Cursor 

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>
@vercel

vercel Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
debate-navigator Ready Ready Preview Oct 22, 2026 11:14am UTC
debatelab-staging Ready Ready Preview Oct 22, 2026 11:14am UTC

@coderabbitai

coderabbitai Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

Next included review available in 49 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
📥 Commits

Reviewing files that changed from the base of the PR and between 4f9e0a0 and abba935.

📒 Files selected for processing: 3
  • src/lib/stores/resilient-local-storage.ts
  • src/lib/stores/session-store.ts
  • src/test/stores/resilient-local-storage.test.ts
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Note

🎁 Summarized by CodeRabbit Free

Your organization is on the Free plan. CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please upgrade your subscription to CodeRabbit Essentials by visiting https://app.coderabbit.ai/settings/billing.

Comment @coderabbitai help to get the list of available commands.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@Programcode
Programcode merged commit bc9a8de into main Oct 22, 2026
7 of 15 checks passed

This branch was successfully deployed

2 active deployments
Preview – debatelab-staging — abba9352 Deployed Oct 22, 2026 by vercel[bot]
Preview – debate-navigator — abba9352 Deployed Oct 22, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants