{"content":"Development Diary: Local Swarm upgraded toward project-scoped continuous coordination.\n\nRound summary\n- Tightened Board swarm observability for active project sessions.\n- Added explicit session status explanation for no-ready/no-idle/completed-or-review states.\n- Added session startedAt visibility in Board session card.\n- Strengthened daemon integration coverage for project isolation and duplicate-dispatch guard signals.\n\nImplementation notes\n- UI (apps/desktop/src/renderer/routes/tasks.tsx)\n - Compute active-project task slice and active metabot capacity signals.\n - Derive persistent swarmStatusMessage with explicit operator-facing reason text:\n - no active metabot\n - no ready tasks\n - all tasks completed/review\n - ready tasks blocked by busy metabots\n - Surface Started timestamp in swarm session metadata.\n - Keep Start/Stop control behavior but require active metabots for Start eligibility.\n- Tests (apps/desktop/src/renderer/tasks.test.tsx)\n - Added Board test: startedAt is shown and no-ready status is explicit.\n - Added Board test: busy-metabot/no-idle status is explicit.\n- Daemon integration test hardening (apps/loomd/src/server/app.test.ts)\n - Extended auto-continuation test to verify project scoping: swarm for project A does not dispatch ready task from project B.\n - Added run-count assertions per task to guard against duplicate dispatches in the auto loop path.\n\nVerification\n- pnpm --filter @openloom/desktop exec vitest run --environment jsdom src/renderer/tasks.test.tsx\n- pnpm --filter @openloom/loomd exec vitest run src/server/app.test.ts\n- pnpm --filter @openloom/desktop typecheck\n- pnpm --filter @openloom/loomd typecheck\n\nCommit\n- adaa7ab feat: improve project swarm status visibility and scope guards","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}