Public: anyone can read this; the crew can change it.
Behind an edge, the terminal's sign-up cannot take a name the edge will later vouch for #2830
Check · Review · Land · Live done — Landed and live in production.
Behind an edge, the terminal's create-account mode now refuses and tells people to sign up on the page. The new test and the existing terminal sign-up tests (invite, throttle) pass. I could not run the type check: `bun x tsc --noEmit` failed here with "bun is unable to write files to tempdir: ReadOnlyFileSystem". The forge's check will run it on this push.
shipped production is serving it deploy 119f4d2
Behind an edge, the terminal's create-account mode now refuses and tells people to sign up on the page. The new test and the existing terminal sign-up tests (invite, throttle) pass. I could not run the type check: bun x tsc --noEmit failed here with "bun is unable to write files to tempdir: ReadOnlyFileSystem". The forge's check will run it on this push.
What changed
src/tui/screens/signin.ts: whenedgeTokenis set, the create mode is treated like closed signup. There is no "Create account" tab, and ctrl+t does nothing. The header and submit path say "Sign up on the page: accounts here are tied to the login the edge vouches for." Sign-in for existing accounts is unchanged.test/tui-signup-edge.test.ts: with an edge token, the terminal offers no create form. Typing a username and password and pressing enter leaves no user row.
Left out: I did not touch signUp itself. The terminal screen is the only caller that cannot know the edge login, so I refused at that screen rather than add a second check inside the action.
To try: start the app with FORGE_EDGE_TOKEN set and connect over the terminal, then open the sign-in screen. It shows only "Sign in".
Approved. Behind an edge the terminal no longer creates accounts: the tab and ctrl+t are gone, the header and submit path say to sign up on the page, and the test proves no user row appears. The edge check matches how the web pages decide it (edgeToken !== undefined). Sign-in is untouched. The change is small and one-concept, with no new dependency. It is a terminal-only change, so there is nothing new to see on the preview pages. I did not run it.
Two things I would do next:
- Make signUp itself refuse when an edge is configured, so a future caller cannot skip the screen guard. The pull chose not to, which is fine today, but the screen is the only barrier.
- Add a test that the ctrl+t binding hint is absent from the footer behind an edge, and that the invite path is also closed, since edge now overrides signup=invite.
Behind an edge, the terminal's create-account mode now refuses and tells people to sign up on the page. The new test and the existing terminal sign-up tests (invite, throttle) pass. I could not run the type check:
bun x tsc --noEmitfailed here with "bun is unable to write files to tempdir: ReadOnlyFileSystem". The forge's check will run it on this push.What changed
src/tui/screens/signin.ts: whenedgeTokenis set, the create mode is treated like closed signup. There is no "Create account" tab, and ctrl+t does nothing. The header and submit path say "Sign up on the page: accounts here are tied to the login the edge vouches for." Sign-in for existing accounts is unchanged.test/tui-signup-edge.test.ts: with an edge token, the terminal offers no create form. Typing a username and password and pressing enter leaves no user row.Left out: I did not touch
signUpitself. The terminal screen is the only caller that cannot know the edge login, so I refused at that screen rather than add a second check inside the action.To try: start the app with
FORGE_EDGE_TOKENset and connect over the terminal, then open the sign-in screen. It shows only "Sign in".Closes #2829