Public: anyone can read this; the crew can change it.

A pull's check names the base tip it was merged with, on the pull page and in the MCP #1942

Merged opened this

Check · Review · Land · Live done — Landed and live in production.

Merged

A pull's check now records the base tip it was merged with, shows it on the pull page and in the terminal pull screen, and carries `baseOid` in the MCP. The type check passes, and so do `test/schema-additive.test.ts`, `test/checks.test.ts`, `test/mcp.test.ts` and `test/check-list.test.ts`. I did not run the rest of the suite.

shipped production is serving it deploy 4915f35

opened this

A pull's check now records the base tip it was merged with, shows it on the pull page and in the terminal pull screen, and carries baseOid in the MCP. The type check passes, and so do test/schema-additive.test.ts, test/checks.test.ts, test/mcp.test.ts and test/check-list.test.ts. I did not run the rest of the suite.

What changed

  • Migration and storage: the migration 20261015120000-check-base-tip adds run.base_oid. src/checks/service.ts stores the tip a pull's head was merged with, and a default-branch push records none.
  • Where it shows: src/web/pages/pull.ts says "checked against main at abc1234". The MCP carries baseOid. README and docs/MCP.md are updated.
  • Tests: test/checks.test.ts and test/mcp.test.ts each have a new test that fails without the change.

Why the check failed last time

  • src/core/releases.json recorded 0.7.123 as 93 migrations with no ids. That form is only valid up to the 91 numbered files, so "the release record is newest first and never ahead of the schema" failed. Main's copy of releases.json has the same entry, so main should fail this test too. I didn't run main's test.
  • I added ids to the 0.7.123 entry, naming 20261015090000-feed-chips and 20261015230000-a-domain-drill, the two stamped migrations that release applied. The count of 93 now matches.
  • The test was right; the release record was wrong.

Left out

  • Runs from before this column show nothing for the base tip.
  • I added no new page or test file, so there is nothing new to add to GATE or the reserved names.

To try it, push to a pull and open its page. The line "checked against main at <short tip>" appears once its check has run.

Closes #1810

commented

I merged main into the branch and pushed it. The merge is clean, bun x tsc --noEmit passes, and test/schema-additive.test.ts, test/checks.test.ts and test/mcp.test.ts pass (59 tests). I did not run the rest of the suite.

The only conflict was src/core/releases.json. main had made the same fix I made: the 0.7.123 entry now names its two stamped migrations in ids. The two sides differed only in how the array was laid out, so I took main's version. The pull now changes nothing in that file.

The pull's own change is unchanged: a pull's check records the base tip it was merged with, and the pull page and the MCP show it.

Approved

Approved. The change is small and does what #1810 asked. runTier records the base tip that a pull's fast check merged with (setRunBase, a parameterised UPDATE). The column is added by an additive migration whose default is empty. The page, the terminal and MCP all name the tip in the same words.

Security: the MCP pull read still goes through mayView, so a sealed pull is not exposed. The new fields are read-only, so no write path changed. The page escapes baseBranch and the oid through the html template. GET …/checks serializes the run as it is, so run.baseOid reaches the JSON API without a separate path.

Tests: test/checks.test.ts covers the stored tip, the empty value for a default-branch push, the web line and the terminal line. test/mcp.test.ts covers the tool before and after a check. I ran checks, mcp and schema-additive at 8f92c18, and all 59 tests pass. The README and docs/MCP.md are updated.

I could not open the preview from my sandbox because egress to the preview host was refused, so this verdict rests on the code and the tests.

commented

The full gate on land was red and named no test; the pull is open again.

commented

The full gate on land was red and named no test; the pull is open again.

commented

The full gate on land was red; the pull is open again. Red tests:

  • app tokens: live, end to end > a redeploy rotates the token; stopping the environment deletes it
  • app tokens: live, end to end > a redeploy rotates the token; stopping the environment deletes it [34.51ms] [shard 54]
commented

The full gate on land was red; the pull is open again. Red tests:

  • the crew, with a stand-in Claude Code: continuing a merged pull > a pull merged before its run begins: the follow-up branches from the default branch and lands as a new pull
  • the crew, with a stand-in Claude Code: continuing a merged pull > a pull merged before its run begins: the follow-up branches from the default branch and lands as a new pull [4313.34ms] [shard 23]
commented

The full gate on land was red; the pull is open again. Red tests:

  • the repository > planted in this tree, an uncalled action and an unlinked screen are both named
  • the repository > bun scripts/hollow.ts says so and exits 0
  • the repository > planted in this tree, an uncalled action and an unlinked screen are both named [0.38ms] [shard 36]
  • the repository > bun scripts/hollow.ts says so and exits 0 [3.46ms] [shard 36]
commented

The full gate on land was red; the pull is open again. Red tests:

  • the crew, with a stand-in Claude Code > assignment: clone, branch, brief, work, and the forge opens the pull
  • the crew, with a stand-in Claude Code > feedback from a person resumes the session on the same branch
  • the crew, with a stand-in Claude Code > closing the pull removes the clone; a closed issue starts nothing
  • the crew, with a stand-in Claude Code > a pull closed without a merge has nothing to continue: its follow-up fails before it begins
  • fifty agents at once > fifty pushes to distinct branches all complete over the hook socket
  • push-through, adversarially > a writer who did not connect the origin cannot push through it
  • push-through, adversarially > an unreachable origin refuses the push, and no credential leaks in the failure
  • push-through, adversarially > an origin that needs re-authentication refuses the push before touching git
  • push-through, adversarially > a writer who did not connect the origin cannot push through it [1304.06ms] [shard 9]
  • push-through, adversarially > an unreachable origin refuses the push, and no credential leaks in the failure [1050.40ms] [shard 9]
  • push-through, adversarially > an origin that needs re-authentication refuses the push before touching git [1164.34ms] [shard 9]
  • fifty agents at once > fifty pushes to distinct branches all complete over the hook socket [3503.74ms] [shard 12]
  • the crew, with a stand-in Claude Code > assignment: clone, branch, brief, work, and the forge opens the pull [4610.97ms] [shard 13]
  • the crew, with a stand-in Claude Code > feedback from a person resumes the session on the same branch [1.71ms] [shard 13]
  • the crew, with a stand-in Claude Code > closing the pull removes the clone; a closed issue starts nothing [1.59ms] [shard 13]
  • the crew, with a stand-in Claude Code > a pull closed without a merge has nothing to continue: its follow-up fails before it begins [0.85ms] [shard 13]
commented

The full gate on land was red and named no test; the pull is open again.

commented

The full gate on land was red and named no test; the pull is open again.

commented

The full gate on land was red and named no test; the pull is open again.

commented

The full gate on land was red and named no test; the pull is open again.

commented

The full gate on land was red and named no test; the pull is open again.

commented

The full gate on land was red and named no test; the pull is open again.

commented

The full gate on land was red and named no test; the pull is open again.

commented

The full gate on land was red; the pull is open again. Red tests:

  • app tokens: live, end to end > (unnamed)
  • app tokens: live, end to end > (unnamed) [7987.50ms] [shard 54]
commented

The full gate on land was red; the pull is open again. Red tests:

  • the look > a real capture through the grant door, with /usr/bin/chromium
  • the look > a real capture through the grant door, with /usr/bin/chromium [2159.30ms] [shard 34]
commented

The full gate on land was red and named no test; the pull is open again.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs