Skip to content

feat(storage): add unlimited storage, backup, reset, and fixed vault - #230

Merged
ThisIs-Developer merged 12 commits into
mainfrom
agent/unlimited-document-vault
Jul 29, 2026
Merged

feat(storage): add unlimited storage, backup, reset, and fixed vault#230
ThisIs-Developer merged 12 commits into
mainfrom
agent/unlimited-document-vault

Conversation

@ThisIs-Developer

@ThisIs-Developer ThisIs-Developer commented Jul 28, 2026

Copy link
Copy Markdown
Owner

What changed

  • Replaced the former 50-document workspace cap with per-document storage, on-demand document content loading, a bounded 20-document in-memory cache, and paged Explorer rendering for large workspaces.
  • Added Storage and Backup for web and desktop with workspace Usage, separate normal/secret document counts, ZIP backup and import, folder preservation, and encrypted Secret Workspace round trips.
  • Added complete workspace reset with a Backup route, progress feedback, loading spinner, and repeated-click protection.
  • Simplified browser persistence to read-only status. Browser storage remains best-effort by default and no longer exposes a Keep browser data request button.
  • Restored the earlier compact Storage and Backup presentation while moving Include secure workspace files into a focused modal that opens only after the user selects Backup.
  • Replaced the Replace current workspace? import toast with a dedicated 420px confirmation modal for web and desktop, including an amber destructive-action warning, initially focused Cancel action, keyboard/backdrop dismissal, repeated-click protection, and a loading spinner while the backup is read.
  • Styled the recovery notice as an accessible amber warning and the secure-backup notice as a distinct accessible blue information callout in light and dark themes.
  • Assigned the locally bundled Lucide database-x icon to the recovery notice and shield-check to the encrypted secure-backup notice.
  • Increased the backup-options and import-confirmation modal widths from 360px to 420px on larger screens while preserving responsive full-width behavior on small phones.
  • Removed the browser quota estimate from Usage; Usage now reports only the workspace's actual local storage consumption.
  • Updated the recovery warning to: “Clearing this site's browser data will delete local documents.”
  • Shows the web location honestly as Browser profile · IndexedDB; browsers do not expose a physical IndexedDB filesystem path.
  • Fixed desktop workspace storage to Documents/Markdown Viewer Vault, removed vault relocation and the external locator file, and kept legacy locator cleanup off the startup critical path.
  • Kept explicit user Export/Save As destinations independent from app-managed autosave storage.
  • Synchronized the offline desktop resources and localized the revised UI across all 14 catalogs.

Why

The previous workspace limit and monolithic persistence model did not scale to large document collections. The desktop locator also made the vault path less predictable than necessary. This change makes storage scalable, backup/recovery explicit, and the desktop persistence location deterministic without adding work to browser startup or document opening. The final backup and import flows keep the main storage view compact and present consequential choices at the moment they are relevant.

User impact

  • Workspaces are no longer limited to 50 documents; practical capacity is available local storage.
  • Storage measurements run only when Storage and Backup is opened.
  • Clicking Backup opens an accessible confirmation modal containing the secure-workspace checkbox and encrypted-file recovery note.
  • Selecting an import file now opens a destructive confirmation modal instead of a toast. Import begins only after the user explicitly clicks Import Backup, then continues with the existing progress toast.
  • The recovery warning and secure-backup information are visually distinct while retaining explanatory text and icons, so meaning does not rely on color alone.
  • Clearing this site's browser data removes browser documents, so ZIP backup remains the portable recovery path.
  • Replacing or deleting a desktop binary does not remove the fixed vault; a new binary checks the same Documents location automatically.
  • Secret Workspace content remains encrypted in backups and still requires the correct password after import.
  • The backup ZIP library remains lazy-loaded only after confirmation, so startup and document-opening paths are unchanged.

Validation

  • npx playwright test tests/e2e/responsive-storage.spec.js — 11 passed, including persistence, private mode, backup/import, encrypted restoration, reset, more than 50 documents, 600-document Explorer paging, and phone portrait/landscape layouts.
  • Latest focused storage regression run — 3 passed, covering the actual ZIP backup/import round trip through the new confirmation modal, more than 50 documents, database icon rendering, keyboard dismissal, and responsive phone layouts.
  • Latest visual browser QA — verified the Appearance pill is absent, the compact settings layout has no horizontal overflow, and the original moon-to-sun theme action still updates its icon, description, and accessible label correctly.
  • Browser console QA — no errors or warnings during the restored Appearance workflow.
  • Recovery warning text contrast is 8.95:1 in light mode and 10.09:1 in dark mode.
  • Secure-backup note text contrast is 6.68:1 in light mode and 9.17:1 in dark mode.
  • Fixed-vault filesystem harness — verified every managed write remained under the vault, Markdown content survived there, and obsolete locator metadata was removed.
  • Syntax, JSON, localization, desktop-resource synchronization, and git diff --check validation passed.
  • The repository root static build still reports the pre-existing missing functions/api/report-issue.js; this file is absent from the branch baseline and is unrelated to this PR.

Rollback and release status

  • Reverted style(workspace): modernize empty document state; the repository tree now matches commit 02a351b.
  • GitHub prereleases and tags v3.9.5-beta.1 through v3.9.5-beta.4 remain deleted.
  • No replacement release or tag was created.

@vercel

vercel Bot commented Jul 28, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
markdown-viwer Ready Ready Preview, Comment Jul 29, 2026 6:41pm

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 28, 2026

Copy link
Copy Markdown

Deploying markdownviewer with  Cloudflare Pages  Cloudflare Pages

Latest commit: 2451190
Status: ✅  Deploy successful!
Preview URL: https://9466b8e2.markdownviewer.pages.dev
Branch Preview URL: https://agent-unlimited-document-vau.markdownviewer.pages.dev

View logs

@ThisIs-Developer ThisIs-Developer changed the title feat(storage): add unlimited document vault feat(storage): add unlimited vault backup and reset Jul 28, 2026
@ThisIs-Developer ThisIs-Developer changed the title feat(storage): add unlimited vault backup and reset feat(storage): add unlimited storage, backup, reset, and fixed vault Jul 29, 2026
@ThisIs-Developer
ThisIs-Developer marked this pull request as ready for review July 29, 2026 18:49
@ThisIs-Developer
ThisIs-Developer merged commit 8da0aca into main Jul 29, 2026
5 checks passed
@ThisIs-Developer
ThisIs-Developer deleted the agent/unlimited-document-vault branch July 29, 2026 18:55
ThisIs-Developer added a commit that referenced this pull request Jul 29, 2026
Connect the 12 original PR #230 commits to main through a regular merge commit. This is a history-only merge; the application tree remains unchanged.
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.

1 participant