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

The runs list shows agent runs, checks and deploys together by default, with the three as filters #2400

Merged opened this

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

Merged

`/:owner/:name/runs` now lists agent runs, checks and deploys together, newest first. Three links under the list (Agent runs · Deploys · Checks) narrow it by kind.

shipped production is serving it deploy 1a6be99

opened this

/:owner/:name/runs now lists agent runs, checks and deploys together, newest first. Three links under the list (Agent runs · Deploys · Checks) narrow it by kind.

I did not get a type check. bun x tsc --noEmit fails here with "Cannot find type definition file for 'bun'", even after bun install. The forge's check will run it.

  • Filter links: The current kind shows in bold, and an "All" link appears once a kind is chosen. ?kind=agent|deploy|check narrows the list. The old ?kind=deploy and ?kind=check links keep their meaning. An unknown ?kind= value gives the full list.
  • Check rows: A check's row title names the pull and head, for example "Check of abcdef1 for #3". Its meta line shows the head, the state (passed, failed, and so on) and "took 3.2s".
  • Finished checks and deploys: With no ?word= chosen, they now show in the list. Before, the default word filter hid them as "shipped". Agent runs follow the same word filter as before, and ?word= still narrows every kind.
  • Scope: The change is in src/web/studio/lists.ts, with no layout, nav or other page changes.

Tests: I added a test in test/studio-changes.test.ts. An agent run, a check and a deploy all show with no filter, and each ?kind= filter shows only its own kind.

I ran test/studio-changes.test.ts, test/web-origins.test.ts and test/web-code.test.ts together:

82 pass
0 fail
598 expect() calls
Ran 82 tests across 3 files.

bun test test/studio also passes, with 191 tests across 8 files.

Left out: Pagination and the empty-state wording are unchanged apart from the new default.

Try it: open /<owner>/<repo>/runs, then use the links under the list.

🤖 Generated with Claude Code

Closes #2381

commented

/:owner/:name/runs now lists agent runs, checks and deploys together, newest first. Three links under the list (Agent runs · Deploys · Checks) narrow it by kind.

I did not get a type check. bun x tsc --noEmit fails here with "Cannot find type definition file for 'bun'", even after bun install. The forge's check will run it.

  • Filter links: The current kind shows in bold, and an "All" link appears once a kind is chosen. ?kind=agent|deploy|check narrows the list. The old ?kind=deploy and ?kind=check links keep their meaning. An unknown ?kind= value gives the full list.
  • Check rows: A check's row title names the pull and head, for example "Check of abcdef1 for #3". Its meta line shows the head, the state (passed, failed, and so on) and "took 3.2s".
  • Finished checks and deploys: With no ?word= chosen, they now show in the list. Before, the default word filter hid them as "shipped". Agent runs follow the same word filter as before, and ?word= still narrows every kind.
  • Scope: The change is in src/web/studio/lists.ts, with no layout, nav or other page changes.

Tests: I added a test in test/studio-changes.test.ts. An agent run, a check and a deploy all show with no filter, and each ?kind= filter shows only its own kind.

I ran test/studio-changes.test.ts, test/web-origins.test.ts and test/web-code.test.ts together:

82 pass
0 fail
598 expect() calls
Ran 82 tests across 3 files.

bun test test/studio also passes, with 191 tests across 8 files.

Left out: Pagination and the empty-state wording are unchanged apart from the new default.

Try it: open /<owner>/<repo>/runs, then use the links under the list.

🤖 Generated with Claude Code

commented

The runs list at /:owner/:name/runs now shows agent runs, checks and deploys together, newest first. Three links under the list (Agent runs · Deploys · Checks) narrow it to one kind.

The first push failed the forge's type check. In my new test, createRun was given actorId: null where the option type is string | undefined. I changed it to undefined, which is a fix to the test only. This time tsc --noEmit ran locally and came back clean, and test/studio-changes.test.ts passes (26 tests). I did not re-run test/web-origins.test.ts or test/web-code.test.ts after this fix. The change since their earlier 82-test pass is that one test line.

  • Filter links: The current kind shows in bold, and an "All" link appears once a kind is chosen. ?kind=agent|deploy|check narrows the list, and an unknown value gives the full list. The old ?kind=deploy and ?kind=check links keep their meaning.
  • Check rows: The title names the pull and head, for example "Check of abcdef1 for #3". The meta line shows the head, the state (passed, failed, and so on) and "took 3.2s".
  • Finished checks and deploys: With no ?word= chosen they now show in the list. Before, the default word filter hid them as "shipped". ?word= still narrows every kind, and agent runs follow the same word filter as before.
  • Scope: The change is in src/web/studio/lists.ts, with no layout, nav or other page changes.

Test: A new test in test/studio-changes.test.ts creates an agent run, a check and a deploy. It checks that all three show with no filter and that each ?kind= filter shows only its own kind.

Left out: Pagination and the empty-state wording are unchanged apart from the new default.

Try it: open /<owner>/<repo>/runs, then use the links under the list.

🤖 Generated with Claude Code

Approved

The change does what the issue asks. /runs shows agent runs, checks and deploys together, and ?kind= narrows to one. Unknown kind values fall back to the full list. Old ?kind=deploy and ?kind=check links keep their meaning. The new test would fail without the change, and the pull is green. The change is read-only, so there is no new write, identity or escaping surface. Check rows are escaped through html``.

I could not open the preview or the screenshots from my sandbox, so the first-paint, 360px and layout checks are from reading the source only.

Two things to do next:

  1. The Show Agent runs · Deploys · Checks · All links sit in a muted small line under the list. On a phone, that is a thumb target well under 44px, and the filter is below a possibly long list. Make them a row of padded chips above the list, with aria-current on the active one instead of bold only.
  2. The tty has no per-repo runs list that mixes kinds (only the deploys screen). Add one if the page filters matter to the owner there. Also say in the README that checks now appear in the default list.
Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs