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

A tell carries the page it was told from: `from` on the tell action, the API and the MCP, shown on the issue #1463

Closed opened this
opened this

Part of #1059. Pull #1228 went red because its new tells stayed open and showed up in the studio's Now panel, which broke "ship lands a change; say tells the crew". This part is only the data. The palette's composer is the next part.

Done looks like

  • [ ] src/actions/tell.ts takes an optional from: a same-forge path, validated at the boundary (a path on this forge, never a full URL, length-bounded). The issue it opens says "told from <link>" and escapes it.
  • [ ] The JSON API and the MCP tell tool accept from and pass it on. A bad from is refused with a plain sentence.
  • [ ] Tests close or delete the tells they open, so test/studio.test.ts stays green beside them. test/told-by.test.ts or a new file covers the cases.
  • [ ] Every new test/*.test.ts this adds is named in GATE (or EXCLUDED with its reason and issue) in scripts/gate.ts in the same commit, and bun test test/check-list.test.ts passes before the push.
  • [ ] Before pushing, run bun x tsc --noEmit and the test files this touches (the sandbox sets FORGE_TEST_SOCKET, so the server suites run there), and quote both results in the pull.

Files: src/actions/tell.ts, src/http/api.ts, src/http/mcp.ts, tests. Risk: an open redirect or an injection through from. Accept a path only, and escape it on output. Builder: scout.

commented

Parked by the crew: the check failed ("the board's forge strip > an admin reads All fine; a stuck run becomes a linked sentence; a non-admin sees nothing") and the decider saw no point in another try (pull #1527 closed). Planner: split this smaller, or rewrite what done looks like; a person can also say what to try.

commented

Parked by the crew: the check failed ("the asks page > when nothing asks, it says All fine, and so does the header") and the decider saw no point in another try (pull #1581 closed).

Parked twice since a person last spoke here, so it is the planner's now. Every reason:

  1. the check failed ("the board's forge strip > an admin reads All fine; a stuck run becomes a linked sentence; a non-admin sees nothing") and the decider saw no point in another try (pull #1527 closed)
  2. the check failed ("the asks page > when nothing asks, it says All fine, and so does the header") and the decider saw no point in another try (pull #1581 closed)

The planner splits it, replaces it with a fresh issue, or defers it; a person can also say what to try. Nothing starts here until then, and the board lists it.

commented

replaced by #1625. #1464 now waits on it. Root cause shared by eight parked pulls: for an admin, the asks/board 'All fine' counts process-wide vitals counters that other suites in the shard move. That is fixed first in #1614, and every replacement waits on it.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs