Skip to content

feat: dry-run read-only, --issue, --check-cmd, abort trap, .fixbuddy.conf - #2

Merged
Codevena merged 3 commits into
mainfrom
feat/product-improvements
Jun 11, 2026
Merged

feat: dry-run read-only, --issue, --check-cmd, abort trap, .fixbuddy.conf#2
Codevena merged 3 commits into
mainfrom
feat/product-improvements

Conversation

@Codevena

Copy link
Copy Markdown
Owner

Summary

Five approved product improvements (design + spec in docs/superpowers/specs/2026-06-11-product-improvements-design.md).

  • Read-only --dry-run — label creation, the fix:pr-open unstick scan, and the dirty-worktree preflight are all skipped; the report shows the planned config + --check-cmd strings and respects --max. (Fixes the bug where dry-run mutated labels.)
  • --issue N (repeatable) — process specific issues, fetched directly via gh issue view (no 200-item list blind spot); dedup filters and --label/--severity still apply; non-actionable numbers warn distinctly.
  • --check-cmd (repeatable) — deterministic test gate run in the project dir after the fix commit and before review; a non-zero exit shares the exact review-rejection retry path (same attempt budget, fix:rejected on exhaustion), so it also gates auto-merge. Output capped (200 lines / 16 KB).
  • Ctrl-C/abort trap — kills the in-flight agent (PIDs via a shared file, since run_agent runs in a command-substitution subshell), SIGTERM→SIGKILL escalation, then local-only branch cleanup (remote branch/PR survive). No label set, so the issue resumes next run.
  • .fixbuddy.conf — safe-parsed (no eval/source) from ~/.fixbuddy/config then ./.fixbuddy.conf, before arg parsing so CLI wins; allowlisted keys, additive label/check_cmd; new --auto-merge flag; the wizard offers to write the config; action.yml passes the flag both ways.

Verification

  • bash -n ✓ · shellcheck -S warning ✓ (clean) · action.yml YAML ✓
  • Unit + offline integration tests for the config parser, run_checks caps, dry-run read-only behavior, --issue direct fetch, and the Ctrl-C trap (real agent process killed via the PID file, branch cleaned up).
  • Reviewed via the Definition-of-Done pipeline (2 independent code-quality reviews + 2 independent spec-conformance reviews): all PASS.

Codevena added 3 commits June 11, 2026 07:32
Bundles five improvements: read-only --dry-run, --issue N, --check-cmd
test gate, Ctrl-C abort trap, and .fixbuddy.conf config files (+ wizard).
Captures the approved design decisions and integration points.
Incorporate Codex's design-review feedback:
- --check-cmd reuses the exact DONE-REJECTED retry/budget path; insertion
  point pinned before the review block; output capped/tailed
- add --auto-merge flag so the boolean is CLI-overridable both ways
- document additive label/check_cmd config keys (AND filter, not override)
- harden Ctrl-C trap: CURRENT_PUSHED guard (don't delete pushed branches),
  kill+wait children before git cleanup, disarm re-entrancy, best-effort PIDs
- config parser: strip CRLF, warn on malformed lines
- --issue fetches issues directly to dodge the 200-item list limit
- wizard writes to CWD with absolute-path notice + quoting
Implements the five approved product improvements (see
docs/superpowers/specs/2026-06-11-product-improvements-design.md):

- --dry-run is now fully read-only: label creation, the fix:pr-open
  unstick scan, and the dirty-worktree preflight are skipped; the report
  shows the planned config + check commands and respects --max.
- --issue N (repeatable): process specific issues, fetched directly via
  `gh issue view` (no 200-item list blind spot); dedup filters and
  --label/--severity still apply; non-actionable numbers warn distinctly.
- --check-cmd (repeatable): deterministic test gate run in the project dir
  after the fix commit and before review; failure shares the exact
  review-rejection retry path (same budget, fix:rejected on exhaustion),
  so it also gates auto-merge. Output is capped (200 lines / 16 KB).
- Ctrl-C/abort trap: kills the in-flight agent (PIDs via a shared file,
  since run_agent runs in a command-substitution subshell), SIGTERM ->
  SIGKILL escalation, then local-only branch cleanup (remote branch/PR
  survive). No label is set, so the issue resumes next run.
- .fixbuddy.conf config files: safe-parsed (no eval/source) from
  ~/.fixbuddy/config then ./.fixbuddy.conf, before arg parsing so CLI
  wins; allowlisted keys, additive label/check_cmd; new --auto-merge flag;
  the wizard offers to write the config; action.yml passes the flag both
  ways.

Reviewed via the DoD pipeline (Codex x2 + Claude x2): all PASS.
@Codevena
Codevena merged commit 206677b into main Jun 11, 2026
1 of 2 checks passed
@Codevena
Codevena deleted the feat/product-improvements branch June 11, 2026 07:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant