Repository navigation
Conversation
…fails schema decode useLocalStorage's setValue always read and decoded the current stored value first. A JSON-valid but schema-invalid blob (truncated write, schema gained a required field, value written by a different build shape) made decode throw, and the catch swallowed it: every later setter call became a silent no-op while the read path kept showing the initial value. Toggles and dismissals (provider-update dismissal, resume-compaction dismissal, sidebar shelf state, diff panel tree) would snap back and never persist until site storage was cleared. Plain-value writes no longer touch the stored blob at all. Updater writes fall back to the initial value on decode failure, matching the read path, instead of skipping the write. Tests: 3 new behavior tests in useLocalStorage.setValue.test.tsx (red-on-base: the 2 corrupt-blob tests fail on base, the normal path passes on both); existing useLocalStorage.test.ts 6/6 green; apps/web tsc --noEmit clean. Authored with AI assistance (Muse, Meta's Muse Spark) under the contributor's direction.
…4697) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…g#13894) Co-authored-by: maria-rcks <maria@kuuro.net>
Co-authored-by: maria-rcks <maria@kuuro.net>
…tgg#12598) Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: GPT-6.1-Sol (Codex) <noreply@openai.com> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
…otgg#17938) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…op's end (pingdotgg#14744) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…d reply (pingdotgg#14752) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… partway (pingdotgg#14723) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…Windows desktop (pingdotgg#16869) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Co-authored-by: Yash Singh <saiansh2525@gmail.com>
…inary (pingdotgg#16838) Co-authored-by: Yash Singh <saiansh2525@gmail.com>
…to 0% (pingdotgg#16394) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Co-authored-by: Yash Singh <saiansh2525@gmail.com>
…tgg#17528) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…er hides every skill (pingdotgg#17389) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Yash Singh <saiansh2525@gmail.com>
…yarn group across 1 directory (pingdotgg#16309) Signed-off-by: dependabot[bot] <support@github.com>
…op (pingdotgg#16480) Co-authored-by: Yash Singh <saiansh2525@gmail.com>
…ingdotgg#18124) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…dotgg#18143) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
pingdotgg#18200) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
…tgg#17879) Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com> Co-authored-by: Julius Marminge <julius0216@outlook.com>
…17050) Co-authored-by: Julius Marminge <julius0216@outlook.com>
…#17027) Co-authored-by: Julius Marminge <julius0216@outlook.com>
Retain the existing small fix and original author commits while updating the integration baseline for fresh T3 CI. Original fix: Kevin (kvnloo), AI-assisted via Meta Muse Spark. This merge-only reconciliation introduces no separate behavior change.
This was referenced Oct 16, 2026
This branch has not been 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.
What Changed
useLocalStorage'ssetValueno longer reads and decodes the current stored value before a plain-value write — plain values never needed the old blob. Updater-function writes still read it, but now fall back to the initial value on decode failure (matching the read path) instead of turning the write into a silent no-op.Why
setValuealways decoded the stored blob first; a JSON-valid but schema-invalid blob (truncated write from a crash, a schema that gained a required field, a value written by a different build shape) made decode throw, and the catch only logged it. Every later setter call on that key was a silent no-op while the read path kept showing the initial value — an internally inconsistent fail-open/fail-closed split. User-visible: provider-update dismissals, resume-compaction dismissal, sidebar shelf state, and diff-panel file-tree state would snap back and never persist until site storage was cleared manually.Validation
useLocalStorage.setValue.test.tsx): plain write heals a corrupt blob; updater runs against the initial value on a corrupt blob; normal write/updater paths unchanged.useLocalStorage.test.ts6/6 green;apps/webtsc --noEmitclean;vp fmt --checkclean.Checklist
Authored with AI assistance (Muse, Meta's Muse Spark) under the contributor's direction.