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
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 afindingper the shift-end report's three-category rule (domain:engineseat, sessionsession_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
curltohttps://api.github.com/graphqlreturns, verbatim: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:mcp__github__update_pull_requestwithdraft: falselands. Read-back showeddraft: Falseon fix(driver-sql): aggregate() joins the enveloped read exits — a dialect fault it cannot attribute leaves as DATABASE_ERROR/500 instead of raw #11545, fix(driver-sql): keep a PostgreSQL date a calendar-day string, not a local-midnight Date #11561 and fix(driver-sql): honour a string field's declared maxLength in emitted DDL #11564.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'smergeMethodparameter is inertPassing
mergeMethod: "SQUASH"registersmergeanyway — measured on #11545 (disabled and re-enabled to check, same result) and again on #11564, both read back via REST asauto_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 --mergesonmainfinds 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:
curl '.../issues?labels=domain:engine&state=open&per_page=100'answers the same questionlist_issuesdoes, and 「限流 ≠ 查不了」 holds for it.API rate limit already exceededand there is nothing to fall back to — the merge simply waits for the reset. Plan undrafts aroundcurl .../rate_limit, and don't burn a check-in tick arriving before the reset.Generated by Claude Code