Context
A real no-babysitting test failed when the supervisor passed the project repo path as worker skillRoots. The runtime rejected it with: skill root contains no skill directories.
Local patch prepared
- Validate supervisor-requested skillRoots before bridge.spawnAgent.
- Pass only directories that contain SKILL.md or immediate child skill directories with SKILL.md.
- Ignore invalid skill roots and record worker_skill_roots_ignored execution events instead of killing the worker spawn.
- Tighten worker_spawn tool description so the supervisor omits skillRoots for normal project work.
Local files changed
- src/server/supervisor/index.ts
- src/server/supervisor/tools.ts
- tests/supervisor/index.test.ts
Validation
- PASS: pnpm exec vitest run tests/supervisor/index.test.ts -t "skill roots"
- PASS: pnpm exec eslint src/server/supervisor/index.ts src/server/supervisor/tools.ts tests/supervisor/index.test.ts
- NOTE: full tests/supervisor/index.test.ts still has an unrelated existing failure in lets the supervisor send a generated user-visible message before ending its turn: persisted message order is supervisor,user vs expected user,supervisor.
Follow-up
Add watchdog/budget limits for worker startup and no-output loops as a separate hardening pass.
Context
A real no-babysitting test failed when the supervisor passed the project repo path as worker skillRoots. The runtime rejected it with: skill root contains no skill directories.
Local patch prepared
Local files changed
Validation
Follow-up
Add watchdog/budget limits for worker startup and no-output loops as a separate hardening pass.