Skip to content

The main bot's free Bops computer is made after a plan read Orgo didn't answer - #60

Open
abhaypadmanabhan wants to merge 2 commits into
OrgoAI:mainfrom
abhaypadmanabhan:dev/abhay-free-computer-after-failed-read
Open

abhaypadmanabhan wants to merge 2 commits into
OrgoAI:mainfrom
abhaypadmanabhan:dev/abhay-free-computer-after-failed-read

Conversation

@abhaypadmanabhan

Copy link
Copy Markdown

What was wrong

When GET /api/billing/compute-limits failed or timed out once while the main bot's computer was being made, makeMainComputer couldn't tell whether the user's free Bops computer was made yet, so it asked Orgo for an ordinary computer on the plan instead:

  • Plan full (for example Hacker, with its one computer used outside Bops): Orgo refused it, and setup said the plan was full.
  • Plan with room: it took a computer on the plan, and the free one was never made.

What changes

  • OrgoPlan.limitsUnread says Orgo didn't answer compute-limits (it failed, timed out, or the user owns no workspace to ask about).
  • makeMainComputer goes through freeKnown: on an unread plan it finds or makes the main bot's workspace and asks Orgo again. Still unknown, nothing is made, setup says "Orgo didn't say whether your free Bops computer is made yet", and the next task tries again.
  • Unchanged: not signed in (a self-hosted install on its own key), an Orgo without bops_free_computer_id, and a free computer that is already made.

Proof

  • scripts/test-plan.mjs: new cases for a full plan, a plan with room, Orgo not answering again, and another user's state swapped in during the read. The first failed before the fix with "Your Orgo Hacker plan includes 1 computer, and it's in use outside Bops."; all pass now (601 fake Orgo calls).
  • test-brains, test-brains-off and test-ws-migration pass; tsc (app and cloud) and eslint on the touched files are clean.
  • Reviewed by a second model (Codex): spec and proof passed; its one finding (check the account before the workspace step) is fixed in the second commit, and the re-check passed.
  • Not done: the real app against real Orgo. The 8 s timeout is simulated with a 503.

🤖 Generated with Claude Code

abhaypadmanabhan and others added 2 commits October 21, 2026 13:09
…'t answer, never one on the plan in its place

When compute-limits failed or timed out once as the main bot's computer was made, Bops didn't know the
free Bops computer was still to be made, so it asked Orgo for an ordinary computer on the plan. With the
plan full (Hacker with its one computer used outside Bops), Orgo refused it and the setup said the plan
was full; with room, it took the plan's computer and the free one was never made.

Now the plan says when Orgo didn't answer for it (OrgoPlan.limitsUnread), and makeMainComputer asks
again (freeKnown), after the main bot's workspace is found or made. Still unknown, nothing is made and
the setup says why; the next task tries again. Not signed in (a self-hosted install on its own key),
nothing changes. scripts/test-plan.mjs covers both plans (full and with room) and Orgo not answering.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…workspace

Review finding: when another user's state came in while the plan was read (a hosted server), freeKnown
went on to find or make the main bot's workspace under the new state before sameUser stopped it. Now
sameUser runs first. scripts/test-plan.mjs swaps the state during that read for a user with no
workspace yet and checks nothing is made.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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