ZDDC/classifier/js
ZDDC 1f8b4e4aaa feat(classifier): zips are single files by default, toggle to expand as a folder
Previously every .zip was auto-expanded into a folder of members (and was even
double-represented as both a file and a folder node). Now a .zip is one
classifiable file by default; right-click it → "Expand as folder" to pull its
members into the fileset, and right-click an expanded archive (or a member) →
"Collapse to single file" to go back. The toggle sits with Exclude in the
context menu.

- scanner: stop creating zip-root nodes during the scan; expandZipAsFolder /
  collapseZipToFile mutate the tree in place (re-reading members from the live
  handle or, for a restored workspace, lazily from the root) and recompute
  subtree totals. Mode is encoded by the tree shape, so it persists in the
  snapshot as-is.
- classify.dropAssignments clears the assignments that cease to exist when a zip
  flips mode (the single-file key on expand; the member keys on collapse).
- copy already handles both: a zip-as-file copies whole; members extract from
  the archive.

Also: a folder whose entire subtree is excluded now renders its name struck
through, mirroring the excluded-file style.

Tests: collapse restores the single .zip + drops member assignments; a
fully-excluded folder gets the struck-through class (48 green).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-10 14:34:25 -05:00
..
app.js ux(classifier): relabel the two JSON surfaces so their purpose is clear 2026-06-10 13:56:09 -05:00
classify.js feat(classifier): zips are single files by default, toggle to expand as a folder 2026-06-10 14:34:25 -05:00
copy.js feat(classifier): persist & copy files inside .zip archives 2026-06-10 13:27:00 -05:00
dnd.js feat(classifier): drag-and-drop assignment (phase 3) 2026-06-09 12:23:38 -05:00
excel.js feat(shared): non-blocking toast helper available to every tool 2026-05-09 19:04:41 -05:00
filter.js Initial commit 2026-04-27 11:05:47 -05:00
persist.js feat(classifier): workspaces — scan-once, resume from snapshot (phase 6) 2026-06-09 15:07:40 -05:00
preview.js feat(classifier): persist & copy files inside .zip archives 2026-06-10 13:27:00 -05:00
resize.js Initial commit 2026-04-27 11:05:47 -05:00
scanner.js feat(classifier): zips are single files by default, toggle to expand as a folder 2026-06-10 14:34:25 -05:00
selection.js Initial commit 2026-04-27 11:05:47 -05:00
sort.js Initial commit 2026-04-27 11:05:47 -05:00
spreadsheet.js fix(classifier): drop vestigial Save-All delays that masked a fixed await bug 2026-05-21 17:07:28 -05:00
store.js Initial commit 2026-04-27 11:05:47 -05:00
target-tree.js feat(classifier): live filter box above each file tree (reveals matches + path) 2026-06-10 12:37:36 -05:00
tree.js feat(classifier): zips are single files by default, toggle to expand as a folder 2026-06-10 14:34:25 -05:00
utils.js Initial commit 2026-04-27 11:05:47 -05:00
validator.js Initial commit 2026-04-27 11:05:47 -05:00
workspace.js ux(classifier): relabel the two JSON surfaces so their purpose is clear 2026-06-10 13:56:09 -05:00