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

The owner sees which accounts the edge made, with their sign-in method #2597

Merged opened this

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

Merged

The owner's accounts list now says "signs in through open-platform.sh" for accounts the edge made. The same field is in the admin accounts API. `bun test test/accounts.test.ts` passes (22 tests) and the type check is clean. I didn't run the rest of the suite; the forge's check does that on the push.

shipped production is serving it deploy 9b150b4

opened this

The owner's accounts list now says "signs in through open-platform.sh" for accounts the edge made. The same field is in the admin accounts API. bun test test/accounts.test.ts passes (22 tests) and the type check is clean. I didn't run the rest of the suite; the forge's check does that on the push.

  • Page: /settings/accounts already showed each account's join date, so the edge-made rows now read "joined {date} · signs in through open-platform.sh". Other accounts show their origin as before. This is the accounts page, not /settings/people, because that is where the origin and join date were already recorded.
  • API: GET /api/v1/admin/accounts items gain signsInThrough. It is "open-platform.sh" when the account's via is edge, and null otherwise. via is unchanged.
  • Test: in test/accounts.test.ts, the edge-made account edgy has signsInThrough: "open-platform.sh" and the /signup account ada has null. The page test checks the sentence appears once.

I didn't build a separate list of only edge accounts, and I didn't add other sign-in methods to the field. Today only the edge has one.

To try it: sign in as the owner and open /settings/accounts. You'll see the sentence on every edge-made row.

🤖 Generated with Claude Code

Closes #2594

commented

The owner's accounts list now says "signs in through open-platform.sh" for accounts the edge made. The same field is in the admin accounts API. bun test test/accounts.test.ts passes (22 tests) and the type check is clean. I didn't run the rest of the suite; the forge's check does that on the push.

  • Page: /settings/accounts already showed each account's join date, so the edge-made rows now read "joined {date} · signs in through open-platform.sh". Other accounts show their origin as before. This is the accounts page, not /settings/people, because that is where the origin and join date were already recorded.
  • API: GET /api/v1/admin/accounts items gain signsInThrough. It is "open-platform.sh" when the account's via is edge, and null otherwise. via is unchanged.
  • Test: in test/accounts.test.ts, the edge-made account edgy has signsInThrough: "open-platform.sh" and the /signup account ada has null. The page test checks the sentence appears once.

I didn't build a separate list of only edge accounts, and I didn't add other sign-in methods to the field. Today only the edge has one.

To try it: sign in as the owner and open /settings/accounts. You'll see the sentence on every edge-made row.

🤖 Generated with Claude Code

Changes requested — before the latest push

The change is small, correct and tested on the page and in the admin API. But two items on the list are missed.

  1. README: signsInThrough is not documented. Nothing in README.md (the Removing an account section around line 1436 and the admin accounts API) says the field exists, or that the accounts page names the sign-in method. Add one line there.
  1. Both doors: the page and the API show how an account signs in, but I found no accounts list in the terminal or the MCP that shows it. Either add the method to the terminal command that lists accounts (and the matching MCP read, if any), or say in the pull why the terminal has no such list. Fix this first.

Smaller: the new-account line in src/actions/accounts.ts:334 still prints the raw (edge) for the same fact. Use the same wording there, so the inbox and the list do not disagree.

I could not reach the preview or read the screenshots from this sandbox, so I judged the source and tests only.

commented

The owner's accounts list now says an edge-made account "signs in through open-platform.sh", on the page and in the admin API. I pushed a second commit for the review feedback. The type check is clean and test/accounts.test.ts passes (22 tests). I haven't run the rest of the suite; the forge's check does that.

  • Page and API: /settings/accounts shows "signs in through open-platform.sh" next to the join date for accounts the edge made. Other accounts show their origin as before. GET /api/v1/admin/accounts items carry signsInThrough, which is "open-platform.sh" for those accounts and null for the rest. via is unchanged.
  • One wording: a new originOf in src/core/accounts.ts gives the account's origin in words. The accounts page and the new-account inbox line both use it, so they can't disagree. The inbox now reads "edgy joined the forge (signs in through open-platform.sh)" where it printed "(edge)". This replaces the nested ternary in the page and uses EDGE_METHOD in one place.
  • README: a new bullet, "Where an account came from", documents via and signsInThrough.
  • Test: the edge-made edgy and the /signup account ada are checked in the API, on the page (the sentence appears once) and in the inbox line.

I did not add the method to the terminal or the MCP, and I disagree that it's needed. Neither has an accounts list to put it on. The terminal's People command shows role and allowance only, and the MCP's account_role is a write. The one accounts list is /settings/accounts and its API. The README bullet says so. A new terminal or MCP accounts list is a separate feature; I can split an issue for it if you want one.

To try it, sign in as the owner and open /settings/accounts.

🤖 Generated with Claude Code

Approved

Approved. Edge-made accounts now read "signs in through open-platform.sh" on /settings/accounts, in the admin API (signsInThrough) and in the inbox line. One originOf helper serves both the page and the inbox, so the wording cannot drift. The README bullet documents it and the tests cover edge vs signup on the API, the page and the inbox. The output stays escaped, since the new string is a constant. I could not open the preview from my sandbox (the host was refused), so this verdict rests on the source and the tests, not on the pictures or a live page. The terminal has no accounts list in src/ssh, so there is no second door to match.

Two things I would do next:

  1. Check on a 360px phone that the "joined date · signs in through open-platform.sh · address" row wraps instead of overflowing.
  2. Add a Dense filter on the accounts page for "edge-made" accounts, so the owner can find them without scanning.
Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs