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

MCP explore, feed and forks draw ui:// cards, as held and board do #11502

opened this

Check · Review · Land · Live — No review yet. Next: reviewer, no review yet.

Ready to land

`forks` now draws the `ui://forge/forks` card, and `explore` with `kind: tree` now draws a card of the tree instead of an empty "0 ranked" one. `explore` and `feed` already drew their cards for ranked and timeline answers, so those two needed no change. The tests I ran pass, `bun x tsc --noEmit` is clean, and no new tool was added.

4 files · +84 −3

waiting waiting for sentinel's review deploy cdafc8f

Check passed in 6 minCheck of cdafc8fchecked against main at da127e7fast tier: green in 6m41s · full gate runs on land

Website spec: 23 findings (report only)

Look

9 pages beside main · 0 new to this pull

/apps

main

at da127e7 ·

this pull

In the dark

main

at da127e7 ·

this pull

at cdafc8f ·

/explore

main

at da127e7 ·

this pull

In the dark

main

at da127e7 ·

this pull

at cdafc8f ·

/feed

main

at da127e7 ·

this pull

In the dark

main

at da127e7 ·

this pull

at cdafc8f ·

/front

main

at da127e7 ·

this pull

In the dark

main

at da127e7 ·

this pull

at cdafc8f ·

/map

main

at da127e7 ·

this pull

In the dark

main

at da127e7 ·

this pull

at cdafc8f ·

/notes

main

at da127e7 ·

this pull

In the dark

main

at da127e7 ·

this pull

at cdafc8f ·

/releases

main

at da127e7 ·

this pull

In the dark

main

at da127e7 ·

this pull

at cdafc8f ·

/repos

main

at da127e7 ·

this pull

In the dark

main

at da127e7 ·

this pull

at cdafc8f ·

/review

main

at da127e7 ·

this pull

In the dark

main

at da127e7 ·

this pull

at cdafc8f ·

opened this

forks now draws the ui://forge/forks card, and explore with kind: tree now draws a card of the tree instead of an empty "0 ranked" one. explore and feed already drew their cards for ranked and timeline answers, so those two needed no change. The tests I ran pass, bun x tsc --noEmit is clean, and no new tool was added.

What changed

  • src/web/studio/cards.ts: forks is added to CARD_OF_TOOL, so its tools/list entry points at ui://forge/forks. cardFor has one new branch covering three answers:

- forks page: one row per fork saying N ahead · M behind, or standing unknown when git cannot say. - forks with kind: chain: one row per repo, as role and how it follows. - explore with kind: tree: upstream rows first, then the repo itself, then its forks, with the same follow words and standing as the tree page. It keeps the explore card kind, so it matches the tool's resource.

  • Rows link to the repository and go through the existing text-only card shell, so every field is escaped and only http(s) origins link.
  • Rows stop at 30. After that a "More" row counts the rest, and another says more forks exist when a cursor or truncated is set.
  • Docs and tool text: the card table in docs/MCP.md and the forks tool doc now name the card.
  • test/mcp-cards-explore.test.ts: covers a forks page, a chain and the tree, each with rows and with none, plus escaping and the ranked explore card.

What I checked

  • Run: the new test, test/mcp-size.test.ts, test/mcp-card-table.test.ts, test/mcp-cards.test.ts, test/mcp-cards-coverage.test.ts and test/mcp.test.ts. All 68 pass.
  • MCP size: the ceilings are unchanged. bun scripts/mcp-table.ts ran, and docs/MCP.md changed only where I edited it.
  • Gate: I ran bun scripts/gate.ts, but its output was cut off in my run, so I can't tell you it passed. The forge's check will report it.

What I chose not to do

  • No new tool, and no ui:// resource beyond the existing forks and explore ones.
  • I left feed alone because its ranked and before answers already render through the existing card.

I made an empty "Try:" commit because the pre-push hook refused the push without one.

To try it: call forks { repo } or explore { kind: "tree", app } from a harness that renders MCP Apps.

Closes #11491

commented

forks now draws the ui://forge/forks card, and explore with kind: tree now draws a card of the tree instead of an empty "0 ranked" one. explore and feed already drew their cards for ranked and timeline answers, so those two needed no change. The tests I ran pass, bun x tsc --noEmit is clean, and no new tool was added.

What changed

  • src/web/studio/cards.ts: forks is added to CARD_OF_TOOL, so its tools/list entry points at ui://forge/forks. cardFor has one new branch covering three answers:

- forks page: one row per fork saying N ahead · M behind, or standing unknown when git cannot say. - forks with kind: chain: one row per repo, as role and how it follows. - explore with kind: tree: upstream rows first, then the repo itself, then its forks, with the same follow words and standing as the tree page. It keeps the explore card kind, so it matches the tool's resource.

  • Rows link to the repository and go through the existing text-only card shell, so every field is escaped and only http(s) origins link.
  • Rows stop at 30. After that a "More" row counts the rest, and another says more forks exist when a cursor or truncated is set.
  • Docs and tool text: the card table in docs/MCP.md and the forks tool doc now name the card.
  • test/mcp-cards-explore.test.ts: covers a forks page, a chain and the tree, each with rows and with none, plus escaping and the ranked explore card.

What I checked

  • Run: the new test, test/mcp-size.test.ts, test/mcp-card-table.test.ts, test/mcp-cards.test.ts, test/mcp-cards-coverage.test.ts and test/mcp.test.ts. All 68 pass.
  • MCP size: the ceilings are unchanged. bun scripts/mcp-table.ts ran, and docs/MCP.md changed only where I edited it.
  • Gate: I ran bun scripts/gate.ts, but its output was cut off in my run, so I can't tell you it passed. The forge's check will report it.

What I chose not to do

  • No new tool, and no ui:// resource beyond the existing forks and explore ones.
  • I left feed alone because its ranked and before answers already render through the existing card.

I made an empty "Try:" commit because the pre-push hook refused the push without one.

To try it: call forks { repo } or explore { kind: "tree", app } from a harness that renders MCP Apps.

commented

This push fixes the one failing check: the header-width rule. A comment line at src/web/studio/cards.ts:271 was over 160 columns, so I wrapped it onto two lines. No behaviour changed.

test/header-width.test.ts and bun x tsc --noEmit both pass locally. I didn't run the rest of the suite or bun scripts/gate.ts, since the forge runs the full check on push.

The pull's other content is unchanged: the MCP forks card and the explore card with kind: tree show rows that link to the page each one mirrors.

To try it, open /settings/tokens, make a token, then call forks with a repo.

🤖 Generated with Claude Code

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs