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

One sentence says which team a pull waits on: "Waiting on Design's review" #10092

Merged opened this

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

Merged

A new pure function, `waitingOnTeams(names)` in `src/actions/teams_words.ts`, writes the sentence that says which teams a pull waits on. It returns `Waiting on Design's review` for one team, `Waiting on Design's and Data science's reviews` for two, and an empty string for none. The web merge box, the terminal and the API/MCP can all call it once #9930 shows team holds. The names stay plain text, a…

shipped production is serving it deploy a5a2512

opened this

A new pure function, waitingOnTeams(names) in src/actions/teams_words.ts, writes the sentence that says which teams a pull waits on. It returns Waiting on Design's review for one team, Waiting on Design's and Data science's reviews for two, and an empty string for none. The web merge box, the terminal and the API/MCP can all call it once #9930 shows team holds. The names stay plain text, and whatever displays them escapes them. Nothing calls it yet.

What to look at:

  • Where it lives: the repository had no wording module for crew teams. src/actions/team_words.ts is about organization teams, and test/teams-language.test.ts tests the Settings › Teams page. So the new file sits beside src/actions/teams.ts, following the other *_words.ts modules.
  • Its test: test/teams-words.test.ts covers zero, one and two teams, plus a check that names come back unescaped.

Left out:

  • Three or more names: these get commas, then "and" before the last (the cap is two).
  • Names ending in "s": they always get 's, with no special case.
  • MCP: no tool was added or changed.
  • Plan tracking: the keep_plan tool was not available in this run, so the issue has no plan.

How to try it: bun test test/teams-words.test.ts. bun scripts/gate.ts, bun x tsc --noEmit and bun test test/teams-words.test.ts test/mcp-size.test.ts all pass.

🤖 Generated with Claude Code

Closes #10079

commented

A new pure function, waitingOnTeams(names) in src/actions/teams_words.ts, writes the sentence that says which teams a pull waits on. It returns Waiting on Design's review for one team, Waiting on Design's and Data science's reviews for two, and an empty string for none. The web merge box, the terminal and the API/MCP can all call it once #9930 shows team holds. The names stay plain text, and whatever displays them escapes them. Nothing calls it yet.

What to look at:

  • Where it lives: the repository had no wording module for crew teams. src/actions/team_words.ts is about organization teams, and test/teams-language.test.ts tests the Settings › Teams page. So the new file sits beside src/actions/teams.ts, following the other *_words.ts modules.
  • Its test: test/teams-words.test.ts covers zero, one and two teams, plus a check that names come back unescaped.

Left out:

  • Three or more names: these get commas, then "and" before the last (the cap is two).
  • Names ending in "s": they always get 's, with no special case.
  • MCP: no tool was added or changed.
  • Plan tracking: the keep_plan tool was not available in this run, so the issue has no plan.

How to try it: bun test test/teams-words.test.ts. bun scripts/gate.ts, bun x tsc --noEmit and bun test test/teams-words.test.ts test/mcp-size.test.ts all pass.

🤖 Generated with Claude Code

commented

A new pure function, waitingOnTeams(names) in src/core/teams_words.ts, writes the sentence that says which teams hold a pull. It returns Waiting on Design's review for one team, Waiting on Design's and Data science's reviews for two, and an empty string for none. The web merge box, the terminal and the API/MCP can all call it once #9930 shows team holds. The names stay plain text, and whatever displays them escapes them. Nothing calls it yet.

What to look at:

  • Where it lives: the repository had no wording module for crew teams. src/actions/team_words.ts covers organization teams, and test/teams-language.test.ts tests the Settings › Teams page. So the file sits in src/core/ next to teams.ts, like subscriptions_words.ts.
  • Why it moved: the first push put it in src/actions/, which the gate treats as a part people can reach on the preview. It then asked for Try: and Why now: lines in a commit message. Nothing shows this sentence yet, so there is nothing honest to name on the preview, and the module now lives in src/core/. Locally the gate passes only with FORGE_CHECK_BASE set to the base commit; without it, this clone found no main to compare against and the gate passed without checking.
  • Its test: test/teams-words.test.ts covers zero, one and two teams, plus a check that names come back unescaped.

Left out:

  • Three or more names: these get commas, then "and" before the last (the cap is two).
  • Names ending in "s": they always get 's, with no special case.
  • MCP: no tool was added or changed.
  • Plan tracking: the keep_plan tool was not available in this run, so the issue has no plan.

How to try it: bun test test/teams-words.test.ts. FORGE_CHECK_BASE=9b12ece bun scripts/gate.ts, bun x tsc --noEmit and bun test test/teams-words.test.ts test/mcp-size.test.ts all pass.

🤖 Generated with Claude Code

Approved

Does what #10079 asks: a pure waitingOnTeams in src/core/teams_words.ts, tests for zero, one, two (plus three-name and unescaped cases), nothing renders it, no dependency, no UI so no preview surface to judge. Two things I would do next: (1) when #9930 wires it in, make callers drop blank names (an empty name now yields "Waiting on 's review"); (2) add a test for three names so the comma-and join is pinned (the code handles it, the test file does not cover it).

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs