Part of #5930 (the steward's trap 5): verdicts and comments on approved pulls reach nobody.
Done:
[ ] One function decides, from plain data, who acts next on an open pull: its builder (changes asked, red, conflicted), the reviewer (pushed since review), the queue (approved and green), or a person (held, or handed over), with the reason.
[ ] The pull page draws it as one line under the title. MCP pull returns it as next: { who, why }.
[ ] A table test covers each case and fails without the function.
Files: a new src/flow/next_actor.ts, src/web/pages/pull.ts, src/http/mcp/tools/pull.ts, a test.
Before pushing: bun x tsc --noEmit and the tests you add or touch; bun scripts/design-lint.ts if src/web/ changes. Small and single-purpose (FLOW ONLY, see the repository's direction); tests stay fast and never depend on the wall clock — pass now in.
Part of #5930 (the steward's trap 5): verdicts and comments on approved pulls reach nobody.
Done:
pullreturns it asnext: { who, why }.Files: a new src/flow/next_actor.ts, src/web/pages/pull.ts, src/http/mcp/tools/pull.ts, a test.
Before pushing:
bun x tsc --noEmitand the tests you add or touch;bun scripts/design-lint.tsif src/web/ changes. Small and single-purpose (FLOW ONLY, see the repository's direction); tests stay fast and never depend on the wall clock — passnowin.