Branch: build-cleanup → main
PR 8 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.
A committed lockfile (S6).
frontend/package-lock.json is now in the repository, so every build installs the same package versions. npm ci installs exactly what it lists.npm install, under the new .npmrc setting below. Every package comes from registry.npmjs.org..npmrc (bajdev, 2026-11-13).
minimum-release-age=10080 is pnpm's setting. npm ignored it and warned "Unknown project config … will stop working in the next major version" on every install.min-release-age=7, npm's own setting (in days). npm 11 enforces it whenever it picks versions, as npm install and npm update do: it won't take a version published less than 7 days ago. npm ci installs the lockfile as it is.No server mode and no Docker (S6, M8).
build:server and run:server tasks are removed, and so are their entries in the root Taskfile.yml. Server mode would have served the bound methods over HTTP.build:docker, run:docker and setup:docker tasks are removed. There is no build/docker folder, so they could not have run anyway.setup:docker built the wails-cross image, which the Windows, macOS and Linux Taskfiles used to cross-compile cgo builds. Since you build natively on each system, that path is gone too:
build task now always builds natively.wails3 task --list-all shows no server or Docker task.build/config.yml (M8). The commented-out ios block, the fileAssociations sample and other: My Other Data are removed. The header comment no longer mentions fileAssociations.
Service.Version() removed (M7). Nothing called it; the frontend gets the version from About(). The bindings are regenerated.
wav package comment (R1). It said the package "does not decode audio", but DecodeFile does. It now describes ReadFile, Validate and DecodeFile.
npm install. The Wails install step (common:install:frontend:deps:npm) runs npm install, not npm ci. With a lockfile that matches package.json, that installs the locked versions and leaves the file alone; a full wails3 build on the server left it byte-for-byte unchanged. I kept npm install so wails3 dev doesn't reinstall everything each time.common:ios:device:list, common:ios:run:device);cfBundleIconName comment in build/config.yml.
Say if you want them gone too.
docs/build-plan.md still lists Version() in its M4 API sketch, which I left as history, like PR 5's notes.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."frontend: npm ci from the lockfile ("added 51 packages"), then npm run check (0 errors, 0 warnings) and npm run build. No npm warnings.wails3 build builds, the lockfile is unchanged afterwards, and the app starts under Xvfb.wails3 task --list-all: no server or Docker tasks.wails3 task darwin:build, wails3 task windows:build CGO_ENABLED=1 and wails3 task linux:build ARCH=arm64 each stop with their message.On the laptop (PowerShell, in the repo):
git fetch; git checkout build-cleanupcd frontend; npm ci; npm run check; cd ..: npm ci installs without the "Unknown project config" warning, and the check shows 0 errors, 0 warnings. If your npm is too old to know min-release-age, it warns about that setting instead and the rest still works. The server's npm 11.16 knows it; updating npm (npm install -g npm@11) fixes the warning.wails3 build: it builds, and git status shows no change to frontend\package-lock.json.bin\mpckit.exe: About shows "Version 0.5.2" (the version changes in PR 9).wails3 task --list-all | Select-String "server|docker": no output.