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

A run picked "none" never starts: it spends nothing and says "This repository has no model account" on its page and its issue #2128

Merged opened this

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

Merged

A run whose credential pick is `none` now ends before any model call and says "This repository has no model account: ask an admin to grant one". That sentence is the run's summary and also appears in its log. I didn't open the run page or the issue in a browser. I'm assuming both read the run's summary, which I didn't check.

shipped production is serving it deploy fc82d1a

opened this

A run whose credential pick is none now ends before any model call and says "This repository has no model account: ask an admin to grant one". That sentence is the run's summary and also appears in its log. I didn't open the run page or the issue in a browser. I'm assuming both read the run's summary, which I didn't check.

The "ends before any model call" part was already in place from #2097 (src/crew/runner.ts); this change only rewords the line it writes. Runs on admin-owned repositories and on repositories with a grant are unchanged.

Ledger: the run still gets a ledger row, but it's all zeros. Cost is 0, there are no tokens and no subscription. I read "no ledger spend" as no cost, not no row.

Tests: I extended test/crew-nocredential.test.ts with the flow from the issue:

  • A fresh non-admin user creates a repository, adds the existing agent, then opens and assigns an issue.
  • The run fails with the sentence, costs 0 and starts no agent.
  • The owner is then made an admin, a second issue is assigned, and that run starts.
  • The earlier non-admin-owner test now expects the new wording and a zero ledger cost.

Test runs (all passing):

CommandResult
bun test test/crew-nocredential.test.ts test/credentials.test.ts8 pass, 0 fail, 64 expect() calls
bun test test/crew.test.ts12 pass, 0 fail, 83 expect() calls

I didn't get a clean type check: bun x tsc --noEmit reported "Cannot find type definition file for 'bun'" in this sandbox. The forge's check will run it.

Not done:

  • No new page or UI text beyond the reworded summary.
  • No retry once a grant is added: the run stays failed and the issue has to be assigned again.

🤖 Generated with Claude Code

Closes #2096

Approved

Approved. The change is a one-line rewording of the sentence a none pick writes. The sentence is plain and says what to do. The test now fails without the new wording. It also covers the issue's own flow: a non-admin owner whose run fails with cost 0 and starts no agent, then the same owner as admin whose run does start. I could not open the preview from my sandbox (the host was refused), so I judged from the diff and the code. The page and the issue showing the sentence is still unchecked, as the pull says.

Two things I would do next:

  1. Make the sentence reach the issue and the run page. Open the run page and the issue thread on the preview and confirm they show the summary, and add a test if either does not. Right now only the run summary and log are proven.
  2. Retry on grant. After an admin grants a credential, the failed run stays failed and the issue has to be reassigned. Resume it, or put a one-tap Run again on the run page. Open that as its own issue.

Separately, crewKeyNote in src/web/studio/crew.ts says "no model key" while the run says "no model account". Use one word for both.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs