- hooks-config: a probe the bulk cap refused gets ONE bounded re-probe past the cap (probeBeforeTouching), and whatever is still unknown is skipped. The per-spawn hook and statusLine helpers used to fall back to an unbounded lstat/readFile there, which on a dead workspace never settled and could take the last threadpool workers (and hang the boot hook sweep). New test: cap engaged, stat/lstat/readFile hanging on two more paths; both helpers return. - describeUnknownPath()/unknownPathReason(): POST /api/sessions, quick-start and GET /api/cases/:name now say a folder was not checked (other mounts are still not answering) instead of blaming a healthy folder at the stall ceiling. errorCodes unchanged. - #535 x #516: Create in a custom folder probes the parent through the bounded probe before realpath/stat/lstat/readdir touch it; an unknown parent is 422 OPERATION_FAILED (UNREACHABLE) within the probe timeout. New test. - Docs: MAX_STALLED default is 2 (follows UV_THREADPOOL_SIZE), CaseInfo .unreachable covers a refused probe, the boot sweep skips an unanswering workspace, a CLAUDE.md gotcha for bounded probes, verbs.md documents the 422 (plugin mirror synced), api-reference documents the custom-folder 422. - Tests: the launcher case-lookup describe is no longer nested in the Grok block, and the cap-below-ceiling test no longer depends on an inherited UV_THREADPOOL_SIZE / CODEMAN_PATH_PROBE_MAX_STALLED. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
codeman (Claude Code plugin)
The agent skill for Codeman, the self-hosted mission control for AI coding agents. With it, a Claude Code session running inside Codeman can start other sessions, prompt them, block until they finish, read their answers and clean up, in plain English instead of API calls.
/plugin marketplace add Ark0N/Codeman
/plugin install codeman@codeman
The skill acts only inside a Codeman-managed session (CODEMAN_MUX=1) and refuses everywhere else, so installing it globally costs nothing for unrelated sessions.
Pick one install route. Codeman can inject the skill into each case itself (App Settings, Agent Skill), and codeman skill install writes a user-level copy; a Claude Code that has one of those AND this plugin lists the skill twice, as codeman and codeman:codeman. Both work, the second is just noise.
This directory is a mirror of skills/codeman in the main repository, kept byte-identical by scripts/sync-plugin.mjs and pinned by a test. Edit the source there, never here. npm run check:plugin (repo root, needs the claude CLI) checks the mirror and validates both manifests. Source, issues and the rest of Codeman: https://github.com/Ark0N/Codeman