ZDDC/tests
ZDDC 1d09abdc8b feat(classifier): workspaces — scan-once, resume from snapshot (phase 6)
The classifier re-scanned the source on every session; on cloud-backed mounts
(OneDrive/Samba) that's minutes of per-op latency. Workspaces fix it: scan a
folder ONCE, snapshot the completed tree, and resume instantly — all
classification runs on the data model; the filesystem is only touched at copy.

- persist.js v2: multi-workspace IndexedDB (tiny 'index' store for the welcome
  list + 'data' store holding the source handle, tree snapshot, and map). DB v2.
- scanner.js: snapshotTree()/loadSnapshot() (compact, handle-less, marked done,
  totals recomputed) + lazy resolveFileHandle/resolveDirHandle from the root.
- workspace.js: welcome manager (new/open/rename/delete), debounced autosave of
  the active workspace, 'Refresh from disk' (re-scan → re-snapshot, path-keyed
  map carries over). New workspace = the one slow full scan; reopen = instant.
- copy.js: resolves snapshot files' handles from the workspace root with a
  one-click read permission re-grant; missing-on-disk files surface as errors.
- app.js: enterAppShell() shared by rename/workspace flows; exposes setMode;
  classify.js decoupled from persistence.
- template/css: welcome workspace list + header 'Workspaces' button.
- tests: snapshot round-trip, persist CRUD + classify-only-preserves-tree,
  copy-from-snapshot via mock root handle (28 classify/classifier tests green).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 15:07:40 -05:00
..
data test,docs(zip): browse/archive zip-transmittal coverage + fixture + docs 2026-05-12 12:35:48 -05:00
fixtures test,docs(zip): browse/archive zip-transmittal coverage + fixture + docs 2026-05-12 12:35:48 -05:00
lib test: server-backed Playwright harness + /.tokens spec 2026-05-08 10:09:54 -05:00
archive-cascade.spec.js feat: lockstep release infra + cascade/.archive fixes + profile perf + page redesign 2026-05-01 20:11:38 -05:00
archive.spec.js test,docs(zip): browse/archive zip-transmittal coverage + fixture + docs 2026-05-12 12:35:48 -05:00
browse.spec.js refine(browse): leaner menu — fold Navigate-into into Open, hide unpermitted actions, URL link in info box 2026-06-04 07:59:21 -05:00
build-label.spec.js fix: clear the 14 stale Playwright baseline failures 2026-05-21 11:24:30 -05:00
classifier.spec.js Initial commit 2026-04-27 11:05:47 -05:00
classify.spec.js feat(classifier): workspaces — scan-once, resume from snapshot (phase 6) 2026-06-09 15:07:40 -05:00
conflict.spec.js feat(browse): lost-update protection for editors + shared conflict dialog 2026-06-03 16:24:15 -05:00
diff.spec.js feat(browse): markdown version-history viewer with diff + restore 2026-05-28 12:49:00 -05:00
form-safety.spec.js feat(form): ui:mirrorFrom — reflect a sibling field into a read-only field 2026-05-21 15:44:43 -05:00
landing.spec.js fix: clear the 14 stale Playwright baseline failures 2026-05-21 11:24:30 -05:00
logo.spec.js refactor: nest lifecycle slots per-party + add virtual top-level aggregators 2026-05-21 07:57:45 -05:00
schema.spec.js Initial commit 2026-04-27 11:05:47 -05:00
tables.spec.js feat(tables): read-only cells, show server-derived fields on create, clearer conflict 2026-05-21 15:34:22 -05:00
toast.spec.js feat(shared): non-blocking toast helper available to every tool 2026-05-09 19:04:41 -05:00
tokens.spec.js feat(tokens): render /.tokens via the tables engine + generic apiActions layer 2026-06-06 15:09:40 -05:00
transmittal-drag-drop.spec.js Initial commit 2026-04-27 11:05:47 -05:00
transmittal-init-check.spec.js Initial commit 2026-04-27 11:05:47 -05:00
transmittal-validation.spec.js test(transmittal): cover the publish-time validation gate 2026-05-21 16:49:23 -05:00
transmittal.spec.js Initial commit 2026-04-27 11:05:47 -05:00
zddc-filter.spec.js Initial commit 2026-04-27 11:05:47 -05:00
zddc-source.spec.js test(shared): smoke tests for the zddc-source.js FS-Access polyfill 2026-05-09 18:49:11 -05:00
zddc.spec.js Initial commit 2026-04-27 11:05:47 -05:00