Loop-Stale Prevention (Dispatch Watchdog)
2026-03-09
Three-layer stale prevention: Paw 5-min SLA after Rex verdict, check-rex-pending.sh cron watchdog, last_progress_at in active-task.json
Javus Long-Term OAuth Token
2026-03-22
claude setup-token generates long-lived OAuth token (~1yr); javus-channels-shadow.sh auto-injects CLAUDE_CODE_OAUTH_TOKEN on startup; eliminates manual /login
Javus Task Stale-Watchdog (30-min gate)
2026-04-10
LaunchAgent fires every 5 min; checks active-task.json last_progress_at; alerts to task thread if running >30 min with no progress update
Minions v1.0 (SQLite Task Queue, Javus Edge)
2026-04-20
BullMQ-semantics SQLite queue for Paw→Javus dispatch; crash-safe (pending→dispatched→running→completed/failed); send-to-javus-minions.sh producer + minions-consumer.sh lifecycle
Minions v2.0 (Rex Edge Added, Both Durable)
2026-04-20
Adds role column to minions.db; send-to-rex-minions.sh gives Paw→Rex the same crash-resilient queue as Javus; Rex Discord listener retired, Rex tmux-only
Zen Edge (Paw→Zen Durable Dispatch)
2026-05-13
send-to-zen-minions.sh (role=zen, dev:4.1) extends minions queue to Zen (WeChat/Discord creative tasks); shim-lock guard prevents collision with Hermes-Zen dev:4.1 sharing
Minions v7 (Dispatch-Ledger + Cancel)
2026-05-21
Adds 'cancelled' status + cancel_reason column (v7 schema migration); minions-cancel.sh with exit-2 sentinel; idempotent cancel; late complete on cancelled job → reject