forked from HAL9000/cleveragents-core
task/ci-matrix-strategy-python-versions
8 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
921c13f410 |
fix(agents): restore server mode + prompt_async supervisor launch from 9bbec0e6
Restores the working OpenCode server mode + curl-based async supervisor launch functionality from commit |
||
|
|
074c472e36
|
build(agents): restructure product-builder as supervisor launcher, force prompt_async everywhere
The product-builder was ignoring prompt_async instructions and implementing tickets directly because its identity was "autonomous product builder that handles everything." The LLM absorbed this framing and defaulted to doing the work itself rather than launching supervisors. Root cause fix — two structural changes applied to product-builder AND all 5 pool supervisors: 1. IDENTITY REFRAME: The product-builder is now explicitly a "Supervisor Launcher and Monitor" — not a "product builder." The opening section states: "YOUR ONLY JOB: Launch 13 supervisor sessions via bash curl and keep them alive." A prominent DO NOT list prohibits implementing issues, creating PRs, writing code, or doing any work a supervisor handles. The file was compressed from 975 to 312 lines — prerequisites are brief, the supervisor launch is the first major section, and the monitoring loop is the primary content. 2. WORKER AGENTS REMOVED FROM TASK PERMISSIONS: Every pool supervisor had its worker agent in the task permissions, giving the LLM the choice to use the Task tool instead of prompt_async. Now removed: - issue-implementor: removed ca-issue-worker - ca-continuous-pr-reviewer: removed ca-pr-self-reviewer, ca-pr-checker - ca-uat-tester: removed ca-uat-tester (self-dispatch) - ca-bug-hunter: removed ca-bug-hunter (self-dispatch) - ca-test-infra-improver: removed ca-test-infra-improver (self-dispatch) Each supervisor now has a prominent framing block at the top: "YOU ARE A POOL SUPERVISOR. You dispatch workers via bash curl prompt_async. Worker agents have been REMOVED from your task permissions." Non-worker task permissions preserved (ca-ref-reader, ca-spec-reader, ca-new-issue-creator, etc.) for legitimate one-shot subagent calls. |
||
|
|
9bbec0e698
|
build(agents): prompt_async for pool supervisors, session resume, bot signatures, cleanup agent
Four changes in one commit across 27 agent files: 1. POOL SUPERVISOR PROMPT_ASYNC: All 4 pool supervisors (issue-implementor, ca-continuous-pr-reviewer, ca-uat-tester, ca-bug-hunter) now dispatch their internal workers via the OpenCode Server's prompt_async endpoint instead of the Task tool. This eliminates the wait_for_all bottleneck at the supervisor level — workers run independently, and a 10-second polling loop detects completions and immediately refills vacant slots. Added curl/sleep bash permissions where needed. Each supervisor keeps N workers running at all times with zero idle slots. 2. SESSION RESUME INSTEAD OF CLEANUP: The product-builder and all 4 pool supervisors now RESUME existing sessions from a previous interrupted run instead of aborting them. Phase C.0 queries the server for sessions titled "[CA-AUTO] supervisor:*" and adopts any that are still active into the monitoring loop. Pool supervisors similarly adopt existing "[CA-AUTO] worker-*" sessions. This enables "continue where you left off" — restarting the product-builder reconnects to running supervisors and workers rather than duplicating them. 3. DEDICATED CLEANUP AGENT: New ca-session-cleanup.md primary agent for explicit fresh-start cleanup. Run this BEFORE the product-builder when you want to abort all previous sessions and start completely fresh. It finds all "[CA-AUTO]" sessions, aborts them, and deletes them. This is the ONLY way to kill old sessions — the product-builder never does it automatically. 4. BOT SIGNATURES: All 26 agents that post content to Forgejo now include a mandatory "Bot Signature" section requiring every comment, issue body, PR description, and review to end with: --- **Automated by CleverAgents Bot** Supervisor: <category> | Agent: <agent-name> 24 agents have hardcoded categories. 2 shared agents (ca-new-issue-creator, ca-epic-planner) use a parameter-based category from their caller's prompt. |
||
|
|
eee51b7d54
|
build(agents): use prompt_async for fire-and-forget supervisor launch + bash sleep for real waiting
Two fundamental architectural changes that solve the "supervisor exits and
never gets relaunched" problem:
1. PROMPT_ASYNC LAUNCH: The product-builder no longer uses the Task tool to
launch supervisors. The Task tool blocks until ALL parallel tasks return,
meaning if one supervisor exits, the product-builder can't relaunch it
until all 10 others also exit. Instead, supervisors are now launched via
the OpenCode Server HTTP API's POST /session/:id/prompt_async endpoint,
which returns 204 immediately (true fire-and-forget). The product-builder
then enters a bash-driven monitoring loop that checks session status
every 60 seconds via curl and relaunches any dead supervisor instantly
— independently of whether the other 10 are still running.
Requires: opencode started with --port 4096 (fixed known port).
Added curl and sleep to product-builder's bash allow list.
2. BASH SLEEP FOR GENUINE WAITING: All 11 supervisors now use the Bash
tool with "sleep N" (and explicit timeout > sleep duration) for real
blocking waits between polling cycles. Previously, pseudocode "wait N
minutes" was interpreted by the LLM as "I'm done, return to caller" —
causing supervisors to exit after their first idle cycle. The bash sleep
call genuinely blocks the agent for the specified duration, then the
agent resumes its loop. Every supervisor has a prominent instruction
block explaining this mechanism and warning against returning to caller.
All idle break/exit conditions removed across all 11 supervisors.
Supervisors now loop forever: poll Forgejo → do work → bash sleep → repeat.
Changes across 12 agent definitions:
- product-builder: Phase C.2 rewritten to use curl + prompt_async.
Phase C.3 rewritten as bash sleep + curl monitoring loop (checks every
60s, relaunches dead supervisors, checks convergence every 10 min).
Phase C.4 simplified to cleanup only.
- All 11 supervisors: Added "CRITICAL: Bash Sleep" instruction block.
Replaced all pseudocode "wait N" with bash("sleep N", timeout=N*1.5).
Removed all idle break/exit conditions — agents now sleep and re-poll
instead of exiting.
|
||
|
|
52bfb1658a |
build(agents): remove all retry limits — agents never give up
Every finite retry cap in the agent system has been replaced with infinite retry + diagnostic logging. The system now self-corrects indefinitely rather than giving up and leaving work incomplete. Changes across 9 agent definitions: - ca-pr-self-reviewer: Merge retry changed from `for attempt in 1..3` to `WHILE True` with exponential backoff (10s → 5 min cap). Only exits the retry loop on success or merge conflict (which requires implementor rebase, not more retries). - ca-continuous-pr-reviewer: Removed the `attempts >= 5` give-up block that posted "manual intervention required" and stopped retrying. PRs are now retried indefinitely with a diagnostic comment every 10 attempts. - issue-implementor: Removed the "2 retries then permanently failed" budget. Failed issues are always re-queued. Every 3 consecutive failures posts a diagnostic comment on the Forgejo issue and resets the approach (clears prior attempt context to break out of repeating failure patterns). Removed the `skipped` list entirely — no issue is ever skipped. - product-builder: Forgejo API retry changed from "3 times then halt" to "indefinitely with exponential backoff, cap 5 min." Only halts on auth revocation (HTTP 401/403). Worker failure docs updated to reflect the issue-implementor's infinite retry policy. - ca-pr-checker, ca-timeline-updater, ca-spec-updater, ca-project-bootstrapper, ca-docs-writer: Git push conflict retry changed from "up to 3 times" to "indefinitely with rebase." Added reclone fallback: after every 5 consecutive push failures, the clone is deleted and recreated fresh to recover from corrupted git state. NOT changed (already correct): - ca-subtask-loop: 3-retry transient error classification is a heuristic for deciding when to escalate model tier. The loop itself already says "NEVER give up" and runs indefinitely at opus tier. - ca-human-liaison: Already says "Never exit voluntarily." |
||
|
|
3db9113bac |
build(agents): replace rounds-based orchestration with continuous watchdog model
The product-builder was acting as a workflow orchestrator that ran supervisors in sequential "rounds" (launch all → wait for ALL to finish → check convergence → re-launch). This caused three problems: 1. Supervisors were treated as batch jobs, not services — they ran once and exited, leaving gaps in coverage between rounds. 2. The product-builder blocked on wait_for_all(), meaning if one supervisor ran for hours, all others were dead during that time. 3. Coordination flowed through the product-builder (passing data between supervisors) instead of through Forgejo. The new model treats the product-builder as a process supervisor (like systemd). Its only jobs are: launch all 11 supervisors in a single parallel batch, keep them alive (re-launch on exit), and periodically check convergence by querying Forgejo. It never coordinates between supervisors — they self-coordinate exclusively through Forgejo issues, PRs, and comments. Changes across 11 agent definitions: - product-builder: Replaced Phase C.2/C.3 rounds loop with watchdog loop (wait_for_any + re-launch). Added mandatory pre-flight checklist and post-dispatch validation requiring all 11 supervisors. Removed all "round" variables and batch-wait semantics. - issue-implementor: Added 60-minute idle polling loop after queue drains — polls Forgejo for new issues every 60s before exiting, allowing it to pick up UAT bugs and human-created issues. - ca-continuous-pr-reviewer: Increased idle exit from 50 polls (~25 min) to 300 polls (~150 min). - ca-backlog-groomer: Increased from 30 cycles/5 clean to 200 cycles/ 20 clean before exit. - ca-bug-hunter: Increased idle tolerance from 5 waits (~5 min) to 60 waits (~60 min). - ca-uat-tester: Increased idle tolerance from 5 waits (~5 min) to 60 waits (~60 min). - ca-architecture-guard, ca-spec-updater, ca-docs-writer, ca-timeline-updater: Converted from one-shot agents to continuous services with monitoring loops that re-check for new code/changes at 10-30 minute intervals and exit after 100-300 minutes idle. - ca-agent-evolver: Clarified idle exit timing (~150 min). |
||
|
|
a0f3999362 |
build(agents): restructure for async pool supervision, PR merge lifecycle, and human interaction
Overhauls the agent orchestration architecture to solve three systemic issues: 1. PARALLELISM: Replaces the N-instances-per-stream-type model with a pool-supervisor pattern. Product-builder now launches ONE supervisor per stream type, each managing N workers internally. Eliminates batch-and-wait tail latency where 15 finished agents waited for 1 slow one. UAT tester and bug hunter gain dual-mode operation (pool supervisor + worker) with self-dispatch for parallel batches of narrow-scope workers. 2. PR MERGE LIFECYCLE: Fixes PRs being reviewed but never merged. PR self- reviewer now uses force_merge (no approval count required), checks CI status before merge, uses merge_when_checks_succeed for pending CI, and retries 3x on failure. Continuous PR reviewer converted to pool supervisor dispatching N parallel reviews, with approved-but-unmerged tracking and 5-attempt merge retry budget. Stale threshold increased from 5 to 25 min. 3. HUMAN INTERACTION: New ca-human-liaison agent continuously monitors Forgejo for developer activity (comments, issues, reviews), responds with context-aware replies, triages new issues with full authority, decomposes epics into child issues, fills epic/legendary gaps, and coordinates spec changes through human-approved PR workflow. Additionally adds ca-agent-evolver for self-improvement: analyzes agent performance patterns and proposes targeted modifications to agent definitions via PRs with 'needs feedback' label (human must approve). Backlog groomer gains epic/legendary completeness analysis (passes 9-10) to proactively create missing child issues for parent tickets with gaps. All agent permission cross-references verified consistent. |
||
|
|
0db70b9514
|
build: further expanded opencode agents for better parallelism and better isolation between agents environments |