one-pad-label-format-a1.md 2.9 KB

One pad label format: "A1"

Branch: a1-labels → main

PR 7 of the review fixes plan (docs/review-fixes-plan.md), part of the 0.5.3 series; the version does not change in this PR.

What changed

"A1" labels everywhere (M6). The app showed pads and sequence slots as "A01", "B02"; the CLI and project.SlotName used "A1", "B2". As decided, it is "A1" everywhere now: bank letter, then pad number without a leading zero.

  • Go: app.Label is removed, and the app's state uses project.SlotName, the one Go implementation. That covers the pad grid, pad panel, sequence grid and confirm dialogs, which all take their labels from the state.
  • Frontend: slotLabel in frontend/src/lib/slots.ts now gives "A1". The sequence panel uses it for the slot shown in its header.
  • Comments: the ones that said "A01" are fixed in app.go, SlotGrid.svelte, slots.ts, and the regenerated models.ts.
  • Unchanged:
    • sequence names such as "Sequence 01", which is the device's own naming, not a slot label;
    • the CLI, which already used "A1".
  • Tests: the app tests now expect "A1", "B2", "B5" and "H16".

Notes

  • The history stays as it was. docs/checkpoint-b.md keeps "A01" in its steps and results: it records the device test as run with that UI. The earlier PR records are left alone too.
  • Layout: labels are one character shorter for pads 1–9 and the same length otherwise, so nothing can get wider. Please confirm the fit on the laptop (step 4).

Testing

On the server, every command with GOTOOLCHAIN=go1.27.4:

  • go test ./... passes.
  • go vet ./... (also with GOOS=windows) and staticcheck ./... are clean.
  • govulncheck ./...: "No vulnerabilities found."
  • npm install, npm run check (0 errors, 0 warnings) and npm run build pass. The lockfile was not committed.
  • wails3 build builds, and the app starts under Xvfb.
  • go run ./cmd/mpckit-cli -load testdata/device/DemoFile.xpj -name LabelCheck -out <tmp> -mute B2=3 prints A1 … B2 in its summary.

On the laptop (PowerShell, in the repo):

  1. git fetch; git checkout a1-labels
  2. cd frontend; npm run check; cd ..: 0 errors, 0 warnings.
  3. wails3 dev: load testdata\device\DemoFile.xpj.
    • Pads tab: the grid shows A1–A4 and the pad panel shows "A1".
    • Sequences tab: the grid and panel show "A1" and "A2", and the sequence names are still "Intro" and "Sequence 02".
  4. At the default window size, nothing scrolls and nothing is cut off on either tab.
  5. Drag A1 onto A5. The notes warning names "A1" and "A5". Then use Move to pad / Copy to pad: the picker and its confirm dialog use "A1" style too.
  6. Add a sequence in an empty slot, such as B5. Its panel shows "B5", and its default name is "Sequence 21".
  7. go run ./cmd/mpckit-cli -load testdata\device\DemoFile.xpj -name LabelCheck -out $env:TEMP: the summary lists A1 … B2. Then delete LabelCheck.xpj and LabelCheck_[ProjectData] from $env:TEMP.