Repair ward PR merge queue from failed prior runs #903

Closed
opened 2026-07-10 00:49:21 +00:00 by coilyco-ops · 4 comments
Member

Problem

A batch of ward-owned PRs from previous failed or partial runs is open and ward agent director merge --repo coilyco-flight-deck/ward --dry-run --limit 100 currently merges none.

Dry-run result on 2026-07-10:

#901 skipped: base branch main does not declare required status check contexts
#899 skipped: base branch main does not declare required status check contexts
#888 skipped: PR is not mergeable against the current base branch; rebase or merge base and resolve the conflict first
#886 skipped: PR is not mergeable against the current base branch; rebase or merge base and resolve the conflict first
#878 skipped: PR is not mergeable against the current base branch; rebase or merge base and resolve the conflict first
#877 skipped: PR is not mergeable against the current base branch; rebase or merge base and resolve the conflict first

PR-backed issue threads:

  • #901 fix: sync codex director overlay closes #897, ward.workflow: pull-requests-and-merge, no WARD-OUTCOME comment yet.
  • #899 docs: enumerate capability providers and adapter states closes #896, ward.workflow: pull-requests-and-merge, no WARD-OUTCOME comment yet.
  • #888 GitLab forge adapter closes #635, has WARD-OUTCOME: blocked because CI was still running earlier.
  • #886 Goose engineer can answer in logs and exit clean without carrying the issue closes #697, no outcome comment.
  • #878 Add a director command to list running ward engineers closes #874, no workflow marker in body.
  • #877 Move non-agent launch helpers out of internal/agents closes #704, ward.workflow: pull-requests-and-merge, no outcome comment.

Do

  • Treat this as merge-queue repair, not a new feature.
  • For each PR, inspect the branch against current main, rebase or merge main, resolve conflicts, and run the appropriate ward tests.
  • For #899 and #901, determine whether the status-check-context skip is a real branch/check problem or a director-merge policy/config bug. If the PR is otherwise valid, make the merge-ready path work without bypassing ward's policy.
  • For #888, check whether CI settled after the earlier blocked comment, re-run/rebase if stale, and convert to merge-ready only when green.
  • For #886, #878, and #877, repair branch mergeability and add/refresh the ward outcome metadata needed for director merge if the implementation is still valid.
  • Close or supersede duplicate PRs if two PRs implement the same linked issue and keeping both would create conflicts.

Acceptance

  • ward agent director merge --repo coilyco-flight-deck/ward --dry-run --limit 100 no longer reports stale conflicts for the repaired PRs.
  • Valid PRs are merged through the director merge path or clearly marked with a specific blocker on their issue/PR thread.
  • Invalid or duplicate PRs are closed with a short explanation.
  • ward exec test passes for any branch that is repaired, or the PR thread names the exact failing check.

Closes this issue when the merge queue is clean or every remaining PR has a concrete non-stale blocker.

