Anonymous users may spawn a child forge #17

Merged
trevato merged 1 commit from anon-spawn into main 2026-10-10 14:46:37 +00:00
Owner

Allows anonymous users (no account) to spawn a child forge via /forges/new and POST /api/v1/forges.

  • GET /forges/new renders for anonymous (simplified form: public apps only, no crew/key/budget)
  • spawnDoor accepts undefined user; anonymous blocked from modelKey/crew/keepAccess
  • Child automatically forks the parent forge code (via forgeRepo config) with full history; upstream recorded in parent.json
  • Rate limit: 3 anonymous spawns per IP per 24h (429 when exceeded); dry-runs free
  • Claim flow unchanged: opener creates account, becomes admin

Deploy note: set forgeRepo: "trevato-apps/forge" in production config for the code fork.

25 spawn tests pass, tsc clean.

Allows anonymous users (no account) to spawn a child forge via `/forges/new` and `POST /api/v1/forges`. - `GET /forges/new` renders for anonymous (simplified form: public apps only, no crew/key/budget) - `spawnDoor` accepts undefined user; anonymous blocked from modelKey/crew/keepAccess - Child automatically forks the parent forge code (via `forgeRepo` config) with full history; upstream recorded in `parent.json` - Rate limit: 3 anonymous spawns per IP per 24h (429 when exceeded); dry-runs free - Claim flow unchanged: opener creates account, becomes admin **Deploy note**: set `forgeRepo: "trevato-apps/forge"` in production config for the code fork. 25 spawn tests pass, tsc clean.
feat(spawn): anonymous users may spawn a child forge
Some checks failed
check / gate (1) (pull_request) Failing after 2m9s
check / gate (2) (pull_request) Failing after 9m26s
check / gate (3) (pull_request) Failing after 3m54s
check / check (pull_request) Failing after 1s
preview / preview (pull_request) Successful in 5s
6d73823359
A stranger (no account) can now open /forges/new and POST /api/v1/forges
to start a child forge. The child forks the parent's own code
(config forgeRepo, e.g. trevato-apps/forge) with full history into
<org>/forge, recording the upstream in parent.json so it can follow its
parent. Anonymous spawns are rate-limited to 3 per client per 24 hours
(429 when exceeded); dry-runs are free. A model key is refused for
anonymous spawns; keepAccess and 'for whom' do not apply. The claim flow
is unchanged: whoever opens the claim link first becomes admin.
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
trevato-apps/forge!17
No description provided.