From 1031fd0fb18468aad3494d0f856b84cd414eff3f Mon Sep 17 00:00:00 2001 From: CleverThis Date: Tue, 14 Apr 2026 05:25:30 +0000 Subject: [PATCH 1/2] fix(agents): make bug-hunt-pool-supervisor tracking non-blocking to prevent initialization hangs --- .opencode/agents/bug-hunt-pool-supervisor.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.opencode/agents/bug-hunt-pool-supervisor.md b/.opencode/agents/bug-hunt-pool-supervisor.md index 101013c22..161bddef4 100644 --- a/.opencode/agents/bug-hunt-pool-supervisor.md +++ b/.opencode/agents/bug-hunt-pool-supervisor.md @@ -91,7 +91,7 @@ Each cycle: 4. **Monitor workers.** Count active workers, check for stuck sessions. -5. **Update tracking.** Every 3 cycles, create a status tracking issue via `automation-tracking-manager` with prefix `AUTO-BUG-POOL`. +5. **Update tracking (non-blocking).** Every 3 cycles, attempt to create a status tracking issue via `automation-tracking-manager` with prefix `AUTO-BUG-POOL`. This step is **best-effort** — if the call does not complete within a reasonable time or fails, skip it and continue to the next cycle. **Never block the main loop waiting for tracking.** Tracking is informational only; the supervisor's core function (module scanning and worker dispatch) must continue regardless. ## Finding Validation Gate @@ -126,3 +126,4 @@ Supervisor: Bug Hunt Pool | Agent: bug-hunt-pool-supervisor 7. **Apply labels via `forgejo-label-manager`.** Never apply labels directly or using the Forgejo MCP/task. All label operations must go through `forgejo-label-manager`. 8. **Exhaustive pagination for all list results.** Every tool call, REST/curl request, or any other command that returns a list must be treated as potentially paginated and incomplete. Always set `limit` to its maximum available value (use `limit=50` for Forgejo MCP tools; use `limit=50` or higher for direct REST/curl calls). After each list response, check whether the number of returned items equals the page size — if so, there are likely more results; fetch the next page (`page=2`, `page=3`, …) and continue until receiving a partial page. Never assume the first response is the complete result. This rule applies to every list-returning call without exception. *Examples specific to this agent (not exhaustive):* `forgejo_list_repo_issues` (default 20 — use `limit=50` and paginate to check for all existing bug issues before filing duplicates); `forgejo_list_repo_pull_requests` (same — check all open PRs that may already address a discovered bug). +9. **Tracking is non-blocking.** The `automation-tracking-manager` call in step 5 must never block the main loop. If it hangs or fails, skip it and proceed. Core functionality (module mapping, worker dispatch, monitoring) takes priority over status reporting. -- 2.52.0 From de08bc67b42c7b4d70719f05435ddfa1d2103d1b Mon Sep 17 00:00:00 2001 From: CleverThis Date: Tue, 14 Apr 2026 11:21:20 +0000 Subject: [PATCH 2/2] docs(spec): clarify default global automation profile is supervised per ADR-017 Aligns specification.md with ADR-017 which specifies supervised as the default global automation profile. Resolves three-way contradiction between ADR-017, reference docs, and implementation. Closes #9152. [AUTO-ARCH-13] --- docs/specification.md | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/docs/specification.md b/docs/specification.md index f0803345d..f30026c00 100644 --- a/docs/specification.md +++ b/docs/specification.md @@ -17037,9 +17037,9 @@ List all available automation profiles (built-in and custom). ╭─ Automation Profiles ──────────────────────────────────────────────────────────╮ │ Name Source Auto-Apply Sandbox Description │ │ ────────────────── ──────── ────────── ─────── ──────────────────────── │ - │ manual built-in 1.0 yes Human-driven (default) │ + │ manual built-in 1.0 yes Human-driven │ │ review built-in 1.0 yes Auto-phase, manual decisions │ - │ supervised built-in 1.0 yes Auto-plan, manual exec │ + │ supervised built-in 1.0 yes Auto-plan, manual exec (default) │ │ cautious built-in 1.0 yes Confidence-gated automation │ │ trusted built-in 1.0 yes Auto-exec, manual apply │ │ auto built-in 1.0 yes Full auto except apply │ @@ -17065,9 +17065,9 @@ List all available automation profiles (built-in and custom). Automation Profiles Name Source Auto-Apply Sandbox Description ------------------ -------- ---------- ------- ---------------------------- - manual built-in 1.0 yes Human-driven (default) + manual built-in 1.0 yes Human-driven review built-in 1.0 yes Auto-phase, manual decisions - supervised built-in 1.0 yes Auto-plan, manual exec + supervised built-in 1.0 yes Auto-plan, manual exec (default) cautious built-in 1.0 yes Confidence-gated automation trusted built-in 1.0 yes Auto-exec, manual apply auto built-in 1.0 yes Full auto except apply @@ -17092,9 +17092,9 @@ List all available automation profiles (built-in and custom). "exit_code": 0, "data": { "profiles": [ - { "name": "manual", "source": "built-in", "select_tool": 1.0, "sandbox": true, "description": "Human-driven (default)" }, + { "name": "manual", "source": "built-in", "select_tool": 1.0, "sandbox": true, "description": "Human-driven" }, { "name": "review", "source": "built-in", "select_tool": 1.0, "sandbox": true, "description": "Auto-phase, manual decisions" }, - { "name": "supervised", "source": "built-in", "select_tool": 1.0, "sandbox": true, "description": "Auto-plan, manual exec" }, + { "name": "supervised", "source": "built-in", "select_tool": 1.0, "sandbox": true, "description": "Auto-plan, manual exec (default)" }, { "name": "cautious", "source": "built-in", "select_tool": 1.0, "sandbox": true, "description": "Confidence-gated automation" }, { "name": "trusted", "source": "built-in", "select_tool": 1.0, "sandbox": true, "description": "Auto-exec, manual apply" }, { "name": "auto", "source": "built-in", "select_tool": 1.0, "sandbox": true, "description": "Full auto except apply" }, @@ -17121,7 +17121,7 @@ List all available automation profiles (built-in and custom). source: built-in select_tool: 1.0 sandbox: true - description: "Human-driven (default)" + description: "Human-driven" - name: review source: built-in select_tool: 1.0 @@ -17131,7 +17131,7 @@ List all available automation profiles (built-in and custom). source: built-in select_tool: 1.0 sandbox: true - description: "Auto-plan, manual exec" + description: "Auto-plan, manual exec (default)" - name: cautious source: built-in select_tool: 1.0 @@ -28567,7 +28567,7 @@ Threshold values are shown for each flag. A value of **0.0** means always automa | `safety.max_total_cost` | null | null | null | null | null | null | null | null | | `safety.max_retries_per_step` | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | -**`manual`**: Maximum human control. All thresholds set to 1.0 — every phase transition, every decision, every child plan requires explicit human approval regardless of confidence. Sandbox and checkpoints are mandatory. Unsafe tools are blocked. This is the default starting point. Use for: new users learning the system, critical production systems, first-time exploration of an unfamiliar codebase, sensitive projects, regulatory environments. +**`manual`**: Maximum human control. All thresholds set to 1.0 — every phase transition, every decision, every child plan requires explicit human approval regardless of confidence. Sandbox and checkpoints are mandatory. Unsafe tools are blocked. Use for: new users learning the system, critical production systems, first-time exploration of an unfamiliar codebase, sensitive projects, regulatory environments. **`review`**: Phases run automatically (Strategize and Execute proceed without pausing), and most decisions within those phases require human approval (thresholds set to 1.0), except transient retries and child plan spawning which are automatic (thresholds 0.0). Apply is manual. The system does the work but consults you on every choice point. Use for: teams that want to stay in the decision loop without manually triggering each phase, code reviews where architectural choices matter more than execution mechanics. @@ -28591,6 +28591,9 @@ Automation profiles are determined using this precedence (highest to lowest): 2. **Action-level**: Set on the action via `--automation-profile` on `agents action create` 3. **Project-level**: Set via `agents config set core.automation-profile --project ` 4. **Global-level**: Set via `agents config set core.automation-profile ` +5. **Built-in default**: `supervised` (per [ADR-017](adr/ADR-017-automation-profiles.md)) + +The default global automation profile is `supervised` (configurable via `core.automation-profile`). When no profile is configured at any level (plan, action, project, global), the resolved profile is `supervised`. The **effective profile** for a plan is resolved at the moment of `agents plan use`. Once resolved, the profile is **locked to that plan** — subsequent changes to project or global profiles do not affect running plans. -- 2.52.0