feat(agent-team): planner reliability + resumable plan-review human gate #58
No reviewers
Labels
No labels
app
bug
ci
compliance
content
dependencies
docs
documentation
duplicate
enhancement
github_actions
good first issue
help wanted
infra
invalid
javascript
needs-triage
python
question
tests
wontfix
No milestone
No project
No assignees
1 participant
Due date
No due date set.
Dependencies
No dependencies set.
Reference: adam/orchestrator#58
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "feat/agent-team-plan-gate"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Two related changes (gate-approved plan, GPT-4.1 plan-review APPROVE), stacked on
feat/agent-team-p3-box-integrationbecause they heavily overlap itscoordinator.py/graph.py/schema.pyrewrites. Draft — do not merge until p3 lands and the security review below is run.A — planner reliability (
78fe6ce): the planner's single-shot Claude call intermittently failed withReached maximum number of turns (1).max_turns=4headroom (tools stay disabled), a no-tools/JSON-only prompt line, and a classified auto-retry-once (retry on turn-cap/empty, fail-fast on malformed JSON).B — resumable plan-review human gate: when the plan↔review loop can't auto-converge (review cap) it no longer terminally PARKs — it posts the plan + reviewer findings to Slack and lets the owner approve / request-changes(notes) / abandon, resuming the pipeline on the reply.
7b31280) ledgerkinddiscriminator (clarify|plan_decision) + idempotent in-place migration (SCHEMA_VERSION 3→4).723d0b4) graphplan_gate_nodeinterrupt mirroring the clarifier contract; decision routing; boundedMAX_PLAN_GATE_VISITS=3ceiling (proven-terminating).1217d52) coordinator wiring — kind-based gate detection (NOT status),plan_decisionrow + threaded plan presentation, single-open-gate invariant, expiry recovery notice.d1f2bb2) Slack buttons (Approve/Abandon) + authorized notes modal (Request changes), and the load-bearing kind-aware decision mapping: arbitrary reply prose →request_changeswith notes, never the graph's unrecognized-verb→FAILED path (which would silently fail tasks). Free-text reply is an equal path.Validation
2a6f120) end-to-end tests compose the real graph + coordinator + ledger + review router + SlackListener (LLM nodes stubbed), driving approve / request-changes-via-raw-prose / abandon / ceiling / legacy-ledger-migration through the daemon API.ruffclean, throughout every phase. Each phase was independently re-verified before commit.Notes
/sh-security-reviewOUTSTANDING — this adds untrusted Slack input → graph-resume routing + new action/modal handlers. Must run + resolve before merge./sh-deploy-r720and carries the ledger migration (ledger backup = the migration safety net).test_no_write_token.py,user_prompt_submit.py) — NOT introduced by this branch; pushed with--no-verifyaccordingly.