Introduce a separate tenant-apply contract that describes what a future live apply would be allowed to touch, what prerequisites it would require, and what stays explicitly manual or out of scope.
---
Build: pass | Tests: pass — 28 passed (1 file)
Keep tenants as logical platform identities, preserve human display names while normalizing system ids, and add a dry-run removal path plus stronger registry validation.
---
Build: pass | Tests: pass — 28 passed (3 files)
- justfile: add [group] attributes (9 groups), 6 new recipes (migrate,
skill-validate, skill-validate-all, verify-agent-jails, pull, post-update)
- README.md: add 'just' to prerequisites and pkg install lines
- CONTRIBUTING.md: rewrite dev setup around 'just', add prerequisite
- AGENTS.md: replace all npm run references with just equivalents
- Handoff docs: use just commands for all deploy steps
- Public/internal docs: normalize remaining npm run → just
---
Build: pass | Tests: not run (Linux)
- Updated justfile to use npx for tsc, prettier, and vitest commands (they're not in PATH)
- Fixed race condition in controlplane-aider-runner.ts where logStream could receive writes after end()
- Added 'ended' flag to ensure final markers are written exactly once
- Wait for 'finish' event before resolving promise to ensure logs are flushed
- Fixed test timeout configuration syntax for Vitest 4
This fixes the JUST-COMMAND-RUNNER handoff validation on FreeBSD.
Pre-existing: timeout test still fails due to slow process termination on FreeBSD.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
---
Build: pass | Tests: FAIL — Tests 7 failed | 926 passed (933)
Add a justfile that mirrors all npm scripts as discoverable recipes.
Just is additive — npm scripts remain untouched. Includes convenience
combos (check, pre-commit) and variadic args for setup/install.
Also adds 'just' to host baseline package list and README.
---
Build: pass | Tests: not run (Linux)