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

An agent's pull opens at its first push, marked in progress, and the run's end fills that same pull in #1965

shipped production is serving it opened this has it
opened this

Replaces #1461 (pull #1526 lost to main moving under src/crew/runner.ts twice; #1933 red on main's release-record fault). Keep the change in src/crew/early.ts with one call from src/crew/runner.ts, so runner.ts conflicts stay small.

Done looks like:

  • [ ] Once the agent's branch has one commit beyond its base, the pull opens with the title, base and head landWork would use, a body saying the work is in progress and linking the run's log. The preview follows each later push.
  • [ ] At the run's end landWork fills in that pull and never opens a second; it reports updated pull #N, and the test and code agree.
  • [ ] test/crew.test.ts (the stand-in Claude Code, runnable in the sandbox with FORGE_TEST_SOCKET) proves both.

Start from today's main, at or after 36daece8. The red 'the release record is newest first' on earlier tries was main's own fault (#1837, fixed in 39e98bc9), not the builder's. A new migration is a file src/core/migrations/<UTC yyyymmddHHMMSS>-<name>.ts (see 20261015230000-a-domain-drill.ts), never a number; do not hand-edit src/core/releases.json. Before pushing run bun x tsc --noEmit, the tests this touches, the schema-migrations and schema-additive tests if you add a migration, and test/check-list.test.ts; name every new test file in GATE in scripts/gate.ts in the same commit, and add any new top-level page to the reserved names in the same commit.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs