Context
Split from #16806 during PR #16809's review (@neo-opus-vega's RA-1, the #16776 pattern). The parent's AC-1 is a live behavioural-equivalence claim against the merged server — structurally unreachable from a stubbed-transport unit suite — so a PR closing the parent would auto-close it with its headline criterion unmet and no artifact tracking it. This leaf is the L2-deliverable subset that PR #16809 closes cleanly; the parent stays open for AC-1 alone.
The split is also forced mechanically, and that is worth recording: .github/workflows/agent-pr-body-lint.yml (#12367, operator rule) fails any non-draft agent PR body without Resolves #N, so the Refs-only alternative is not actually available — the leaf is the only shape that satisfies the lint, the close-target audit, and the review.
Live latest-open sweep: latest 20 open issues at 2026-08-09T18:14Z — no equivalent. A2A in-flight sweep: 30 most recent messages at 18:14Z — no [lane-claim]/[lane-intent] on this scope. KB semantic sweep: no equivalent (the close-target material the KB surfaced is reviewer-side discipline in pr-review-guide.md §5.2, not a ticket).
The Problem
As #16806: list_issues({assignee: '@me'}) dies on a raw GraphQL rejection while the write path on the same service resolves the alias. This leaf's boundary is everything except the live equivalence receipt.
The Architectural Reality
As #16806: #resolveAssigneeAliases (ai/services/github-workflow/IssueService.mjs:540-553) is the in-file mechanism; the read path passed the alias verbatim into filterBy at :1353.
The Fix
Exactly the parent's Fix §1–3, delivered by PR #16809 at head 42aa8978b0: reuse the resolver pre-filterBy; failure returns the sibling write path's GITHUB_API_ERROR shape; openapi.yaml description advertises the alias.
Acceptance Criteria
No open criteria at creation: this is the post-hoc delivered-work leaf; its evidence is committed and CI-green.
Out of Scope
- Parent AC-1 —
list_issues({assignee: '@me'}) returns the same set as the concrete-login form against the merged server. Deployment-gated; stays open on #16806 as its sole remaining criterion, tracked by PR #16809's Post-Merge Validation box.
Related
#16806 (parent; carries AC-1) · PR #16809 (the delivering PR) · #16776 (the L2-leaf split precedent) · #12367 (mandatory-Resolves lint rule — the mechanical half of why this leaf exists)
Origin Session ID: d05afdba-d7f9-4733-b9da-e1a8a7946777
Context
Split from #16806 during PR #16809's review (@neo-opus-vega's RA-1, the
#16776pattern). The parent's AC-1 is a live behavioural-equivalence claim against the merged server — structurally unreachable from a stubbed-transport unit suite — so a PR closing the parent would auto-close it with its headline criterion unmet and no artifact tracking it. This leaf is the L2-deliverable subset that PR #16809 closes cleanly; the parent stays open for AC-1 alone.The split is also forced mechanically, and that is worth recording:
.github/workflows/agent-pr-body-lint.yml(#12367, operator rule) fails any non-draft agent PR body withoutResolves #N, so theRefs-only alternative is not actually available — the leaf is the only shape that satisfies the lint, the close-target audit, and the review.Live latest-open sweep: latest 20 open issues at 2026-08-09T18:14Z — no equivalent. A2A in-flight sweep: 30 most recent messages at 18:14Z — no
[lane-claim]/[lane-intent]on this scope. KB semantic sweep: no equivalent (the close-target material the KB surfaced is reviewer-side discipline inpr-review-guide.md §5.2, not a ticket).The Problem
As #16806:
list_issues({assignee: '@me'})dies on a raw GraphQL rejection while the write path on the same service resolves the alias. This leaf's boundary is everything except the live equivalence receipt.The Architectural Reality
As #16806:
#resolveAssigneeAliases(ai/services/github-workflow/IssueService.mjs:540-553) is the in-file mechanism; the read path passed the alias verbatim intofilterByat:1353.The Fix
Exactly the parent's Fix §1–3, delivered by PR #16809 at head
42aa8978b0: reuse the resolver pre-filterBy; failure returns the sibling write path'sGITHUB_API_ERRORshape;openapi.yamldescription advertises the alias.Acceptance Criteria
GITHUB_API_ERROR, not a raw GraphQL rejection — spec arm asserts NO GraphQL query is issued (the counterfactual shape).42aa8978b0.No open criteria at creation: this is the post-hoc delivered-work leaf; its evidence is committed and CI-green.
Out of Scope
list_issues({assignee: '@me'})returns the same set as the concrete-login form against the merged server. Deployment-gated; stays open on #16806 as its sole remaining criterion, tracked by PR #16809's Post-Merge Validation box.Related
#16806 (parent; carries AC-1) · PR #16809 (the delivering PR) ·
#16776(the L2-leaf split precedent) ·#12367(mandatory-Resolveslint rule — the mechanical half of why this leaf exists)Origin Session ID: d05afdba-d7f9-4733-b9da-e1a8a7946777