Rooms registered as tribunal had no work_dir and no paired_projects row, so ensurePairedProject() returned null, no paired task was ever created, and only the owner ran — the reviewer/arbiter never fired (web-vstock and 4 other rooms). Add ensurePairedWorkspaceProvisioned(): defaults canonical work_dir to groups/<folder>, guarantees it is a standalone git repo with an initial commit (detected via a LOCAL .git so we never walk up into the EJClaw checkout and create a stray worktree), and upserts the paired_projects row. Wire it into setup/register.ts so every newly registered room is immediately usable by the full owner→reviewer→arbiter flow. Adds a regression test.
3.7 KiB
3.7 KiB