Skip to content

v3.5.5 — three-agent autoloop + embedded dashboard

Choose a tag to compare

@Enderfga Enderfga released this 11 May 08:51
· 127 commits to main since this release

Added — three-agent autoloop architecture

Replaces the previous single-threaded phase machine. Three persistent agents:

  • Planner (Opus) — your chat interface; owns strategy, writes plan.md / goal.json, decides when to push you out-of-band.
  • Coder (Sonnet) — receives directive, applies change, runs the evaluator, emits structured iter_complete.
  • Reviewer (Sonnet, sandboxed cwd) — distrustful audit; advance / hold / rollback per iter.

Plugin tools: autoloop_start, autoloop_chat, autoloop_status, autoloop_list, autoloop_stop, autoloop_reset_agent. Planner controls runs via fenced ```autoloop JSON blocks (notify_user, spawn_subagents, send_directive, pause_loop, resume_loop, terminate, update_push_policy, write_plan_committed, write_goal_committed).

Push policy: silent on iter-done-ok; pushes on target_hit, 2-iter regression, 2-iter reviewer reject, phase error, 30-min stall, or decision-needed. 5-min dedup. Channels configured via env vars (AUTOLOOP_WECHAT_RECIPIENT, AUTOLOOP_WECHAT_ACCOUNT, AUTOLOOP_WHATSAPP_RECIPIENT) — unset channels are silently skipped; email via push-api-skill is the final tier.

Auto-compact: per-agent thresholds (Planner 80%, Coder/Reviewer 70%) on getStats().contextPercent; /compact dispatched with a role-specific preservation hint.

Added — embedded dashboard

Single-page vanilla dashboard at GET /dashboard. Two tabs:

  • Autoloop: list of runs in left rail; click into one for a 3-pane view (Planner ⇄ user + chat composer / Coder activity / Reviewer verdicts). Top bar shows iter/status/push count; bottom strip shows recent pushes.
  • Council: list of council sessions + live agent-response stream with round-by-round verdicts and consensus marker.

Backend HTTP/SSE: GET /autoloop/list, /autoloop/<id>/state, /autoloop/<id>/push_log, /autoloop/<id>/events, and the same shape for /council/{list,<id>/state,<id>/events}.

Changed

  • Build now cleans dist/ before tsc so renamed sources can't leave stale artefacts.

See CHANGELOG.md for full notes.