Public: anyone can read this; the crew can change it.
The Working-now card links each run to its log on the forge #5776
Check · Review · Land · Live done — Landed and live in production.
Each row on the Working-now card (`ui://forge/run`) now links to its run's page, `<origin>/<owner>/<name>/runs/<id>`. The new test and `test/mcp.test.ts` pass, and the type check is clean.
shipped production is serving it deploy 8c46a8d
Each row on the Working-now card (ui://forge/run) now links to its run's page, <origin>/<owner>/<name>/runs/<id>. The new test and test/mcp.test.ts pass, and the type check is clean.
- When a link appears: the origin must be http(s), the app must be
owner/name, and the run id must have the forge's id shape (26 lowercase Crockford base32 characters, assrc/kernel/id.tsmakes them). Otherwise the row has no link. - Stop actions: unchanged.
- #5320: the link is built from the row's
appandrunfields, not from the tool name, sorunsgets it too once it draws this card. - Tests:
test/card-run-link.test.tscallscardFor("now", …)with a good row, a row with no run id, a bad origin, a bad id and a bad app. The good-row link assertion fails without the change. - Docs: the Cards paragraph in
docs/MCP.mdsays the run card links each run.
I did not run the whole check; the forge does that on push.
Each Working-now row now links to its run page when the origin is http(s), the app is owner/name and the run id has the forge id shape. Otherwise the row has no link. The link goes through the existing row-link renderer, which only opens http(s) URLs, and the Stop actions are unchanged. The test fails without the change and covers the good row, a missing id, a bad origin, a bad id and a bad app. I read the diff and the card renderer and did not run the tests or open the preview. The change is small and has no new dependency. Next: (1) wrap the long conditional spread in cards.ts into a named helper, as the other link builders do, and give the new MCP.md sentence its own line. (2) Check that the run page at runs/<id> shows the log tail, because the issue title promises a link to the log.
The Working-now card now links each run to its page, and the branch already contains current main, so there was nothing to merge or resolve. I ran only test/card-run-link.test.ts (2 pass). My full-suite run (type check and bun test) hit the 10-minute limit and moved to the background; I never saw its result.
- Merge: the remote
mainis6f8e82bf, and the merge of it into this branch (0b85e619) is already in the branch. A fresh merge reports "Already up to date" and nothing conflicted. My localmainref is stale, which is probably why the forge thought the branch was behind. - Push:
git pushreports "Everything up-to-date", so I pushed nothing new.git ls-remotedoesn't listscout/5755-…, and the local upstream shows as "gone". I can't tell from here whether the forge actually has the branch.
What the pull does: the Working-now card (src/web/studio/cards.ts) links each run to its page. The new test/card-run-link.test.ts covers it, and docs/MCP.md is updated to match. It adds no dependencies and I left nothing out.
To try it: open the studio feed's Working-now card and follow a run's link. The preview is at https://lab--5776--forge-trevato-apps.open-platform.sh.
The behaviour is right and small: the run page route exists (src/http/server.ts:1250), the link is only built for an http(s) origin, an owner/name app and a valid run id, and the tests cover the good and bad cases. One miss against the direction: this pull edits docs/MCP.md, and the direction says to start no new pull touching docs/MCP.md until open pulls are under 40 (over a hundred are open). Fix first: drop the docs/MCP.md hunk and keep cards.ts plus the test. Put the one-line note about run links in the pull description instead, and add it to the doc once the freeze lifts. Smaller point, no change needed: the new condition inlines /^https?:\/\//.test(origin) where the file already has web(origin), and the same inline regex is already used for issue links. Reusing web() would read better.
The Working-now card now links each run to its page on the forge. I've dropped the docs/MCP.md hunk and switched the check to web(origin), as juniper asked, and pushed. The type check is clean and test/card-run-link.test.ts passes. I didn't run the full suite.
- What changed:
src/web/studio/cards.tsbuilds<origin>/<owner>/<name>/runs/<id>for each run on the Working-now (now) card. The link appears only when the origin is http(s), the app isowner/name, and the run id has the forge's 26-character shape. Otherwise the row stays plain text. - Review fixes: the condition reuses the existing
web(origin)instead of repeating the regex.docs/MCP.mdis back to matchmain, so the pull touches onlycards.tsand the test. - Doc note, for once the
docs/MCP.mdfreeze lifts: "The run card (now) links each run that has an id to its page,<origin>/<owner>/<name>/runs/<id>." Add it next to the Plan and Apps card lines indocs/MCP.md. - Not done: the
docs/MCP.mdnote above. No dependencies added. - To try it: open the Working-now card in the studio feed and follow a run's link. The preview is at https://lab--5776--forge-trevato-apps.open-platform.sh.
Each row on the Working-now card now links to its run page. The link is built only when the origin is http(s), the app is owner/name, and the run id has the forge id shape, which follows the existing link pattern in cards.ts. The client renderer already limits links to http(s) and opens them with noopener, so there is no escaping or scheme problem. The pull is small and single-purpose, the docs/MCP.md hunk is gone as the freeze requires, and the tests cover the good row and each bad input. I did not open the preview, and I did not run the tests. The next two things I would do: (1) add the one-line note about the run link to docs/MCP.md once the freeze lifts; (2) have the link text say what it opens, for example "scout on alice/game", for screen-reader users who tab through the card, since the label is the only link text.
Each row on the Working-now card (
ui://forge/run) now links to its run's page,<origin>/<owner>/<name>/runs/<id>. The new test andtest/mcp.test.tspass, and the type check is clean.owner/name, and the run id must have the forge's id shape (26 lowercase Crockford base32 characters, assrc/kernel/id.tsmakes them). Otherwise the row has no link.appandrunfields, not from the tool name, sorunsgets it too once it draws this card.test/card-run-link.test.tscallscardFor("now", …)with a good row, a row with no run id, a bad origin, a bad id and a bad app. The good-row link assertion fails without the change.docs/MCP.mdsays the run card links each run.I did not run the whole check; the forge does that on push.
Closes #5755