Branch: m8-load-guard-rails → main
Load itself, the unsaved-changes prompt on New and Load, the overwrite confirmation and Go's error messages for bad WAVs and limits came in M5–M7. This PR adds the rest of M8 and the checklist for device checkpoint B.
_[ProjectData] folder, and a sample assigned from elsewhere can be moved or deleted later. The state now says, per pad, where the sample comes from and whether that file still exists.
missing (in red) on such pads.close event. The app asks "Close without exporting?"; Close discards the changes and quits, Cancel stays. Without unsaved changes the window closes straight away.docs/checkpoint-b.md, linked from the build plan). Five projects (MpckitB1–B5), each made from DemoFile in the app: no changes, moving a pad with notes, copying across banks and swapping pads with notes, removing the current sequence and adding one in bank B, and shortening a sequence with notes. Each lists what to listen for, plus an empty results table. It also covers open question 7 (currentSequence) and B5 (notes past a new end).CloseWindow for the frontend. Dirty and SetCloser are for main.go only and kept out of the bindings.Change after the first laptop run (bajdev, 2026-11-11: checks 1–3 passed): disable the export buttons while a sample is missing. Before, a user could choose a folder and miss the error text.
Checkpoint B results (bajdev, 2026-11-11): all five projects loaded and worked on the device, so M8's done-when is met. Recorded in docs/checkpoint-b.md, the format doc (section 7, open questions 4 and 7) and the build plan (checkpoint B, risk table).
currentSequence slot or list position) is still open: in MpckitB4 both readings point at Sequence 02.On the server: go vet and go test ./... pass. New tests:
CloseWindow calls the closer, and Dirty follows edits.The frontend is untested here (no Node). On the laptop:
npm run check in frontend: 0 errors, 0 warnings.DemoFile.xpj and its DemoFile_[ProjectData] folder somewhere, delete 80s-Snr-Dreamer SA.wav from the copy, and Load it. A02 shows missing, A02's panel shows the path, and Play is disabled. Both export buttons are disabled, and the footer says "1 sample file missing: export is disabled". Replace A02 with any WAV: the warning goes and both export buttons work again.docs/checkpoint-b.md, try them on the device, and send me the results. I'll record them in the format doc and build plan.