task/ci-matrix-strategy-python-versions
285 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
507c8faa90 |
chore(agents): improve ca-subtask-loop — add meaningful-change verification
CI / lint (pull_request) Successful in 35s
CI / typecheck (pull_request) Successful in 48s
CI / security (pull_request) Successful in 1m3s
CI / build (pull_request) Successful in 24s
CI / helm (pull_request) Successful in 23s
CI / quality (pull_request) Successful in 3m44s
CI / unit_tests (pull_request) Successful in 9m56s
CI / e2e_tests (pull_request) Successful in 16m41s
CI / integration_tests (pull_request) Successful in 22m54s
CI / docker (pull_request) Successful in 11s
CI / coverage (pull_request) Successful in 11m18s
CI / status-check (pull_request) Successful in 1s
CI / benchmark-publish (pull_request) Has been skipped
CI / benchmark-regression (pull_request) Successful in 57m47s
Approved proposal: #2443 Pattern: workflow_fix Evidence: PR #1513 contained only a single comment line as its entire diff, yet passed all quality gates (lint, typecheck, tests, coverage) and was submitted for review, consuming 8 independent reviewer slots. All quality gates verify code quality, not code existence — a change that adds only comments passes every gate. Fix: Add Step 1.5 (Meaningful Change Verification) between the implementer invocation and test-writing step. This checks git diff output for functional code changes and rejects attempts that produce empty, comment-only, or trivially small diffs (< 3 functional lines), immediately escalating to the next tier without wasting quality gate and reviewer capacity. ISSUES CLOSED: #2443 |
||
|
|
72e0db2592 |
chore(ci): capture nox output as CI artifacts and teach agents to read them
CI / lint (push) Has been cancelled
CI / security (push) Has been cancelled
CI / typecheck (push) Has been cancelled
CI / quality (push) Has been cancelled
CI / benchmark-publish (push) Has been cancelled
CI / status-check (push) Has been cancelled
CI / unit_tests (push) Has been cancelled
CI / integration_tests (push) Has been cancelled
CI / e2e_tests (push) Has been cancelled
CI / coverage (push) Has been cancelled
CI / benchmark-regression (push) Has been cancelled
CI / build (push) Has been cancelled
CI / docker (push) Has been cancelled
CI / helm (push) Has been cancelled
All 8 nox-running CI jobs in .forgejo/workflows/ci.yml now capture
stdout+stderr to build/nox-<job>-output.log via `2>&1 | tee` and upload
the log as a named Forgejo artifact (if: always(), retention-days: 30).
Artifact names follow the pattern ci-logs-<job>:
ci-logs-lint, ci-logs-typecheck, ci-logs-security, ci-logs-quality,
ci-logs-unit-tests, ci-logs-integration-tests, ci-logs-e2e-tests,
ci-logs-coverage
Seven agent definitions updated with a CI Log Artifacts section:
ca-pr-checker.md: artifact table + curl download instructions; Step 2
now downloads the relevant artifact before dispatching fix subagents.
ca-lint-fixer.md, ca-typecheck-fixer.md, ca-unit-test-runner.md,
ca-integration-test-runner.md, ca-coverage-checker.md,
ca-pr-self-reviewer.md: each receives a section explaining which
artifact corresponds to its domain and how to use it.
Design notes:
- tee (not redirect) preserves output in CI job logs AND captures to file
- if: always() ensures artifacts are available even when the job fails
- Multi-session jobs (lint, security) use tee -a to append to one file
- Existing coverage-reports artifact preserved alongside ci-logs-coverage
ISSUES CLOSED: #2750
|
||
|
|
2c736373cc |
fix(agents): use correct IssueMeta schema for Forgejo dependency API
CI / helm (push) Successful in 33s
CI / lint (push) Successful in 3m49s
CI / build (push) Successful in 3m50s
CI / quality (push) Successful in 4m14s
CI / typecheck (push) Successful in 4m26s
CI / security (push) Successful in 4m35s
CI / benchmark-regression (push) Has been skipped
CI / unit_tests (push) Failing after 6m32s
CI / docker (push) Has been skipped
CI / e2e_tests (push) Failing after 14m44s
CI / coverage (push) Successful in 13m11s
CI / integration_tests (push) Failing after 21m29s
CI / status-check (push) Failing after 1s
CI / benchmark-publish (push) Successful in 1h12m37s
The Forgejo blocks/dependencies REST API requires the IssueMeta schema
with owner, repo, and index fields — not the undocumented dependency_id
field that was previously used. All 10 curl examples across 6 agent
definitions were using {"dependency_id": N} which returns a 404
IsErrRepoNotExist error. Updated to the correct format:
{"owner": "<owner>", "repo": "<repo>", "index": N}
Files updated:
- ca-new-issue-creator.md (2 occurrences)
- ca-pr-api-creator.md (1 occurrence)
- ca-state-reconciler.md (1 occurrence)
- ca-project-owner.md (1 occurrence)
- ca-backlog-groomer.md (2 occurrences)
- ca-epic-planner.md (3 occurrences)
ISSUES CLOSED: #2750
|
||
|
|
77427bd7d3 |
chore(agents): add deep session introspection to system watchdog
CI / lint (push) Failing after 18s
CI / helm (push) Successful in 23s
CI / security (push) Successful in 1m1s
CI / build (push) Successful in 3m20s
CI / quality (push) Successful in 3m41s
CI / typecheck (push) Successful in 3m59s
CI / coverage (push) Has been skipped
CI / benchmark-regression (push) Has been skipped
CI / unit_tests (push) Failing after 9m30s
CI / docker (push) Has been skipped
CI / e2e_tests (push) Failing after 15m22s
CI / integration_tests (push) Failing after 21m4s
CI / status-check (push) Failing after 1s
CI / benchmark-publish (push) Successful in 1h12m40s
Enhance the system watchdog with OpenCode Server API session introspection to read actual supervisor conversations, tool calls, and todo lists. Upgrade Audit 6 (Zombie Detection) to use message-based analysis instead of only checking Forgejo activity — reads last 5 messages from each supervisor session to detect sleep-only patterns, error loops, and identical repeated tool calls. Add Audit 11 (Quick Session Spot-Check) running every 5-minute cycle: scans the 3 most recently active sessions for critical policy violations including force_merge usage, direct pushes to master, and type:ignore suppressions in written code. Add Audit 12 (Deep Session Introspection) running every 30 minutes: full analysis of all 16 supervisor sessions reading last 10 messages and todo lists. Detects misbehavior patterns, progress stalls via todo list analysis, conversation health metrics (error rates, sleep ratios), context exhaustion signals, and cross-agent conflicts (multiple agents touching the same PR or issue). Update action dispatch to handle new finding types: force_merge_detected, direct_push_to_master, stuck_supervisor, looping_supervisor, high_error_rate, context_exhaustion, and cross_agent_pr_conflict. |
||
|
|
8c13e63c75
|
chore(agents): add system watchdog, remove force_merge, fix 9 systemic agent issues
CI / lint (push) Failing after 24s
CI / helm (push) Successful in 24s
CI / build (push) Successful in 3m17s
CI / quality (push) Successful in 3m49s
CI / typecheck (push) Successful in 3m55s
CI / security (push) Successful in 4m8s
CI / coverage (push) Has been skipped
CI / benchmark-regression (push) Has been skipped
CI / unit_tests (push) Failing after 6m14s
CI / docker (push) Has been skipped
CI / e2e_tests (push) Has been cancelled
CI / integration_tests (push) Has been cancelled
CI / benchmark-publish (push) Has been cancelled
CI / status-check (push) Has been cancelled
Add ca-system-watchdog (16th supervisor) for continuous system health monitoring with quality gate auditing, zombie detection, ticket state reconciliation, and priority enforcement. Add ca-quality-enforcer and ca-state-reconciler as one-off fix agents dispatched by the watchdog. Critical fix: remove all force_merge: true usage from ca-pr-self-reviewer which was bypassing branch protection and allowing PRs to merge with failing CI. Replace with strict CI-gating merge logic that respects branch protection rules per CONTRIBUTING.md. Update product-builder to launch 16 supervisors, strengthen anti-return language with explicit context hygiene, add tracking ticket lifecycle management (one open at a time, closed on completion). Update ca-project-bootstrapper with strict branch protection config requiring status-check CI context, 2 approvals, and dismiss stale reviews. Fix label set to match CONTRIBUTING.md exactly. Update issue-implementor with priority gate enforcing lowest-milestone-first and critical-bugs-first ordering. Update ca-backlog-groomer with closed issue state reconciliation, PAT for REST API dependency operations, and health signaling. Update ca-spec-updater with proactive full-scan mode. Add health signaling and context self-management to 7 continuous supervisors to prevent zombie sessions from context exhaustion. Strengthen state label transitions in ca-pr-self-reviewer, ca-pr-api-creator, ca-issue-state-updater, and ca-backlog-groomer to ensure closed issues always have correct terminal state labels. Add Forgejo PAT and REST API curl templates for dependency link creation to ca-backlog-groomer and ca-project-owner since the MCP does not support dependency manipulation. |
||
|
|
dd363e2a45 |
docs(agents): clarify product-builder execution model and prevent implementation confusion
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Failing after 19s
CI / helm (pull_request) Successful in 38s
CI / integration_tests (push) Has been cancelled
CI / e2e_tests (push) Has been cancelled
CI / security (push) Has been cancelled
CI / lint (push) Has been cancelled
CI / typecheck (push) Has been cancelled
CI / build (push) Has been cancelled
CI / quality (push) Has been cancelled
CI / unit_tests (push) Has been cancelled
CI / benchmark-publish (push) Has been cancelled
CI / status-check (push) Has been cancelled
CI / coverage (push) Has been cancelled
CI / benchmark-regression (push) Has been cancelled
CI / docker (push) Has been cancelled
CI / helm (push) Has been cancelled
CI / build (pull_request) Successful in 3m18s
CI / quality (pull_request) Successful in 3m42s
CI / typecheck (pull_request) Successful in 3m57s
CI / security (pull_request) Successful in 4m7s
CI / coverage (pull_request) Has been skipped
CI / benchmark-regression (pull_request) Has been skipped
CI / unit_tests (pull_request) Failing after 6m13s
CI / docker (pull_request) Has been skipped
CI / e2e_tests (pull_request) Failing after 15m23s
CI / integration_tests (pull_request) Failing after 21m8s
CI / status-check (pull_request) Failing after 1s
Added critical warning block and step-by-step checklist to product-builder.md to ensure the agent always follows the correct workflow: 1. Launch 15 supervisors via curl to http://localhost:4096/session/:id/prompt_async 2. Monitor them with bash sleep loop (60 seconds between checks) 3. Re-launch any that exit Key changes: - ⚠️ Critical execution model warning at top (what to do / what NOT to do) - 📊 Execution flow diagram showing all phases - ✅ Step-by-step Phase C checklist (C.1: Pre-flight, C.2: Launch, C.3: Monitor) - 🔒 Clearer permission blocks with explicit bans on implementation agents - 📝 Comments explaining why supervisors use curl not Task tool This prevents the product-builder from trying to implement issues directly, which is the supervisors' job. Product-builder is a process supervisor (like systemd), not a worker. |
||
|
|
8866c58bd4 |
fix(agents): prevent backlog groomer from closing PRs as duplicates of their tracking issues
CI / lint (push) Successful in 26s
CI / quality (push) Successful in 44s
CI / build (push) Successful in 22s
CI / typecheck (push) Successful in 51s
CI / security (push) Successful in 54s
CI / helm (push) Successful in 33s
CI / unit_tests (push) Failing after 7m7s
CI / docker (push) Has been skipped
CI / coverage (push) Successful in 10m53s
CI / e2e_tests (push) Failing after 14m48s
CI / integration_tests (push) Failing after 22m3s
CI / status-check (push) Failing after 1s
CI / benchmark-regression (push) Has been skipped
CI / benchmark-publish (push) Successful in 1h12m31s
Agent evolver identified a critical systematic pattern: - Pattern: The backlog groomer was closing PRs as 'duplicates' of their linked tracking issues. A PR containing 'Closes #N' was being treated as a duplicate of issue #N, when it is actually the implementation delivery vehicle for that issue. - Evidence: At least 12 PRs were incorrectly closed (#1219, #1236, #1247, #1269, #1267, #953, #1198, #1220, #1237, #1238, #1246, #1248) — all with the same 'Duplicate Detected' comment pattern from groomer-1. - Fix: Added explicit instructions to skip PRs during duplicate detection, added a guard in the analysis loop pseudocode, and added a rule in the Important Rules section. This change requires human approval before taking effect. ISSUES CLOSED: #2180 |
||
|
|
bbfa5bef01 |
Merge pull request 'chore(agents): add open PR awareness to UAT tester duplicate avoidance' (#1446) from improvement/uat-tester-check-open-prs into master
CI / lint (push) Failing after 20s
CI / quality (push) Successful in 44s
CI / security (push) Failing after 46s
CI / typecheck (push) Failing after 52s
CI / coverage (push) Has been skipped
CI / build (push) Successful in 16s
CI / helm (push) Successful in 23s
CI / unit_tests (push) Failing after 1m55s
CI / docker (push) Has been skipped
CI / benchmark-publish (push) Has been cancelled
CI / e2e_tests (push) Has been cancelled
CI / integration_tests (push) Has been cancelled
CI / status-check (push) Has been cancelled
CI / benchmark-regression (push) Has been cancelled
|
||
|
|
51fcd13220 |
Merge pull request 'chore(agents): add pre-PR rebase step to issue worker to prevent stale conflicts' (#1407) from improvement/issue-worker-rebase-before-pr into master
CI / lint (push) Failing after 20s
CI / quality (push) Successful in 40s
CI / typecheck (push) Failing after 47s
CI / security (push) Failing after 50s
CI / coverage (push) Has been skipped
CI / unit_tests (push) Failing after 1m59s
CI / docker (push) Has been skipped
CI / helm (push) Has been cancelled
CI / benchmark-publish (push) Has been cancelled
CI / e2e_tests (push) Has been cancelled
CI / build (push) Has been cancelled
CI / integration_tests (push) Has been cancelled
CI / status-check (push) Has been cancelled
CI / benchmark-regression (push) Has been cancelled
|
||
|
|
f6ba8fee56 |
chore(agents): add pre-PR rebase step to issue worker
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 3m20s
CI / quality (pull_request) Successful in 3m46s
CI / typecheck (pull_request) Successful in 4m1s
CI / build (pull_request) Successful in 14s
CI / security (pull_request) Successful in 4m12s
CI / helm (pull_request) Successful in 29s
CI / unit_tests (pull_request) Failing after 6m40s
CI / docker (pull_request) Has been skipped
CI / coverage (pull_request) Successful in 13m36s
CI / e2e_tests (pull_request) Failing after 15m43s
CI / integration_tests (pull_request) Failing after 22m0s
CI / status-check (pull_request) Failing after 1s
CI / benchmark-regression (pull_request) Successful in 55m5s
Agent evolver identified a systematic pattern: - Pattern: PR stale/conflict cascade - Evidence: 11+ PRs were approved but closed without merge due to conflicts. PRs #1248, #1247, #1237, #1236, #1220, #1219, #1238, #1246, #1269 were all bulk-closed as stale. Reviewer notes on #1248, #1220, #1219, #1252 explicitly mention 'merge blocked by conflicts'. With 16 parallel workers, master moves fast and branches created minutes earlier are already behind by the time PRs are created. - Fix: Add a rebase-onto-latest-master step (Phase 3, Step 3.0) in ca-issue-worker before committing and creating the PR. This ensures the branch is current when the PR is opened, dramatically reducing the chance of merge conflicts when the reviewer processes it. This change requires human approval before taking effect. |
||
|
|
81319b575a |
Merge pull request 'fix(agents): add two-phase claim protocol to prevent duplicate PR reviews' (#1326) from improvement/pr-reviewer-double-claim-prevention into master
CI / lint (push) Failing after 19s
CI / typecheck (push) Failing after 50s
CI / security (push) Failing after 41s
CI / quality (push) Successful in 32s
CI / coverage (push) Has been skipped
CI / benchmark-regression (push) Has been skipped
CI / build (push) Successful in 30s
CI / unit_tests (push) Failing after 2m7s
CI / docker (push) Has been skipped
CI / helm (push) Successful in 24s
CI / e2e_tests (push) Has been cancelled
CI / integration_tests (push) Has been cancelled
CI / benchmark-publish (push) Has been cancelled
CI / status-check (push) Has been cancelled
|
||
|
|
9c7876a913 |
chore(agents): add open PR awareness to UAT tester duplicate avoidance
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Failing after 18s
CI / typecheck (pull_request) Failing after 46s
CI / security (pull_request) Failing after 48s
CI / build (pull_request) Successful in 17s
CI / helm (pull_request) Successful in 23s
CI / unit_tests (pull_request) Failing after 2m1s
CI / quality (pull_request) Successful in 3m46s
CI / coverage (pull_request) Has been skipped
CI / docker (pull_request) Has been skipped
CI / benchmark-regression (pull_request) Has been skipped
CI / e2e_tests (pull_request) Failing after 14m6s
CI / integration_tests (pull_request) Failing after 22m22s
CI / status-check (pull_request) Failing after 1s
Agent evolver identified a systematic pattern: - Pattern: UAT tester filing bugs for features already being implemented - Evidence: 25+ UAT bugs filed for TUI MainScreen features (#1329-#1355) that already had open implementation PRs (#1219, #1236, #1237, #1238, #1246, #1247, #1248, etc.). The tester reported 'missing sidebar', 'missing tab bar', 'missing escape navigation' etc. while PRs implementing these exact features were open and under review. - Fix: Add step 4 to duplicate avoidance requiring the tester to check for open PRs before filing 'missing feature' bugs. This change requires human approval before taking effect. |
||
|
|
28ddfe3873 |
Merge pull request 'chore(agents): add finding validation requirements to bug hunter' (#1445)
CI / benchmark-publish (push) Has been cancelled
CI / typecheck (push) Has been cancelled
CI / security (push) Has been cancelled
CI / lint (push) Has been cancelled
CI / quality (push) Has been cancelled
CI / unit_tests (push) Has been cancelled
CI / integration_tests (push) Has been cancelled
CI / e2e_tests (push) Has been cancelled
CI / coverage (push) Has been cancelled
CI / benchmark-regression (push) Has been cancelled
CI / build (push) Has been cancelled
CI / docker (push) Has been cancelled
CI / status-check (push) Has been cancelled
CI / helm (push) Has been cancelled
chore(agents): add finding validation requirements to bug hunter Adds mandatory finding validation checklist to ca-bug-hunter agent prompt to reduce false-positive and speculative issue filings. Reviewed-by: ca-pr-self-reviewer |
||
|
|
a538713134 |
refactor(agents): enforce strict curl-only permissions for all supervisors
CI / lint (push) Failing after 35s
CI / quality (push) Successful in 45s
CI / security (push) Failing after 47s
CI / typecheck (push) Failing after 48s
CI / coverage (push) Has been skipped
CI / helm (push) Successful in 23s
CI / unit_tests (push) Failing after 2m8s
CI / docker (push) Has been skipped
CI / build (push) Successful in 3m20s
CI / integration_tests (push) Has been cancelled
CI / e2e_tests (push) Has been cancelled
CI / benchmark-publish (push) Has been cancelled
CI / benchmark-regression (push) Has been cancelled
CI / status-check (push) Has been cancelled
BREAKING CHANGE: Supervisors can no longer use Task tool to launch workers
Major refactor of the permission model for product-builder and all 15
continuous supervisors to enforce strict separation: supervisors MUST use
curl/prompt_async via bash to launch workers, and CANNOT use the Task tool.
Key Changes:
1. Product-Builder Permissions (product-builder.md):
- Removed ALL Task permissions for supervisors (previously had 17)
- Kept Task permissions ONLY for 7 one-shot agents:
ca-project-bootstrapper, ca-ref-reader, ca-issue-finder,
ca-session-persister, ca-product-verifier, ca-milestone-reviewer,
ca-final-reporter
- Restricted bash to: echo, curl, sleep, jq only
- Removed Phase B (Architecture) and Phase C.1 (Planning)
- Updated to launch 15 supervisors (up from 13)
2. New Continuous Supervisors:
- ca-architect: Converted from one-shot to continuous supervisor
Monitors for spec needs, new milestones, ambiguities
- ca-epic-planner: Converted from one-shot to continuous supervisor
Monitors for milestones without issues, incomplete epics
3. All 15 Supervisors - Standardized Permissions:
- Removed ALL Task permissions for launching workers
- Workers MUST be launched via curl to OpenCode Server prompt_async API
- Added 'jq *' for JSON parsing (replacing python3)
- Restricted bash to specific commands only (deny all, allow specific)
- Git commands restricted to specific operations (clone*, fetch*, etc.)
- Directory operations (cd, mkdir, rm -rf) only where needed
4. Supervisor-Specific Updates:
- issue-implementor: Removed ca-issue-worker task permission
- ca-continuous-pr-reviewer: Added git + directory ops, removed worker tasks
- ca-uat-tester: Added read-only file/git commands, removed self-dispatch
- ca-bug-hunter: Restricted git to read-only, removed self-dispatch
- ca-test-infra-improver: Added read-only commands, removed self-dispatch
- ca-human-liaison: Removed ca-epic-planner/ca-architect task permissions
- ca-agent-evolver: Added git + directory operations
- ca-architecture-guard: Added read-only + git clone operations
- ca-spec-updater: Added git + directory operations
- ca-backlog-groomer: Removed ca-epic-planner task permission
- ca-docs-writer: Added git + directory operations
- ca-timeline-updater: Added git + directory operations
- ca-project-owner: Minimal permissions (curl, jq, sleep only)
Impact:
- Proper separation of concerns: supervisors orchestrate, workers execute
- No possibility of supervisors blocking on Task tool calls
- True fire-and-forget worker launching via prompt_async
- Consistent permission model across all 15 supervisors
- Maximum parallelism with proper isolation
Architecture now enforces: Product-builder → 15 supervisors → N workers
All launched via curl/prompt_async, NO Task tool for supervisors.
|
||
|
|
921c13f410 |
fix(agents): restore server mode + prompt_async supervisor launch from 9bbec0e6
CI / integration_tests (push) Has started running
CI / e2e_tests (push) Has started running
CI / status-check (push) Blocked by required conditions
CI / benchmark-publish (push) Has started running
CI / build (push) Successful in 18s
CI / lint (push) Failing after 21s
CI / helm (push) Successful in 23s
CI / quality (push) Successful in 41s
CI / typecheck (push) Failing after 46s
CI / coverage (push) Has been skipped
CI / benchmark-regression (push) Has been skipped
CI / security (push) Failing after 50s
CI / unit_tests (push) Failing after 1m49s
CI / docker (push) Has been skipped
Restores the working OpenCode server mode + curl-based async supervisor launch functionality from commit |
||
|
|
629154488e |
Merge pull request 'chore(agents): consolidate UAT supervisor progress reports into comments' (#1545) from improvement/uat-tester-consolidate-progress-reports into master
CI / build (push) Successful in 17s
CI / lint (push) Failing after 24s
CI / helm (push) Successful in 24s
CI / security (push) Failing after 52s
CI / typecheck (push) Failing after 54s
CI / coverage (push) Has been skipped
CI / benchmark-regression (push) Has been skipped
CI / unit_tests (push) Failing after 1m51s
CI / docker (push) Has been skipped
CI / quality (push) Has been cancelled
CI / benchmark-publish (push) Has been cancelled
CI / e2e_tests (push) Has been cancelled
CI / integration_tests (push) Has been cancelled
CI / status-check (push) Has been cancelled
|
||
|
|
074c472e36
|
build(agents): restructure product-builder as supervisor launcher, force prompt_async everywhere
CI / build (push) Successful in 18s
CI / lint (push) Failing after 18s
CI / helm (push) Successful in 24s
CI / typecheck (push) Failing after 54s
CI / security (push) Failing after 54s
CI / coverage (push) Has been skipped
CI / benchmark-regression (push) Has been skipped
CI / unit_tests (push) Failing after 1m51s
CI / docker (push) Has been skipped
CI / quality (push) Successful in 3m41s
CI / integration_tests (push) Has been cancelled
CI / benchmark-publish (push) Has been cancelled
CI / e2e_tests (push) Has been cancelled
CI / status-check (push) Has been cancelled
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. |
||
|
|
50357e435c |
chore(agents): consolidate UAT supervisor progress reports into comments
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 21s
CI / lint (pull_request) Failing after 36s
CI / helm (pull_request) Successful in 39s
CI / security (pull_request) Failing after 53s
CI / typecheck (pull_request) Failing after 1m0s
CI / coverage (pull_request) Has been skipped
CI / benchmark-regression (pull_request) Has been skipped
CI / unit_tests (pull_request) Failing after 2m6s
CI / docker (pull_request) Has been skipped
CI / quality (pull_request) Successful in 3m42s
CI / e2e_tests (pull_request) Failing after 12m54s
CI / integration_tests (pull_request) Failing after 21m11s
CI / status-check (pull_request) Failing after 5s
Approved proposal: #1483 Pattern: workflow_fix — UAT supervisor creates 13+ separate issues for progress reports instead of posting comments on a single tracking issue. Evidence: 13 separate [UAT-SUPERVISOR] Progress Report issues created in 65 minutes during v3.7.0 session, polluting the issue tracker. Fix: Create ONE tracking issue at startup, post all progress as comments. Also reduces report frequency from every 2 cycles to every 10 cycles. ISSUES CLOSED: #1483 |
||
|
|
5eb272b50f |
fix(agents): add two-phase claim protocol to prevent duplicate PR reviews
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 17s
CI / lint (pull_request) Failing after 19s
CI / helm (pull_request) Successful in 23s
CI / security (pull_request) Failing after 49s
CI / unit_tests (pull_request) Failing after 2m2s
CI / typecheck (pull_request) Successful in 3m57s
CI / coverage (pull_request) Has been skipped
CI / docker (pull_request) Has been skipped
CI / benchmark-regression (pull_request) Has been skipped
CI / quality (pull_request) Successful in 3m59s
CI / e2e_tests (pull_request) Failing after 16m26s
CI / integration_tests (pull_request) Failing after 22m22s
CI / status-check (pull_request) Failing after 1s
Agent evolver identified a systematic pattern: - Pattern: Multiple reviewer pool instances claiming the same PR within seconds of each other, leading to duplicate reviews and wasted resources. - Evidence: PRs #1219, #1236, #1247, #1198 were all double-claimed by pr-reviewer-5 and pr-reviewer-4 within 28-64 seconds of each other. The existing 'check before claiming' protocol has a race window that is too small when multiple pools dispatch simultaneously. - Fix: Added a two-phase claim protocol — after posting a claim comment, wait 5 seconds and re-check for competing claims. Ties are broken by lexicographic comparison of claim tokens. This change requires human approval before taking effect. |
||
|
|
d2322b3206
|
build(agents): add test infrastructure improver and project owner agents (13 supervisors)
CI / lint (push) Failing after 18s
CI / build (push) Successful in 20s
CI / helm (push) Successful in 23s
CI / security (push) Failing after 52s
CI / unit_tests (push) Failing after 1m50s
CI / quality (push) Successful in 3m42s
CI / typecheck (push) Successful in 3m56s
CI / coverage (push) Has been skipped
CI / docker (push) Has been skipped
CI / benchmark-regression (push) Has been skipped
CI / integration_tests (push) Has been cancelled
CI / e2e_tests (push) Has been cancelled
CI / benchmark-publish (push) Has been cancelled
CI / status-check (push) Has been cancelled
Adds two new agent types to the autonomous system, bringing the total from 11 to 13 supervisors launched by the product-builder via prompt_async. New agents: 1. ca-test-infra-improver (12th supervisor — pool with N workers): Dual-mode agent following the ca-bug-hunter pattern. In pool mode, dispatches N parallel workers via prompt_async to analyze 8 aspects of the testing infrastructure: CI execution time, coverage gaps, test architecture (BDD quality), flaky tests, CI pipeline optimization, test data quality, missing test levels (Behave/Robot/ASV per CONTRIBUTING.md), and dependency security. Workers file actionable Type/Testing or Type/Task issues. Hard constraint: never disables or weakens existing checks — only proposes additions and optimizations. Uses Gemini 2.5 Pro for large context. Follows all established patterns (clone isolation, bash sleep, prompt_async dispatch, session resume, bot signature). 2. ca-project-owner (13th supervisor — singleton, no pool): Acts as autonomous project owner. Continuously triages State/Unverified issues following CONTRIBUTING.md's 6-step triage process. Assigns MoSCoW labels (Must Have / Should Have / Could Have) based on the specification and milestone goals. Makes strategic priority decisions. Tags specific developers with questions in Forgejo comments (discovers expertise from git history and Forgejo assignments). Periodically re-evaluates MoSCoW labels as the project evolves. Follows up on unanswered questions after 48 hours. Single instance, not a pool — one project owner is sufficient. Uses Opus for nuanced strategic judgment. Launched via prompt_async like all other supervisors. Modified files: - product-builder.md: Updated from 11 to 13 supervisors in all locations (architecture table, Phase C.2 launch list with entries #12 and #13, validation count, checkpoint text, self-coordinate table). Added test-infra-pool to pool supervisors list and project-owner to singletons. - ca-human-liaison.md: Clarified MoSCoW responsibility split — the liaison only adjusts MoSCoW labels when relaying explicit human feedback. The ca-project-owner handles autonomous MoSCoW assignment. |
||
|
|
7e38aad929 |
build(agents): force prompt_async by removing supervisors from task permissions
CI / build (push) Successful in 17s
CI / lint (push) Failing after 19s
CI / helm (push) Successful in 30s
CI / quality (push) Successful in 35s
CI / security (push) Failing after 52s
CI / unit_tests (push) Failing after 1m46s
CI / typecheck (push) Successful in 3m57s
CI / coverage (push) Has been skipped
CI / docker (push) Has been skipped
CI / benchmark-regression (push) Has been skipped
CI / benchmark-publish (push) Has been cancelled
CI / integration_tests (push) Has been cancelled
CI / e2e_tests (push) Has been cancelled
CI / status-check (push) Has been cancelled
The product-builder was ignoring the prompt_async instructions and falling
back to the Task tool for launching supervisors. It was also only launching
a few supervisors instead of all 11 because the pseudocode was too abstract.
Root cause: All 11 supervisor agents were listed in the task permissions,
so the LLM had a choice between Task (familiar, simpler) and bash curl
(correct but unfamiliar). It chose Task every time.
Fix — three changes:
1. REMOVED all 11 supervisor agents from task permissions. The product-
builder physically cannot invoke them via the Task tool anymore. Only
one-shot agents remain in task permissions (ca-epic-planner,
ca-session-persister, ca-product-verifier, ca-ref-reader, etc.).
2. REWROTE Phase C.2 as concrete curl command templates instead of
abstract pseudocode. The agent now has the exact curl pattern to
copy-paste for each supervisor, with clear variable placeholders.
Added a mandatory validation step: wc -l the tracking file and
confirm exactly 11 entries before proceeding.
3. ADDED aggressive warnings at three levels:
- Top of file: bold mandatory notice about prompt_async
- Phase C.2: large boxed warning block prohibiting the Task tool
- Coordination rules: explicit statement that supervisors are
removed from task permissions
- Monitoring loop: reminder to use bash curl for re-launches
|
||
|
|
4ecf446360 |
build(agents): open bash permissions to allow complex commands
CI / build (push) Successful in 16s
CI / lint (push) Failing after 18s
CI / helm (push) Successful in 23s
CI / quality (push) Successful in 34s
CI / security (push) Failing after 50s
CI / unit_tests (push) Failing after 1m45s
CI / typecheck (push) Successful in 3m57s
CI / coverage (push) Has been skipped
CI / docker (push) Has been skipped
CI / benchmark-regression (push) Has been skipped
CI / e2e_tests (push) Failing after 14m21s
CI / integration_tests (push) Has been cancelled
CI / benchmark-publish (push) Has been cancelled
CI / status-check (push) Has been cancelled
Agents were failing when trying to run complex bash commands (curl with pipes to python3, multi-command pipelines, etc.) because their bash permissions were set to '"*": deny' with only specific simple patterns allowed (e.g., "curl *": allow). Shell pipelines like: curl -s http://localhost:4096/session | python3 -c "import json..." don't match any single allow pattern and get denied. Changed 17 agent files from restrictive bash permissions to '"*": allow'. This includes all agents that need to: - Run curl pipelines with python3 for prompt_async session management - Create Forgejo dependency links via REST API curl calls - Execute complex git operations with pipes - Run bash sleep for polling loops Only 3 truly read-only analysis agents remain restricted: ca-difficulty-evaluator, ca-implementation-reviewer, ca-issue-analyzer. These don't need bash access at all. |
||
|
|
3e9de4ca21 |
build(agents): enforce CONTRIBUTING.md label, milestone, and dependency compliance
CI / build (push) Successful in 18s
CI / helm (push) Successful in 22s
CI / lint (push) Failing after 24s
CI / security (push) Failing after 53s
CI / unit_tests (push) Failing after 1m48s
CI / quality (push) Successful in 3m44s
CI / typecheck (push) Successful in 3m58s
CI / coverage (push) Has been skipped
CI / docker (push) Has been skipped
CI / benchmark-regression (push) Has been skipped
CI / benchmark-publish (push) Has been cancelled
CI / integration_tests (push) Has been cancelled
CI / e2e_tests (push) Has been cancelled
CI / status-check (push) Has been cancelled
Issues and PRs created by agents were missing required labels, milestones,
and Forgejo dependency links per CONTRIBUTING.md. This commit adds explicit
API call instructions and a continuous compliance audit to fix the gaps.
Changes across 6 agent definitions:
- ca-new-issue-creator: Added curl bash permission. Added explicit
post-creation compliance steps: set labels (State/Unverified, Type/*,
Priority/*) via forgejo_add_issue_labels, set milestone via
forgejo_update_issue, create parent Epic dependency link via REST API
(POST /issues/{child}/blocks with parent Epic number — correct direction:
child blocks parent). Added compliance verification step.
- ca-epic-planner: Added curl bash permission. Added post-creation API
call checklists for both Epics (labels, Legendary link) and child issues
(labels, milestone, Epic dependency link, inter-issue dependency links).
Added compliance verification step.
- ca-backlog-groomer: Added curl and sleep bash permissions. Expanded
Pass 4 (Label Quality) to auto-fix missing labels (State, Type, Priority)
and milestones via Forgejo API. Added PR label/milestone compliance
checking. Added new Pass 9 (Dependency Link Compliance) to auto-fix
missing parent Epic links, PR-to-issue links, and wrong dependency
direction. Added new Pass 10 (Issue Body Compliance) to flag missing
Metadata, Subtasks, and Definition of Done sections.
- ca-pr-api-creator: Added curl bash permission. Replaced vague "add
dependency" instruction with explicit REST API curl call for creating
PR-blocks-issue dependency link. Added post-creation compliance
verification step.
- ca-agent-evolver: Added Priority/Backlog label and milestone assignment
to proposal issues.
- ca-spec-updater: Added Priority/Backlog label and milestone assignment
to proposal issues.
|
||
|
|
270160eca9
|
build(agents): add proposal issue gate before spec and agent-definition PRs
CI / build (push) Successful in 25s
CI / lint (push) Failing after 26s
CI / helm (push) Successful in 32s
CI / security (push) Failing after 52s
CI / unit_tests (push) Failing after 1m48s
CI / quality (push) Successful in 3m44s
CI / typecheck (push) Successful in 3m59s
CI / coverage (push) Has been skipped
CI / docker (push) Has been skipped
CI / benchmark-regression (push) Has been skipped
CI / integration_tests (push) Has been cancelled
CI / e2e_tests (push) Has been cancelled
CI / benchmark-publish (push) Has been cancelled
CI / status-check (push) Has been cancelled
Both the spec-updater and agent-evolver previously skipped straight to creating PRs with 'needs feedback' for proposed changes. The user needs a two-step human-approval workflow: Step 1: Agent creates a PROPOSAL ISSUE with 'needs feedback' label describing what it wants to change and why. No branch, no code changes. Step 2: Human reviews the issue and approves it (by removing 'needs feedback', adding 'State/Verified', or commenting with approval). Step 3: Agent detects approval, normalizes labels, creates branch + PR (also with 'needs feedback') implementing the approved change. Step 4: Human reviews the PR and merges it. Changes across 3 agent definitions: - ca-agent-evolver: Step 4 split into proposal issue creation (Step 4) and approved-proposal implementation (Step 5). Added pending_proposals and pending_prs state tracking. Approval detected via 3 signals: label removal, State/Verified addition, or human approval comment. - ca-spec-updater: Removed the minor/major classification and the "commit directly to master" path. ALL spec changes now go through proposal issues first (Step 6a creates issue, Step 7 monitors for approval). Added pending_spec_proposals and rejected_proposals state. Approval check runs every cycle before checking for new merged PRs. - ca-human-liaison: Added Step 4 guard — issues with 'needs feedback' label are NOT auto-verified. The liaison acknowledges them with a comment but does not change state labels. Only issues WITHOUT 'needs feedback' proceed to the normal auto-verify flow (now Step 5). |
||
|
|
b1a8289d57 |
chore(agents): add finding validation requirements to bug hunter
CI / lint (pull_request) Failing after 18s
CI / helm (pull_request) Successful in 23s
CI / build (pull_request) Successful in 24s
CI / security (pull_request) Failing after 50s
CI / unit_tests (pull_request) Failing after 1m47s
CI / benchmark-publish (pull_request) Has been skipped
CI / quality (pull_request) Successful in 3m43s
CI / typecheck (pull_request) Successful in 3m57s
CI / coverage (pull_request) Has been skipped
CI / docker (pull_request) Has been skipped
CI / benchmark-regression (pull_request) Has been skipped
CI / e2e_tests (pull_request) Failing after 15m58s
CI / integration_tests (pull_request) Failing after 21m21s
CI / status-check (pull_request) Failing after 1s
Agent evolver identified a systematic pattern: - Pattern: Bug hunter filing speculative/false-positive issues - Evidence: Issue #1408 filed a TLS/SSL bug caused by the agent using the wrong hostname (git.cleveragents.com vs git.cleverthis.com). Issue #1412 filed a vague 'review concurrency' audit request without reading any actual code. These waste groomer and implementor time. - Fix: Add mandatory validation checklist before filing any issue, requiring concrete code evidence and prohibiting speculative findings. This change requires human approval before taking effect. |
||
|
|
9bbec0e698
|
build(agents): prompt_async for pool supervisors, session resume, bot signatures, cleanup agent
CI / build (push) Successful in 17s
CI / lint (push) Failing after 18s
CI / helm (push) Successful in 23s
CI / security (push) Failing after 53s
CI / unit_tests (push) Failing after 1m48s
CI / quality (push) Successful in 3m44s
CI / typecheck (push) Successful in 3m56s
CI / coverage (push) Has been skipped
CI / docker (push) Has been skipped
CI / benchmark-regression (push) Has been skipped
CI / e2e_tests (push) Failing after 16m17s
CI / integration_tests (push) Has been cancelled
CI / benchmark-publish (push) Has been cancelled
CI / status-check (push) Has been cancelled
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. |
||
|
|
79403188f6
|
build(agents): add stale supervisor cleanup at startup to prevent duplicates
When the product-builder is interrupted mid-run (Ctrl+C, crash, timeout), supervisor sessions launched via prompt_async survive independently on the OpenCode server. Restarting the product-builder without cleanup creates duplicate supervisors — 22 agents competing for the same work, causing duplicate PR reviews, conflicting git pushes, and wasted resources. Added Phase C.0 (runs before planning or launching) that: 1. Queries GET /session for all server sessions 2. Filters for sessions with titles starting with "[CA-AUTO] supervisor:" 3. Aborts any that are still active via POST /session/:id/abort 4. Deletes the stale sessions via DELETE /session/:id 5. Cleans up the /tmp/ca-supervisor-sessions.env tracking file 6. Logs the cleanup count to the session state issue Also changed the supervisor session title convention from "supervisor: <name>" to "[CA-AUTO] supervisor: <name>" to reliably distinguish product-builder-managed sessions from user-created ones. |
||
|
|
eee51b7d54
|
build(agents): use prompt_async for fire-and-forget supervisor launch + bash sleep for real waiting
CI / build (push) Successful in 19s
CI / lint (push) Failing after 23s
CI / helm (push) Successful in 23s
CI / quality (push) Successful in 37s
CI / typecheck (push) Successful in 3m56s
CI / coverage (push) Has been skipped
CI / benchmark-regression (push) Has been skipped
CI / security (push) Successful in 4m14s
CI / unit_tests (push) Failing after 6m2s
CI / docker (push) Has been skipped
CI / integration_tests (push) Has been cancelled
CI / e2e_tests (push) Has been cancelled
CI / benchmark-publish (push) Has been cancelled
CI / status-check (push) Has been cancelled
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
CI / build (push) Successful in 22s
CI / helm (push) Successful in 30s
CI / lint (push) Successful in 3m19s
CI / quality (push) Successful in 4m6s
CI / typecheck (push) Successful in 4m15s
CI / security (push) Successful in 4m30s
CI / unit_tests (push) Failing after 5m41s
CI / docker (push) Has been skipped
CI / benchmark-publish (push) Has been cancelled
CI / e2e_tests (push) Has been cancelled
CI / integration_tests (push) Has been cancelled
CI / coverage (push) Has been cancelled
CI / benchmark-regression (push) Has been cancelled
CI / status-check (push) Has been cancelled
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
CI / helm (push) Successful in 28s
CI / build (push) Successful in 30s
CI / lint (push) Successful in 3m29s
CI / quality (push) Successful in 3m46s
CI / security (push) Successful in 4m6s
CI / typecheck (push) Successful in 4m13s
CI / unit_tests (push) Has been cancelled
CI / benchmark-publish (push) Has been cancelled
CI / integration_tests (push) Has been cancelled
CI / e2e_tests (push) Has been cancelled
CI / coverage (push) Has been cancelled
CI / benchmark-regression (push) Has been cancelled
CI / docker (push) Has been cancelled
CI / status-check (push) Has been cancelled
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
CI / build (push) Successful in 25s
CI / helm (push) Successful in 30s
CI / lint (push) Successful in 3m42s
CI / quality (push) Successful in 4m9s
CI / typecheck (push) Successful in 4m24s
CI / security (push) Successful in 4m35s
CI / unit_tests (push) Failing after 6m29s
CI / docker (push) Has been skipped
CI / e2e_tests (push) Failing after 16m49s
CI / coverage (push) Successful in 12m25s
CI / integration_tests (push) Has been cancelled
CI / benchmark-publish (push) Has been cancelled
CI / status-check (push) Has been cancelled
CI / benchmark-regression (push) Has been cancelled
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
CI / benchmark-publish (push) Waiting to run
CI / lint (push) Failing after 2s
CI / security (push) Failing after 2s
CI / quality (push) Failing after 2s
CI / unit_tests (push) Failing after 2s
CI / integration_tests (push) Failing after 1s
CI / e2e_tests (push) Failing after 1s
CI / helm (push) Failing after 2s
CI / build (push) Successful in 15s
CI / typecheck (push) Successful in 4m1s
CI / coverage (push) Has been skipped
CI / benchmark-regression (push) Waiting to run
CI / docker (push) Has been skipped
CI / status-check (push) Failing after 1s
|
||
|
|
c937abdc09
|
build: Fixed opencode agents so they dont accidentally delete PR body
CI / benchmark-publish (push) Waiting to run
CI / lint (push) Failing after 1s
CI / typecheck (push) Failing after 1s
CI / coverage (push) Has been skipped
CI / benchmark-regression (push) Waiting to run
CI / security (push) Failing after 1s
CI / quality (push) Failing after 2s
CI / unit_tests (push) Failing after 2s
CI / docker (push) Has been skipped
CI / integration_tests (push) Failing after 2s
CI / e2e_tests (push) Failing after 2s
CI / build (push) Failing after 1s
CI / helm (push) Failing after 2s
CI / status-check (push) Failing after 1s
|
||
|
|
ec83213294
|
build: Modified opencode agents to be more aggressive in being parallel | ||
|
|
d344989387 |
build: submited opencode agent files
CI / benchmark-publish (push) Waiting to run
CI / typecheck (push) Successful in 52s
CI / quality (push) Successful in 1m0s
CI / e2e_tests (push) Failing after 5s
CI / build (push) Failing after 4s
CI / security (push) Successful in 1m14s
CI / helm (push) Successful in 21s
CI / lint (push) Successful in 3m21s
CI / benchmark-regression (push) Waiting to run
CI / unit_tests (push) Successful in 5m50s
CI / docker (push) Successful in 1m21s
CI / coverage (push) Successful in 12m9s
CI / integration_tests (push) Successful in 24m55s
CI / status-check (push) Failing after 1s
|