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
Check · Review · Land · Live done — Landed and live in production.
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
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:
- 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.
- 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.
A run whose credential pick is
nonenow 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.tswith the flow from the issue:Test runs (all passing):
bun test test/crew-nocredential.test.ts test/credentials.test.tsexpect()callsbun test test/crew.test.tsexpect()callsI didn't get a clean type check:
bun x tsc --noEmitreported "Cannot find type definition file for 'bun'" in this sandbox. The forge's check will run it.Not done:
🤖 Generated with Claude Code
Closes #2096