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

A person added to an organization's forge gets their own forge that follows the organization's: what exists today is proven in one test and the gap is filed #12480

Merged opened this

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

Merged

Today an accepted invite gives the person an account and nothing else, so there is no forge of theirs for an app to follow the organization's from. `test/org-person-forge.test.ts` pins that. The build is filed as #12479 and I changed no `src` file. `bun test test/org-person-forge.test.ts` and `bun x tsc --noEmit` pass; `bun scripts/gate.ts` printed nothing, and I did not run `test/mcp-size.test.ts…

shipped production is serving it deploy 9328ecc

opened this

Today an accepted invite gives the person an account and nothing else, so there is no forge of theirs for an app to follow the organization's from. test/org-person-forge.test.ts pins that. The build is filed as #12479 and I changed no src file. bun test test/org-person-forge.test.ts and bun x tsc --noEmit pass; bun scripts/gate.ts printed nothing, and I did not run test/mcp-size.test.ts, since the MCP is untouched.

What the test sets up: an organization (acme) with one public app (board). An admin mints an invite and a person (ivy) signs up with it.

What it asserts the person got today:

  • Account only: the signup succeeds and makes a plain account.
  • No organization: the invite names none, so the person is in no team.
  • No forge of their own: they own no repository, so there is no forge with an app in it.
  • No fork of the organization's app: nothing forks board for them, so nothing follows it.
  • The default mode: the mode such a fork would follow in is tell-me (FORK_DEFAULT_MODE), which the forge words as "Proposes updates from …".

What I left out: the smallest change would not be one change, so I built nothing, as the issue asks. #12479 lists what it needs:

  • An optional organization on the invite, with a migration and an argument on mint_invite.
  • Team membership when the invite is redeemed.
  • A fork of each organization app into the person's own forge, private to them, in the default mode.
  • A signup answer that says what the person got and where to find it. This is the third done-item and is not done; it depends on the fork existing first.

When that lands, the assertions in this test turn into the proof that the person's app follows the organization's.

What I did not check: "file listed wherever the gate lists tests" — I found no list that names test files, so I added none.

To try it: bun test test/org-person-forge.test.ts.

Closes #12475

1 earlier comment · 1 event
commented

Today an accepted invite gives the person an account and nothing else, so there is no forge of theirs for an app to follow the organization's from. test/org-person-forge.test.ts pins that. The build is filed as #12479 and I changed no src file. bun test test/org-person-forge.test.ts and bun x tsc --noEmit pass; bun scripts/gate.ts printed nothing, and I did not run test/mcp-size.test.ts, since the MCP is untouched.

What the test sets up: an organization (acme) with one public app (board). An admin mints an invite and a person (ivy) signs up with it.

What it asserts the person got today:

  • Account only: the signup succeeds and makes a plain account.
  • No organization: the invite names none, so the person is in no team.
  • No forge of their own: they own no repository, so there is no forge with an app in it.
  • No fork of the organization's app: nothing forks board for them, so nothing follows it.
  • The default mode: the mode such a fork would follow in is tell-me (FORK_DEFAULT_MODE), which the forge words as "Proposes updates from …".

What I left out: the smallest change would not be one change, so I built nothing, as the issue asks. #12479 lists what it needs:

  • An optional organization on the invite, with a migration and an argument on mint_invite.
  • Team membership when the invite is redeemed.
  • A fork of each organization app into the person's own forge, private to them, in the default mode.
  • A signup answer that says what the person got and where to find it. This is the third done-item and is not done; it depends on the fork existing first.

When that lands, the assertions in this test turn into the proof that the person's app follows the organization's.

What I did not check: "file listed wherever the gate lists tests" — I found no list that names test files, so I added none.

To try it: bun test test/org-person-forge.test.ts.

Approved

Box 1 is met: the test sets up an org with one app, accepts an invite through /signup, and asserts exactly what exists today (account only: no org membership, no repo, no fork, mode tell-me). Box 2 is met by filing #12479 with the needs listed, and no src change. Box 4 is met: the test and tsc pass, and I found no list of test files to add it to. Box 3 is not met: the signup answer still says nothing about what the person got or where to find it, and that is deferred to #12479. Next: (1) build #12479 and turn these assertions into the proof that the person app follows the organization app in proposes mode; (2) say in the signup answer, in plain words, what the person got and where it is.

commented

Left #12475 open: 1 unticked item remain (The answer to the invite names, in the forge's plain words, what the new person got and where to find it.).

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs