Skip to content

feat: responder + ci-fixer fixes + orchestrator v3#163

Merged
microsasa merged 9 commits intomainfrom
fix/responder-v2
Mar 19, 2026
Merged

feat: responder + ci-fixer fixes + orchestrator v3#163
microsasa merged 9 commits intomainfrom
fix/responder-v2

Conversation

@microsasa
Copy link
Owner

@microsasa microsasa commented Mar 19, 2026

Changes

Responder fixes (commits 1-4, 6)

  • Restored to working version minus resolve safe-output
  • Switched to workflow_dispatch trigger (eliminates infinite loops from pull_request_review)
  • Added CI recovery: fix and re-run before pushing
  • Set target: "*" on safe outputs for workflow_dispatch support
  • Added REST API instruction for reading review threads (MCP tools return empty)

CI-fixer fix (commit 5)

  • Set target: "*" + checkout fetch for workflow_dispatch support

Orchestrator v3 (commit 7)

  • Full lifecycle: issue dispatch → CI check → ci-fixer dispatch → responder dispatch → thread resolution → rebase
  • Triggers: workflow_run (responder/ci-fixer/CI), pull_request_review (aw gate), push: main, manual
  • Cron disabled until testing complete
  • Stuck labels: aw-pr-stuck:ci, aw-pr-stuck:review, aw-pr-stuck:rebase
  • Review loop management with round counter (max 3)

Label rename (commit 8)

  • All pipeline labels now have aw- prefix for consistency
  • aw-stuck:*aw-pr-stuck:*

Tested

Closes #145
Part of #135 (not closing — cron + end-to-end testing pending)
Related: #114 (REST API workaround for MCP thread limitation)

Sasa Junuzovic and others added 7 commits March 17, 2026 21:28
Exact match to the version that successfully addressed review
threads (run 23117978475, 2026-03-15), with only two changes:
1. Added if: label gate for aw PRs
2. Removed resolve-pull-request-review-thread safe-output and
   step 6e (orchestrator handles resolution)

No other changes. This commit should not be modified.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace pull_request_review trigger with workflow_dispatch + pr_number
input. No more loops from stray review events. Orchestrator or
manual dispatch controls when responder runs.

Removed aw label check and triggering review check — no longer
applicable with workflow_dispatch. Renumbered steps.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
If CI checks fail after addressing review comments, fix the
issues and re-run until they pass. Do not push broken code.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The reply-to-pull-request-review-comment and push-to-pull-request-branch
safe output handlers default to target 'triggering' which requires a
pull_request event context. Setting target to '*' lets the agent
specify the PR number in each message, enabling workflow_dispatch.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Same fix as the responder: set target '*' on push-to-pull-request-branch
so the agent specifies the PR number in its message (no event context
needed). Added labels: [aw] to restrict pushes. Added checkout fetch
config so all remote branches are available.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
MCP tools intermittently return empty results for review data.
The agent sometimes falls back to REST API on its own (PR #152)
but not always (PR #158). Explicitly instruct it to use the
REST API endpoints for comments and reviews.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Rewrites the orchestrator with complete PR lifecycle logic:
- Dispatches implementer for unworked aw issues
- Checks CI status: dispatches ci-fixer on failure, marks
  aw-stuck:ci if fixer already tried
- Dispatches responder for unaddressed review threads
- Resolves addressed threads (last commenter != reviewer)
- Review loop management with round counter (max 3)
- Rebases PRs behind main, marks aw-stuck:rebase on conflicts
- Skips PRs with any aw-stuck:* label

Triggers: workflow_run (responder/ci-fixer/CI completion),
pull_request_review (aw label gate), push to main, manual.
Cron disabled until testing complete.

All dispatches use --ref to run from PR's head branch.

Part of #135

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings March 19, 2026 14:48
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the autonomous workflow pipeline to use workflow_dispatch-driven agents (responder/ci-fixer) and introduces a v3 bash-based pipeline orchestrator to manage issue→PR lifecycle, CI recovery, review response dispatch, thread resolution, and rebasing.

Changes:

  • Switch Review Responder and CI Fixer agents to workflow_dispatch with target: "*" and full-history checkout/fetch for dispatch support.
  • Add Pipeline Orchestrator v3 to dispatch implementer/ci-fixer/responder based on PR state, resolve addressed review threads, and rebase behind-main PRs.
  • Update compiled .lock.yml workflows to reflect the new dispatch inputs, fetch configuration, and safe-outputs settings.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 10 comments.

Show a summary per file
File Description
.github/workflows/review-responder.md Moves responder to workflow_dispatch, adjusts safe-outputs targeting, updates instructions (REST API thread fetch guidance).
.github/workflows/review-responder.lock.yml Compiled workflow updates for dispatch inputs, checkout fetch, and safe-outputs targeting.
.github/workflows/ci-fixer.md Adds checkout fetch/full history and sets push-to-pull-request-branch target: "*" for dispatch.
.github/workflows/ci-fixer.lock.yml Compiled workflow updates for checkout fetch/full history and safe-outputs targeting.
.github/workflows/pipeline-orchestrator.yml New v3 orchestrator that queries PR state via GraphQL, dispatches agents, resolves threads, and rebases PRs.
Comments suppressed due to low confidence (2)

.github/workflows/review-responder.md:44

  • safe-outputs.add-labels is still missing target: "*". Since this workflow is now workflow_dispatch (no implicit PR context), label operations can fail or apply to the wrong target unless add-labels is also configured with an explicit target (similar to push-to-pull-request-branch and reply-to-pull-request-review-comment).
  push-to-pull-request-branch:
    target: "*"
    labels: [aw]
    github-token: ${{ secrets.GH_AW_WRITE_TOKEN }}
  reply-to-pull-request-review-comment:
    target: "*"
    max: 10
    github-token: ${{ secrets.GH_AW_WRITE_TOKEN }}
  add-labels:
    github-token: ${{ secrets.GH_AW_WRITE_TOKEN }}

.github/workflows/ci-fixer.md:42

  • safe-outputs.add-labels is missing target: "*" even though the workflow is workflow_dispatch. If the CI fixer relies on add-labels to set ci-fix-attempted, this can fail without an explicit target/PR context; align it with push-to-pull-request-branch by adding target: "*" (or otherwise ensuring the PR number is passed as the tool target).
  push-to-pull-request-branch:
    target: "*"
    labels: [aw]
    github-token: ${{ secrets.GH_AW_WRITE_TOKEN }}
  add-labels:
    github-token: ${{ secrets.GH_AW_WRITE_TOKEN }}
  add-comment:

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Standardizes all pipeline labels with aw- prefix:
- review-response-attempted → aw-review-response-attempted
- review-response-N → aw-review-response-N
- ci-fix-attempted → aw-ci-fix-attempted
- quality-gate-approved → aw-quality-gate-approved
- aw-stuck:* → aw-pr-stuck:*

Closes #145

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The jq filter used startswith('aw-review-response-') which also
matched aw-review-response-attempted, inflating the round count
by 1. Now uses regex to match only numeric round labels.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings March 19, 2026 15:22
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the gh-aw automation workflows to support a v3 event-driven pipeline (dispatch-based responder/ci-fixer + YAML orchestrator), along with label-prefix normalization and workflow_dispatch-safe safe-outputs targeting.

Changes:

  • Switch review-responder and ci-fixer workflows to workflow_dispatch with target: "*" safe-outputs + full git history fetch.
  • Expand pipeline-orchestrator.yml into a full lifecycle manager (issue dispatch, CI triage, responder dispatch, thread resolution, rebase, stuck labeling).
  • Rename/standardize pipeline labels to aw-* (e.g., aw-*-attempted, aw-pr-stuck:*, aw-quality-gate-approved).

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
.github/workflows/review-responder.md Moves responder to manual dispatch and updates instructions/safe-outputs for dispatch context.
.github/workflows/review-responder.lock.yml Compiled workflow reflecting dispatch inputs, safe-outputs target:"*", and updated checkout/fetch behavior.
.github/workflows/ci-fixer.md Adds full-history checkout/fetch and dispatch-safe target:"*" settings; updates attempted label name.
.github/workflows/ci-fixer.lock.yml Compiled workflow reflecting checkout/fetch changes and safe-outputs targeting.
.github/workflows/quality-gate.md Updates the “approved” marker label name to aw-quality-gate-approved.
.github/workflows/pipeline-orchestrator.yml Implements orchestrator v3: discovers active PRs, dispatches implementer/ci-fixer/responder, resolves threads via GraphQL, and rebases behind-main PRs.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@microsasa microsasa merged commit 2adbd50 into main Mar 19, 2026
63 checks passed
@microsasa microsasa deleted the fix/responder-v2 branch March 19, 2026 16:18
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.

chore: rename pipeline labels to orchestrator-* prefix

2 participants