Worker Queue

Generated 2026-06-21 13:45:01 UTC · LAN 192.168.50.10:8787 · Tailscale 100.98.146.114:8787

Rocky decision

{
  "updated_at": "2026-06-21T13:45:01.279420+00:00",
  "decider": "rocky",
  "mode": "symphony-style-local-file-queue",
  "anti_churn": {
    "max_turns_default": 6,
    "max_review_cycles_default": 2,
    "same_group_concurrency_default": 1,
    "telegram_detail": "concise_only"
  },
  "decision": "idle_collect_context",
  "reason": "no inbox work; continue health/report collection",
  "counts": {
    "inbox": 0,
    "running": 0,
    "done": 9,
    "failed": 10
  },
  "next_candidate": null,
  "blocked": [],
  "review_recent": [
    {
      "bucket": "done",
      "id": "job-20260504-181702-autonomous-openclaw-check",
      "file": "/data/ai-stack/cockpit/bridge/done/job-20260504-181702-autonomous-openclaw-check",
      "agent": "unknown",
      "priority": "normal",
      "objective": "",
      "queue_status": "done",
      "approval_pending": false,
      "mtime": 1777907946.0
    },
    {
      "bucket": "done",
      "id": "job-20260504-160050-autonomous-openclaw-check",
      "file": "/data/ai-stack/cockpit/bridge/done/job-20260504-160050-autonomous-openclaw-check",
      "agent": "unknown",
      "priority": "normal",
      "objective": "",
      "queue_status": "done",
      "approval_pending": false,
      "mtime": 1777899774.0
    },
    {
      "bucket": "done",
      "id": "job-20260504-144924-autonomous-openclaw-check",
      "file": "/data/ai-stack/cockpit/bridge/done/job-20260504-144924-autonomous-openclaw-check",
      "agent": "unknown",
      "priority": "normal",
      "objective": "",
      "queue_status": "done",
      "approval_pending": false,
      "mtime": 1777895487.0
    },
    {
      "bucket": "done",
      "id": "job-20260504-144634-autonomous-openclaw-check",
      "file": "/data/ai-stack/cockpit/bridge/done/job-20260504-144634-autonomous-openclaw-check",
      "agent": "unknown",
      "priority": "normal",
      "objective": "",
      "queue_status": "done",
      "approval_pending": false,
      "mtime": 1777895195.0
    },
    {
      "bucket": "done",
      "id": "job-20260504-144342-autonomous-openclaw-check",
      "file": "/data/ai-stack/cockpit/bridge/done/job-20260504-144342-autonomous-openclaw-check",
      "agent": "unknown",
      "priority": "normal",
      "objective": "",
      "queue_status": "done",
      "approval_pending": false,
      "mtime": 1777895144.0
    }
  ]
}

Queue

# Symphony Worker Queue

Updated: 2026-06-21T13:45:01.279420+00:00

## Rocky decision

- Decision: `idle_collect_context`
- Reason: no inbox work; continue health/report collection
- Counts: inbox=0, running=0, done=9, failed=10

## Anti-churn defaults
- Rocky is decider; Ali is interrupted only for hard approval gates.
- Same concurrency group default: 1.
- Worker max turns: 6.
- Review/fix cycles: 2, then accept / narrow / block.
- Full details stay here/dashboard; Telegram stays concise.

## Active / queued jobs
- None

## Recent review/completed artifacts
- `done` · `job-20260504-181702-autonomous-openclaw-check` · unknown
- `done` · `job-20260504-160050-autonomous-openclaw-check` · unknown
- `done` · `job-20260504-144924-autonomous-openclaw-check` · unknown
- `done` · `job-20260504-144634-autonomous-openclaw-check` · unknown
- `done` · `job-20260504-144342-autonomous-openclaw-check` · unknown
- `done` · `job-20260504-131036-openclaw-smoke` · unknown
- `done` · `job-20260504-125942-openclaw-maintenance-dryrun` · unknown
- `done` · `job-20260504-125901-openclaw-maintenance-dryrun` · unknown
- `done` · `job-20260504-124413-rog-health-summary` · infrastructure-steward
- `failed` · `job-20260504-144634-autonomous-openclaw-check` · openclaw-worker-router
- `failed` · `job-20260504-181702-autonomous-openclaw-check` · openclaw-worker-router
- `failed` · `job-20260504-160050-autonomous-openclaw-check` · openclaw-worker-router
- `failed` · `job-20260504-144924-autonomous-openclaw-check` · openclaw-worker-router
- `failed` · `job-20260504-144342-autonomous-openclaw-check` · openclaw-worker-router
- `failed` · `job-20260504-131036-openclaw-smoke` · openclaw-worker-router
- `failed` · `job-20260504-125942-openclaw-maintenance-dryrun` · openclaw-maintenance-reporter
- `failed` · `job-20260504-125901-openclaw-maintenance-dryrun` · openclaw-maintenance-reporter
- `failed` · `job-20260504-124325-rog-health-summary` · infrastructure-steward
- `failed` · `job-20260504-124350-rog-health-summary` · infrastructure-steward

Policy

# Symphony-Style Worker Queue Policy

Updated: 2026-05-06T12:27:03+03:00

## Purpose

Adopt the useful part of OpenAI Symphony: a visible ticket queue, worker ownership, bounded loops, evidence bundles, and review states. This does **not** make Ali the day-to-day queue manager. Rocky is the decider/conductor.

## Roles

- **Ali**: sets broad intent and approves gated actions only.
- **Rocky/Hermes**: decides whether a request becomes a task, chooses the worker, sets priority/limits, merges related work, and decides when evidence is enough.
- **OpenClaw/Codex/Hermes workers**: execute bounded jobs and produce artifacts, not endless chat loops.
- **Cockpit dashboard**: shows queue state, approvals, evidence, and blockers without long Telegram dumps.

## Queue states

- `backlog`: captured, not yet selected.
- `ready`: actionable with enough context.
- `in_progress`: owned by a worker.
- `review`: worker output exists and Rocky reviews evidence.
- `done`: accepted by Rocky or completed safely.
- `blocked`: missing dependency or approval gate.
- `failed`: ended with preserved logs/artifacts.
- `cancelled`: intentionally stopped or superseded.

## Rocky decider rules

Rocky should decide internally unless the decision crosses a hard gate.

Autonomous decisions allowed:
- create/merge/reorder internal tasks;
- choose shell/file-first vs Hermes/Codex/OpenClaw worker;
- choose Mac vs ROG based on resource fit;
- split one broad request into a small number of tasks;
- mark stale/duplicate jobs as failed-stale or superseded while preserving artifacts;
- accept low-risk internal documentation/dashboard/script changes after verification.

Ask Ali only for:
- destructive personal-data operations;
- credential/secret changes or copying;
- gateway cutover or production service changes;
- public exposure, posting, DNS/tunnel/port-forward;
- purchases/paid API usage/subscriptions;
- live trading or XRP policy changes;
- genuine product/business preference when no safe default exists.

## Anti-churn / loop limits

Default limits unless overridden:
- `max_turns`: 6 per worker job.
- `max_review_cycles`: 2. After two review/fix cycles, Rocky must either accept, narrow the task, or mark blocked with a short reason.
- `max_concurrency_group`: 1 for the same repo/service; 2 for independent report-only/research tasks.
- `worker_timeout_seconds`: 600 for coding; 180 for health/report-only probes; shorter if OpenClaw backoff is active.
- No repeated OpenClaw hammering after timeout/rate/auth/fallback classifications; use backoff and shell-first collection.

## Evidence bundle required before `done`

For coding/dashboard/script tasks:
- changed paths / diff summary;
- tests or syntax checks run and result;
- screenshot/live URL/page byte checks for UI work;
- rollback notes;
- known risks and next gated item, if any.

For research/report tasks:
- sources or local artifact paths;
- concise conclusion;
- confidence and open questions;
- recommended next action.

## Telegram behavior

Do not paste full queue reports into Telegram. Send only:
- decision made;
- current queue health;
- approvals needed, if any;
- dashboard URL.

Full details live in cockpit files and dashboard pages.