gsxdsm
7dfce1cc16
FN-9160: Prevent draft storage quota exhaustion
Make browser draft restoration best-effort so oversized or quota-blocked writes never interrupt task creation.
- cap free-text draft persistence at 64,000 bytes and warn once when restoration is unavailable
- make scoped storage operations throw-safe with bounded retries and stale volatile-state reclamation
- extend quota, composer, modal persistence, and chat draft coverage and document the storage policy
- add a patch changeset for the operator-facing fix
Files changed:
.changeset/fn-9160-quick-entry-quota.md | 7 ++
docs/storage.md | 31 +++---
.../dashboard/app/components/InlineCreateCard.tsx | 25 ++++-
.../dashboard/app/components/QuickEntryBox.tsx | 25 ++++-
.../components/__tests__/ChatView.draft.test.tsx | 36 +++++-
.../components/__tests__/InlineCreateCard.test.tsx | 20 ++++
.../components/__tests__/QuickEntryBox.test.tsx | 36 +++++-
.../app/hooks/__tests__/modalPersistence.test.ts | 28 +++--
packages/dashboard/app/hooks/modalPersistence.ts | 29 ++---
.../app/utils/__tests__/projectStorage.test.ts | 88 ++++++++++++++-
packages/dashboard/app/utils/projectStorage.ts | 122 +++++++++++++++++++--
11 files changed, 384 insertions(+), 63 deletions(-)
Fusion-Task-Id: FN-9160
Fusion-Task-Lineage: 63481936-91f1-4e7a-b27c-c3c5f49014dd
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-08-19 18:08:55 -07:00
..
2026-08-18 22:16:44 -07:00
2026-08-18 22:16:44 -07:00
2026-08-19 10:10:39 -07:00
2026-08-19 18:08:55 -07:00
2026-08-18 22:16:44 -07:00
2026-08-18 22:16:44 -07:00
2026-08-18 22:16:44 -07:00
2026-08-18 22:16:44 -07:00
2026-08-18 22:16:44 -07:00
2026-08-18 22:16:44 -07:00
2026-07-27 19:40:08 -07:00
2026-08-18 22:16:44 -07:00