- Publish job was overriding runner env with empty string via secrets ref
- Build job could fail on dirty workdir from previous failed run
- Runner env already provides GITEA_NPM_TOKEN — no secrets store needed
- Add publish-packages job to CI workflow (runs after build-and-test)
- Publish 13 remaining packages to Gitea (56 total, up from 43)
- Update act_runner token to read+write scope
- Fix package counts throughout migration doc (43 → 56)
- Update CI status: all 10/10 repos now have CI workflows
- Add package inventory section (§15.1)