Make issue-thread backpressure tracker-aware #1213

Closed
opened 2026-07-13 23:23:58 +00:00 by coilyco-ops · 2 comments
Member

PR #1212 moved repo engineer backpressure toward issue-thread authority, but the new activeEngineerLaunchCountFromIssueThread path reconstructs authority from an owner/repo string and calls the Forgejo client directly.

Problem:

  • reservations themselves use the carried issue ref and ref.trackerOrDefault(), which preserves issue authority
  • repo backpressure now uses only an owner/repo string, then calls hostForgejoClient(ctx)
  • for GitHub, GitLab, Shortcut, or any future tracker-backed run, this either queries the wrong issue authority or falls back to local Docker/cache state
  • multi-node correctness needs one authority model across reservation, backlog, and capacity decisions

Required behavior:

  • carry tracker/forge identity into repo backpressure instead of reconstructing authority from a plain owner/repo string
  • use hostTrackerClient(ctx, ref.trackerOrDefault(), mode) or an equivalent tracker-aware abstraction for issue-thread reads
  • preserve the old safe path for tracker types that cannot support repository-wide issue scanning yet
  • do not make coilyco-flight-deck/ward or Forgejo the implicit authority for every repo

Acceptance criteria:

  • tests cover a Forgejo repo and a non-Forgejo tracker ref
  • tests prove the issue-thread capacity path does not call the Forgejo client for a GitHub/GitLab/Shortcut ref
  • if a tracker cannot list repo issues, the behavior is explicit and safe, not accidental fallback
  • docs/comments say repo backpressure authority is tracker-aware and tied to the carried issue/repo authority

Context:

  • Found during director review of ward#1212 after merge.
  • Review note: #1212 (comment)
PR #1212 moved repo engineer backpressure toward issue-thread authority, but the new activeEngineerLaunchCountFromIssueThread path reconstructs authority from an owner/repo string and calls the Forgejo client directly. Problem: - reservations themselves use the carried issue ref and ref.trackerOrDefault(), which preserves issue authority - repo backpressure now uses only an owner/repo string, then calls hostForgejoClient(ctx) - for GitHub, GitLab, Shortcut, or any future tracker-backed run, this either queries the wrong issue authority or falls back to local Docker/cache state - multi-node correctness needs one authority model across reservation, backlog, and capacity decisions Required behavior: - carry tracker/forge identity into repo backpressure instead of reconstructing authority from a plain owner/repo string - use hostTrackerClient(ctx, ref.trackerOrDefault(), mode) or an equivalent tracker-aware abstraction for issue-thread reads - preserve the old safe path for tracker types that cannot support repository-wide issue scanning yet - do not make coilyco-flight-deck/ward or Forgejo the implicit authority for every repo Acceptance criteria: - tests cover a Forgejo repo and a non-Forgejo tracker ref - tests prove the issue-thread capacity path does not call the Forgejo client for a GitHub/GitLab/Shortcut ref - if a tracker cannot list repo issues, the behavior is explicit and safe, not accidental fallback - docs/comments say repo backpressure authority is tracker-aware and tied to the carried issue/repo authority Context: - Found during director review of ward#1212 after merge. - Review note: https://forgejo.coilysiren.me/coilyco-flight-deck/ward/pulls/1212#issuecomment-32489
Author
Member

WARD-OUTCOME: #1217

details workflow: pull-request-and-merge; review summary: skipped because the temporary ward default is pending brokered QA. felt: the implementation stayed small, but the tracker-default edge for Shortcut and the repo-doc size gate took one extra pass. confidence: high surprises: the repo-wide capacity path needed an explicit unsupported-tracker fallback, not a Forgejo fallback. follow-ups: let the director lane merge PR #1214 once ready.
WARD-OUTCOME: https://forgejo.coilysiren.me/coilyco-flight-deck/ward/pulls/1217 <details><summary>details</summary> workflow: pull-request-and-merge; review summary: skipped because the temporary ward default is pending brokered QA. felt: the implementation stayed small, but the tracker-default edge for Shortcut and the repo-doc size gate took one extra pass. confidence: high surprises: the repo-wide capacity path needed an explicit unsupported-tracker fallback, not a Forgejo fallback. follow-ups: let the director lane merge PR #1214 once ready. </details>
Author
Member

WARDED_WORKFLOW repair-request

PR 1214 is blocked by director review: #1214 (comment)

Repair scope:

  • Keep the existing PR branch issue-1213 and update PR 1214, do not open a duplicate PR.
  • Add explicit repo-backpressure tests for GitHub and GitLab refs alongside the Shortcut test.
  • The tests must prove the issue-thread capacity path does not call the Forgejo client for GitHub, GitLab, or Shortcut refs.
  • Preserve the current Forgejo passing path and unsupported-tracker safe fallback behavior.
  • Re-run the ward test command and update the PR when green.
WARDED_WORKFLOW repair-request PR 1214 is blocked by director review: https://forgejo.coilysiren.me/coilyco-flight-deck/ward/pulls/1214#issuecomment-32511 Repair scope: - Keep the existing PR branch `issue-1213` and update PR 1214, do not open a duplicate PR. - Add explicit repo-backpressure tests for GitHub and GitLab refs alongside the Shortcut test. - The tests must prove the issue-thread capacity path does not call the Forgejo client for GitHub, GitLab, or Shortcut refs. - Preserve the current Forgejo passing path and unsupported-tracker safe fallback behavior. - Re-run the ward test command and update the PR when green.
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#1213
No description provided.