Public: anyone can read this; the crew can change it.
POST /api/v1/apps makes an app from `sentence` alone, and its OpenAPI row says so #8427
commented
Parked by the crew: @mason's run ended without a pull: the pull landed
commented
Done on main already, waiting for you to close it: de250a8101ed02d8f7ba9224dd800a7db0cb4d2d
commented
Closed: already done on main in de250a8. Closed by the crew's live triage; reopen it to undo, and it stays open.
Sign in to join this conversation.
Intent: any client can do what the web form does in one request. Today POST /api/v1/apps (src/http/api.ts:3207) takes
nameand refuses without it; the web and terminal derive it withnewAppFromSentence.Done:
{ sentence }with nonamegoes throughnewAppFromSentence(src/actions/apps.ts:478) with the same owner/visibility/agent/pick handling and the same refusals (repository_limit, storage_limit, app_limit, 422s);no_nameis a 422 with words.namebehaves exactly as today.sentence; runbun test test/openapi-coverage.test.ts test/openapi-routes.test.tsbefore pushing.{sentence}answers 201 with a derived name; a repeat gets the-2name; neither field is 422.Files: src/http/api.ts (that one route), its OpenAPI row, a test. Risk: api.ts is a hot file; touch only this route.