## Problem A batch of ward-owned PRs from previous failed or partial runs is open and `ward agent director merge --repo coilyco-flight-deck/ward --dry-run --limit 100` currently merges none. Dry-run result on 2026-07-10: ```text #901 skipped: base branch main does not declare required status check contexts #899 skipped: base branch main does not declare required status check contexts #888 skipped: PR is not mergeable against the current base branch; rebase or merge base and resolve the conflict first #886 skipped: PR is not mergeable against the current base branch; rebase or merge base and resolve the conflict first #878 skipped: PR is not mergeable against the current base branch; rebase or merge base and resolve the conflict first #877 skipped: PR is not mergeable against the current base branch; rebase or merge base and resolve the conflict first ``` PR-backed issue threads: - #901 `fix: sync codex director overlay` closes #897, `ward.workflow: pull-requests-and-merge`, no `WARD-OUTCOME` comment yet. - #899 `docs: enumerate capability providers and adapter states` closes #896, `ward.workflow: pull-requests-and-merge`, no `WARD-OUTCOME` comment yet. - #888 `GitLab forge adapter` closes #635, has `WARD-OUTCOME: blocked` because CI was still running earlier. - #886 `Goose engineer can answer in logs and exit clean without carrying the issue` closes #697, no outcome comment. - #878 `Add a director command to list running ward engineers` closes #874, no workflow marker in body. - #877 `Move non-agent launch helpers out of internal/agents` closes #704, `ward.workflow: pull-requests-and-merge`, no outcome comment. ## Do - Treat this as merge-queue repair, not a new feature. - For each PR, inspect the branch against current `main`, rebase or merge `main`, resolve conflicts, and run the appropriate ward tests. - For #899 and #901, determine whether the status-check-context skip is a real branch/check problem or a director-merge policy/config bug. If the PR is otherwise valid, make the merge-ready path work without bypassing ward's policy. - For #888, check whether CI settled after the earlier blocked comment, re-run/rebase if stale, and convert to merge-ready only when green. - For #886, #878, and #877, repair branch mergeability and add/refresh the ward outcome metadata needed for director merge if the implementation is still valid. - Close or supersede duplicate PRs if two PRs implement the same linked issue and keeping both would create conflicts. ## Acceptance - `ward agent director merge --repo coilyco-flight-deck/ward --dry-run --limit 100` no longer reports stale conflicts for the repaired PRs. - Valid PRs are merged through the director merge path or clearly marked with a specific blocker on their issue/PR thread. - Invalid or duplicate PRs are closed with a short explanation. - `ward exec test` passes for any branch that is repaired, or the PR thread names the exact failing check. Closes this issue when the merge queue is clean or every remaining PR has a concrete non-stale blocker.
Author
Member

WARD-DISPATCH: failed

failure details

This forwarded dispatch failed after the issue was already reserved.

Attempted harness: codex
Attempted run: ward agent engineer coilyco-flight-deck/ward#903 --harness codex
Container: engineer-codex-ward-903
Container created: no running engineer was observed.
Host log: /Users/kai/.ward/agent-logs/dispatch/20260710T004928Z-director-codex-zv98-coilyco-flight-deck-ward-903.log
Failure: ward container: download Go bootstrap binary https://forgejo.coilysiren.me/coilyco-flight-deck/ward/releases/download/v0.544.0/ward-linux-arm64: unexpected status 404 Not Found: Not Found

Retry: choose another harness if the first one is down, or rerun with --force if the reservation is stale.

— Codex, via ward agent

<!-- ward-agent-reservation-released --> <!-- ward-needs-redispatch --> WARD-DISPATCH: failed ❌ <details><summary>failure details</summary> This forwarded dispatch failed after the issue was already reserved. Attempted harness: `codex` Attempted run: `ward agent engineer coilyco-flight-deck/ward#903 --harness codex` Container: `engineer-codex-ward-903` Container created: no running engineer was observed. Host log: `/Users/kai/.ward/agent-logs/dispatch/20260710T004928Z-director-codex-zv98-coilyco-flight-deck-ward-903.log` Failure: `ward container: download Go bootstrap binary https://forgejo.coilysiren.me/coilyco-flight-deck/ward/releases/download/v0.544.0/ward-linux-arm64: unexpected status 404 Not Found: Not Found` Retry: choose another harness if the first one is down, or rerun with `--force` if the reservation is stale. </details> <!-- ward-agent-signature --> — Codex, via `ward agent`
Author
Member

WARD-RESERVATION: held 🔒

reservation details

Holder: container engineer-codex-ward-903 on host kais-macbook-pro-2.local.

Reserved by ward agent --harness codex (reserved 2026-07-10T00:50:04Z). Concurrent ward agent runs are blocked until it finishes or the reservation goes stale (1h TTL). --force overrides.

