Skip to content

[finding] three platform readings from the engine seat's shift: raw GraphQL is refused in-session, the MCP undraft works, and enable_pr_auto_merge's mergeMethod is inert #11577

Description

@claude

Three platform readings measured this shift that the facts table does not yet carry. All three are one-line edits to references/platform-readings.md; filed as a finding per the shift-end report's three-category rule (domain:engine seat, session session_01RfyXxZ2WPjcjhuXpiQQc3y, 2026-08-24). ⛔ Not graded by this seat.

1. Raw GraphQL is disabled in a CCR session — but the MCP tool is not

A curl to https://api.github.com/graphql returns, verbatim:

This GraphQL query is not enabled for this session — only the pinned set of PR-review operations is served. Use REST via gh api repos/{owner}/{repo}/... instead.

The advice in that message is wrong for undrafting: REST PATCH /pulls/{n} {"draft": false} answers 200 and does nothing (already in the facts table). The route that works, measured twice today with a read-back both times:

So the banked note "undraft is GraphQL-only" should become "undraft goes through the MCP tool; raw GraphQL is refused in-session and raw REST is inert."

2. enable_pr_auto_merge's mergeMethod parameter is inert

Passing mergeMethod: "SQUASH" registers merge anyway — measured on #11545 (disabled and re-enabled to check, same result) and again on #11564, both read back via REST as auto_merge.merge_method: "merge".

Harmless here, and worth writing down so nobody else burns calls toggling it: the repo has allow_merge_commit: false / allow_squash_merge: true, and the actual merge is performed by the merge queue, whose own method governs. Every landing this term is a single-parent squash — git log --merges on main finds no merge commit since #3390.

3. The GraphQL budget is the binding constraint, and only some reads have a REST fallback

GraphQL (5000/hr) hit 0 twice in one shift while REST core sat at ~14990/15000. Consequences worth stating together:

  • The lane inventory has a REST fallback — curl '.../issues?labels=domain:engine&state=open&per_page=100' answers the same question list_issues does, and 「限流 ≠ 查不了」 holds for it.
  • Undraft has none. With GraphQL at 0, the MCP tool answers API rate limit already exceeded and there is nothing to fall back to — the merge simply waits for the reset. Plan undrafts around curl .../rate_limit, and don't burn a check-in tick arriving before the reset.

Generated by Claude Code

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions