Commit graph

12 commits

Author SHA1 Message Date
Ahmed Allam
dc40345e26 test(agents): check the diff skill's own coverage lines, not the word 2026-10-24 21:02:27 +03:00
Ahmed Allam
fa3539cb75 fix(skills): the diff skill drops its coverage ledger instructions when the coverage tools are off 2026-10-24 21:02:27 +03:00
Ahmed Allam
aaf1f8c823 fix(agents): finish_scan drops its coverage reconciliation step when the coverage tools are off 2026-10-24 21:02:27 +03:00
Ian
898bbb4741 feat(agents): drop the coverage sections from skills and tool descriptions when the tools are off 2026-10-24 21:02:27 +03:00
Ian
5418c767a2 feat(agents): let callers turn off the coverage ledger tools 2026-10-24 21:02:27 +03:00
ian-at-strix
3a3855fc4f
feat(agents): let callers choose the report tool (#1550)
* feat(agents): let callers remove base tools from scan agents

* feat(agents): let callers choose the report tool instead of removing tools

* refactor(agents): name the report tool via the prompt template, not string replacement
2026-10-20 20:21:31 -04:00
ian-at-strix
62b496430d
feat(agents): let callers choose the top-level agent's finish tool (#1496)
Some checks failed
CI / package (push) Has been cancelled
CI / workflows (push) Has been cancelled
CI / python (push) Has been cancelled
CI / tui (push) Has been cancelled
CI / viewer (push) Has been cancelled
CI / ci-passed (push) Has been cancelled
2026-10-08 19:11:50 -04:00
ian-at-strix
03d2c6c168
fix: stop the run after finish_pr_review (#1451) 2026-10-05 16:25:33 -04:00
Ahmed Allam
16a316540c refactor(agents): replace respond_to_user with a text-free wait_for_user
Plain text is now the only channel to the user. wait_for_user takes no
arguments and only parks the agent, so a reply can no longer be written
twice (once as text, once as a tool argument). The driver bounces a
wait_for_user call that follows no assistant text back into recovery.
TUI and viewer render wait_for_user as the waiting marker alone and keep
rendering recorded respond_to_user events with their message.
2026-10-05 04:09:17 +03:00
Alex Schapiro
d6f2218756 Drop strict tool schemas on Claude routes 2026-08-20 23:12:23 +03:00
Ahmed Allam
1c1fa49961 refactor(tools): split wait_for_message into respond_to_user + wait_for_agents
One tool was doing three jobs (wait on the user, wait on other agents, and
- wrongly - wait for a long-running command), so the driver had to guess which
one an agent meant and used parent_id as the proxy: the root waits for a human,
everyone else waits for agents. That proxy is wrong, since the user can message
any agent from the TUI's agent tree.

Tool identity now carries the intent, and the coordinator records it as a
wait_kind that survives snapshot/restore:

  respond_to_user  -> wait_kind="user",   never auto-resumed (root or not)
  wait_for_agents  -> wait_kind="agents", auto-resumed on a 300s timer
  recovery exhaust -> wait_kind="stalled"

respond_to_user fuses the message and the yield into one call, so there is no
way to answer and then forget to stop - the two-step that gpt-4o-mini skipped
2/2 in live testing. Plain text still renders as before.

Auto-resume is also bounded now: an agent that re-parks after every timeout
burned a model turn every 300s for the rest of the scan (and, since parked
children notify their parent, spammed the parent's inbox on the same cycle).
After _MAX_IDLE_AUTO_RESUMES it stays parked until a real message arrives.
2026-08-02 02:15:51 +03:00
alex s
205e0b3707 Allow scan agent tool registration (#733) 2026-07-11 23:58:51 -04:00