Do not comment on or edit this issue to steer the run while it is reserved. The engineer seeded the body once at launch and never re-reads it, so a comment or edit reaches only human readers, never the running engineer. A correction goes to a new issue, dispatched fresh. That is the only channel that reaches a run in flight. Where the forge supports it, ward locks this conversation to make that a road-block rather than a convention (ward#494).

run seed context — what this run is carrying (ward#609)
  • Resolved: coilyco-flight-deck/ward#903 · branch issue-903 · harness codex · workflow pull-requests-and-merge
  • Run: engineer-codex-ward-903 · ward v0.543.0 · dispatched 2026-07-10T00:50:04Z
  • Comment thread: 1 included in the pre-flight read, 0 stripped (ward's own automated comments).

Static container doctrine and seed boilerplate are identical every run and omitted here (they ride ward v0.543.0).

— Codex, via ward agent

<!-- ward-agent-reservation --> WARD-RESERVATION: held 🔒 <details><summary>reservation details</summary> Holder: container `engineer-codex-ward-903` on host `kais-macbook-pro-2.local`. Reserved by `ward agent --harness codex` (reserved 2026-07-10T00:50:04Z). Concurrent `ward agent` runs are blocked until it finishes or the reservation goes stale (1h TTL). `--force` overrides. **Do not comment on or edit this issue to steer the run while it is reserved.** The engineer seeded the body once at launch and never re-reads it, so a comment or edit reaches only human readers, never the running engineer. A correction goes to a **new issue, dispatched fresh**. That is the only channel that reaches a run in flight. Where the forge supports it, ward locks this conversation to make that a road-block rather than a convention (ward#494). <details><summary>run seed context — what this run is carrying (ward#609)</summary> - **Resolved:** `coilyco-flight-deck/ward#903` · branch `issue-903` · harness `codex` · workflow `pull-requests-and-merge` - **Run:** `engineer-codex-ward-903` · ward `v0.543.0` · dispatched `2026-07-10T00:50:04Z` - **Comment thread:** 1 included in the pre-flight read, 0 stripped (ward's own automated comments). - included: @coilyco-ops (2026-07-10T00:49:33Z) Static container doctrine and seed boilerplate are identical every run and omitted here (they ride ward v0.543.0). </details> </details> <!-- ward-agent-signature --> — Codex, via `ward agent`
Author
Member

Queue correction from Kai: PR #901 is a step backward and must not be repaired for merge as-is.

The intended fix is not to sync a custom Codex director overlay into ward. The intended fix is to move the entire custom fleet file, and every custom KDL file, into aos, leaving ward's shipped/default bundle neutral and resolving operator-specific KDL through the selected config source. Treat #901 as superseded/wrong-direction during the merge queue repair. Carry the fix through #893/#903 instead.

Queue correction from Kai: PR #901 is a step backward and must not be repaired for merge as-is. The intended fix is not to sync a custom Codex director overlay into ward. The intended fix is to move the entire custom fleet file, and every custom KDL file, into aos, leaving ward's shipped/default bundle neutral and resolving operator-specific KDL through the selected config source. Treat #901 as superseded/wrong-direction during the merge queue repair. Carry the fix through #893/#903 instead.
Author
Member

WARD-OUTCOME: merge-ready

details

workflow: pull-requests-and-merge; review summary: skipped because review gate skipped by ~/.ward/config.yaml default

felt: straightforward once I merged current main and aligned the director merge status fallback with live PR statuses.

confidence: high

surprises: ward exec test required an upstream branch before it would run.

follow-ups: director can merge PR #922 when the queue is ready.

WARD-OUTCOME: merge-ready <details><summary>details</summary> workflow: pull-requests-and-merge; review summary: skipped because review gate skipped by ~/.ward/config.yaml default felt: straightforward once I merged current main and aligned the director merge status fallback with live PR statuses. confidence: high surprises: `ward exec test` required an upstream branch before it would run. follow-ups: director can merge PR #922 when the queue is ready. </details>
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
coilyco-flight-deck/ward#903
No description provided.