VibeAI Docs
Intelligence

Reviews

Meta-reviewer course corrections and recurring failure patterns.

Web UI → Agent Review (GET /api/reviews) is where the self-healing loop’s output surfaces: when a turn stalls or fails, the loop monitor captures its trajectory and a cold-context meta-reviewer files a course correction — where the path bent, what changes next time, and a lesson the agent recalls in future runs. See Harness for how the monitoring itself works.

Individual reviews

Agent Review page with a recurring pattern and a corrected review

Each entry in the main list shows: timestamp, a verdict badge, the session ID and reason, the misdirection (what went wrong), the correction (what should happen instead), and — if one was filed — a lesson ID that’s now recalled automatically in future runs. A counter at the top (“N incident(s) awaiting review”) reflects any incidents the meta-reviewer hasn’t processed yet.

If nothing has gone wrong yet, the page just says so — reviews only appear after the loop monitor actually catches a stalled or failing turn.

Recurring patterns

A separate Recurring patterns section appears only when the pattern miner has clustered the same failure across two or more sessions — deterministic clustering, no LLM in this detection path, and read-only: nothing here has touched code yet. Each pattern card shows:

  • a failing/passing verdict badge and a status badge (new → proposed → approved → pr_open, or dismissed)
  • occurrence count and first/last-seen timestamps
  • once proposed: a summary, root cause, and a proposed fix
3+ occurrences → a fix gets proposed

Below 3 occurrences a pattern just sits as “recurring, no proposal yet.” At 3+ it’s picked up on the next sweep and gets a summary/root cause/proposed fix.

Approve or dismiss

A proposed pattern shows Approve — run sandbox fix and Dismiss. Approve calls POST /api/signatures/:id/approve, which spawns aios resident approve <id> in the background — a sandboxed patch/test/PR attempt that can take minutes; you’re pinged on Telegram when it finishes. Dismiss calls PUT /api/signatures/:id with {status: "dismissed"} and drops it from the list.

Nothing merges automatically

A successful sandbox attempt opens a PR — a link appears on the card — but it is never merged automatically. It waits for your review like any other PR.

Note

Approving is a real, running action (it starts the sandbox pipeline), so the dashboard asks you to confirm before firing it. Dismissing is just a status label change and is instant.