ZDDC/tests
ZDDC f66b9c5d55 feat(classifier): "From a list" — a scratch worklist that materializes tracking placements
Rework the "By existing" catalog into a "From a list" scratch worklist that can
be populated three ways and cleared without losing work.

Core model — retire the separate `mdl` assignment axis. Dropping a file on a row
now MATERIALIZES a real "By tracking number" placement (assignFromRow →
addTrackingPath + place(…,'tracking') + title override), reusing the typed-
filename path. Consequences:
- Clearing the list can't lose classifications (no assignment references a row);
  dropped files show under By tracking number.
- The two name axes collapse into one (place/deriveTarget/fileCategory simplified).
- Workspace migration: load() materializes any legacy `mdlNodeId` into a tracking
  placement BEFORE anything can prune, so saved workspaces keep their work.
- A tracking number's last segment is an ancestor and the revision is always the
  leaf, so a blank-revision drop lands on a `pending` placeholder leaf; editing
  the row's tracking number or revision re-stamps the row's files onto the new
  leaf and prunes the emptied one.

UI:
- One editable Tracking number column (no per-field split) + editable Title — so
  you can drop on an entry and bump e.g. the sequence for a new drawing.
- Source column (MDL / arch / pasted) with an amber "new"/"unverified" badge when
  a pasted number matches nothing scanned — the typo catcher.
- Toolbar: Load… (now appends) · Paste rows… ·  Match names · Clear list ·
  Hide assigned. Tab renamed "From a list"; goal line + hint teach the scratch-pad.
- Paste dialog (Ctrl-V on the panel too) with a live parse preview; parsePastedRows
  handles 3-col, a split status column, a pasted full filename, header + bad rows.
- Match names reviews proposeMatches (filename ⊇ a known tracking number) and
  assigns the checked pairs.

Tests: materialize+clear, tracking-edit re-stamp + prune, legacy migration,
parsePastedRows, proposeMatches; 66 classify+classifier green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 10:48:26 -05:00
..
data ZDDC: document-control tools + zddc-server 2026-06-11 13:32:31 -05:00
fixtures ZDDC: document-control tools + zddc-server 2026-06-11 13:32:31 -05:00
lib ZDDC: document-control tools + zddc-server 2026-06-11 13:32:31 -05:00
archive-cascade.spec.js ZDDC: document-control tools + zddc-server 2026-06-11 13:32:31 -05:00
archive.spec.js ZDDC: document-control tools + zddc-server 2026-06-11 13:32:31 -05:00
browse.spec.js ZDDC: document-control tools + zddc-server 2026-06-11 13:32:31 -05:00
build-label.spec.js ZDDC: document-control tools + zddc-server 2026-06-11 13:32:31 -05:00
classifier.spec.js ZDDC: document-control tools + zddc-server 2026-06-11 13:32:31 -05:00
classify.spec.js feat(classifier): "From a list" — a scratch worklist that materializes tracking placements 2026-06-12 10:48:26 -05:00
conflict.spec.js ZDDC: document-control tools + zddc-server 2026-06-11 13:32:31 -05:00
diff.spec.js ZDDC: document-control tools + zddc-server 2026-06-11 13:32:31 -05:00
form-safety.spec.js ZDDC: document-control tools + zddc-server 2026-06-11 13:32:31 -05:00
landing.spec.js ZDDC: document-control tools + zddc-server 2026-06-11 13:32:31 -05:00
logo.spec.js ZDDC: document-control tools + zddc-server 2026-06-11 13:32:31 -05:00
schema.spec.js ZDDC: document-control tools + zddc-server 2026-06-11 13:32:31 -05:00
tables-mdl.spec.js feat(tables): "Add from archive" on the project MDL rollup 2026-06-11 15:48:22 -05:00
tables.spec.js ZDDC: document-control tools + zddc-server 2026-06-11 13:32:31 -05:00
toast.spec.js ZDDC: document-control tools + zddc-server 2026-06-11 13:32:31 -05:00
tokens.spec.js ZDDC: document-control tools + zddc-server 2026-06-11 13:32:31 -05:00
transmittal-drag-drop.spec.js ZDDC: document-control tools + zddc-server 2026-06-11 13:32:31 -05:00
transmittal-init-check.spec.js ZDDC: document-control tools + zddc-server 2026-06-11 13:32:31 -05:00
transmittal-validation.spec.js ZDDC: document-control tools + zddc-server 2026-06-11 13:32:31 -05:00
transmittal.spec.js ZDDC: document-control tools + zddc-server 2026-06-11 13:32:31 -05:00
zddc-filter.spec.js ZDDC: document-control tools + zddc-server 2026-06-11 13:32:31 -05:00
zddc-source.spec.js ZDDC: document-control tools + zddc-server 2026-06-11 13:32:31 -05:00
zddc.spec.js ZDDC: document-control tools + zddc-server 2026-06-11 13:32:31 -05:00