- [ ] Update check script: - [x] shellcheck on shell scripts - [x] `go vet` on go files - [x] `golangci-lint` on go files - [x] Run `go fmt` on all .go files - [ ] Eventually, run unit tests - [x] Reimplement fixup.sh - [x] run shfmt on all shell scripts (and the files they `source`) - [x] Run `go fmt` on all .go files - [x] Run ~~prettier~~ biome on all .ts files and maybe others - [x] Adapt master program so that it reads configuration from command line args instead of from environment variables - Should have sane defaults - Adding new arguments should be easy and obvious - [x] Add wrapper script to run master program (so that various assumptions related to relative paths are safer) - [ ] move `master-bin` into a subdir like `master/cmd` or whatever is idiomatic for golang programs; adapt `master` wrapper shell script accordingly - [ ] Add unit tests all over the place. - ⚠️ Huge task - needs breakdown before starting - [ ] flesh out the `sync.sh` script - [ ] update framework-managed node - [ ] update framework-managed pnpm - [ ] update pnpm-managed deps - [ ] rebuild golang programs - [ ] If the number of workers is large, then there is a long lapse between when you change a file and when the server responds - One solution: start and stop workers serially: stop one, restart it with new code; repeat - Slow start them: only start a few at first