Branch: plan-bound-surface → main
docs/review-fixes-plan.md gets a new PR 8b (bound-surface), between PR 8 and PR 9, part of 0.5.3.
Found while checking PR 5 on main (d66ff0a): //wails:ignore only keeps a method out of the generated bindings. Wails 3.1.0 registers every exported method of the bound Service at runtime by reflection, so the window can still call LoadPath and AssignSamplePath by name with any path.
LoadPath, AssignSamplePath, Dirty, SetCloser, AudioMiddleware) to an unbound type that main.go uses; add TestBoundMethods, which pins the list of bound methods; add CancelExport() so a declined replace forgets the export target.Call.ByName(".../app.Service.LoadPath", path) is rejected, and the laptop checks pass.No code changes.
Merge this before the PR 8b agent starts. PR 9 must wait for PR 8b.
Documentation only. Checked on 2026-11-13: a throwaway build of main (f56cd2d) whose main.ts called Call.ByName("git.monoexp.com/bajdev/mpckit/internal/app.Service.LoadPath", ".../testdata/device/Demo02.xpj") loaded the project (the call returned its state). Nothing from that build was committed.