Skip to content

Experiment 50: the operator machine's second live run - #2

Merged
usirin merged 2 commits into
mainfrom
umut/exp-50-second-run
Oct 11, 2026
Merged

usirin merged 2 commits into
mainfrom
umut/exp-50-second-run

Conversation

@usirin

@usirin usirin commented Oct 11, 2026 •

Copy link
Copy Markdown
Owner

The second live run of the operator machine, on kamp-us/demlik#625, a small code bug picked because its first build might fail review.

It did fail review, and the machine repaired and merged it (PR 628): 40.2 minutes, $7.68, no operator agent, no person, nothing done by hand. It also wasted a quarter of that money: three builders in a row were recorded dead after doing their work.

The write-up is experiment 50.

Before the run

  • The lane's read names the pull request, and every read and write that needs it takes it from there.
  • A wait for checks before a review has a time limit. Past it the run stops.
  • A question nobody answers ends the run parked, with the working copy removed and the lane released. The question is named by the park, not by the run, so a later run finds it and reads the replies since.

What the run showed

  • The repair loop needed no new code. A failed review folds the lane back to build, and the routing table sends build to a builder whatever round it is.
  • Three builders left early. Each ran its wait on CI as a background command and ended its turn. An SDK session ends with its main agent's turn, so the report to the lane never ran. The machine recorded a dead shell and started another, three times, until CI finished. Cost: $1.94 and 236k tokens.
  • The Check refused two harmless commands (a redirect to /dev/null inside a subshell, one to /dev/stdout).

Fixed here

  • The Check refuses a background command and says why; the shell's prompt says it too.
  • The Check no longer takes a device or a bracketed path for a write outside the working copy.
  • The field rows say why a shell was recorded dead.

Cost, beside the other lanes

#600 (agent) #601 (agent) #559 (machine) #625 (machine)
Driver, tokens 115,872 119,072 0 0
Lane total 436,573 373,465 152,432 656,676
Shell runs 3 3 3 8
Minutes 33.8 31.3 18.8 40.2
Dollars not recorded not recorded $1.74 $7.68

#625 is the only one that needed a repair. Without the three early leavers it comes to 420,502 tokens and $5.74.

Not tested yet

The merge-queue Listen, a park, a question to a person, a shell stopped for time or money, a restart, two lanes at once.

State

  • pnpm typecheck: green.
  • pnpm test: 403 passed.

🤖 Generated with Claude Code

usirin and others added 2 commits October 10, 2026 19:25
…s end

The lane's read names the pull request, and the reads and writes that need
it take it from there, so finding it costs no verb. A wait for checks
before a review has a limit; past it the run stops. A question nobody
answers ends the run parked, and it is named by the park, not the run, so
the next run reads on from the same question.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…early

kamp-us/demlik#625 failed its first review, was repaired and merged with
no operator agent and no person: 40.2 minutes, $7.68. Three builders in a
row were recorded dead after doing their work: each left its wait on CI in
the background and ended its turn, which ends an SDK session. The Check now
refuses a background command, and no longer takes a device or a bracketed
path for a write outside the working copy. The write-up, rows and notes.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@usirin
usirin marked this pull request as ready for review October 11, 2026 03:10
@usirin
usirin merged commit fa33488 into main Oct 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant