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

The explorer shows when each app last shipped and can order by it #10771

Merged opened this

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

Merged

Each explorer row now shows its last ship as "shipped 3d ago", escaped, with the absolute UTC date in `title`. The sort and the API field were already on main, so this pull only changes the row.

shipped production is serving it deploy 2937aef

opened this

Each explorer row now shows its last ship as "shipped 3d ago", escaped, with the absolute UTC date in title. The sort and the API field were already on main, so this pull only changes the row.

  • Row (src/web/studio/explore.ts): the meta line now uses the shared time helper where it used timeAgo. Before, the date was plain "last shipped …" text with no title. It is still one line of text, so row height should not change. I haven't checked that visually.
  • Already on main: the sort:fresh filter, its place in the URL, and shippedAt in the API answer. I didn't touch them, and I didn't add anything to the MCP.
  • Test: the new case in test/explore-parity.test.ts checks the <time> markup with the title date on the page and a non-null shippedAt in /api/v1/explore. It would have failed before this change, because the old row had no <time> or title.
  • Checks: test/explore-parity.test.ts and test/mcp-size.test.ts pass, as do tsc, design-lint and gate. I did not run the full suite.
  • Not done: I took no before/after screenshots, because this shell can't render pages. I did not call keep_plan.
  • Try it: open /explore?q=kind:app+sort:fresh and read "shipped … ago" on each app row. Hover it to see the date.
  • Push: the pre-push hook wanted a "Try:" commit, so I added an empty one with that line.

🤖 Generated with Claude Code

Closes #10760

commented

Each explorer row now shows its last ship as "shipped 3d ago", escaped, with the absolute UTC date in title. The sort and the API field were already on main, so this pull only changes the row.

  • Row (src/web/studio/explore.ts): the meta line now uses the shared time helper where it used timeAgo. Before, the date was plain "last shipped …" text with no title. It is still one line of text, so row height should not change. I haven't checked that visually.
  • Already on main: the sort:fresh filter, its place in the URL, and shippedAt in the API answer. I didn't touch them, and I didn't add anything to the MCP.
  • Test: the new case in test/explore-parity.test.ts checks the <time> markup with the title date on the page and a non-null shippedAt in /api/v1/explore. It would have failed before this change, because the old row had no <time> or title.
  • Checks: test/explore-parity.test.ts and test/mcp-size.test.ts pass, as do tsc, design-lint and gate. I did not run the full suite.
  • Not done: I took no before/after screenshots, because this shell can't render pages. I did not call keep_plan.
  • Try it: open /explore?q=kind:app+sort:fresh and read "shipped … ago" on each app row. Hover it to see the date.
  • Push: the pre-push hook wanted a "Try:" commit, so I added an empty one with that line.

🤖 Generated with Claude Code

commented

The failing check was a stale tool table. I regenerated it with bun scripts/mcp-table.ts, which changed two rows in docs/MCP.md, crew and explore. The explore row is stale because of this pull's change. I didn't check why crew was stale. test/mcp-table.test.ts and test/mcp-size.test.ts now pass here, and I've pushed. I didn't re-run the full suite.

The pull's content is otherwise unchanged:

  • Row: each app row in the explorer shows "shipped 3d ago", escaped, with the absolute UTC date in title.
  • Already on main: the sort:fresh filter, its place in the URL, and shippedAt in the API answer.
  • Not done: I took no before/after screenshots, because this shell can't render pages.
  • Try it: open /explore?q=kind:app+sort:fresh.

🤖 Generated with Claude Code

Approved

Small and correct: the row now uses the shared time helper, so the relative date is escaped and the absolute UTC date sits in title. The sort:fresh filter, its URL param and shippedAt in the API were already on main, and the terminal dashboard already prints shipped …, so both doors agree. Next two things: (1) in numbers() build the parts as Html once and join with one helper instead of the filter/map/push/reduce dance, and make the test independent of the fixture age (1d ago) by asserting only the <time … title=…> shape; (2) add the before/after screenshots the issue asked for. I could not confirm the preview text through curl here, so I judged the row from source and the test.

commented

Left #10760 open: 2 unticked items remain (First confirm on main it is not already so (src/web/pages/explorer.ts and the ranking it reads); if it is, close with the commits named.; A test fails without it; bun scripts/design-lint.ts passes; before/after screenshots.).

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs