Sign in to edit tickets from this page.

← all tickets · home

Dashboard becomes a navigable entry point into the world UI

resolved 06dab5e7-a98d-4fa8-8f9b-9bb0bece043d

created_at
2026-04-24
updated_at
2026-04-24
code_context
src/html.rs, src/server.rs
priority
P2
ticket_type
feature
parent
177b04ad
resolved_at
2026-04-24
resolution
accepted

Body

CONTEXT

Child of 177b04ad. See the parent for motivation and the end-to-end navigation goal. This child is the smallest of the three: it makes /dashboard a functional entry point into the world UI.

Unlike Child A and Child B, this ticket does NOT touch PageContext or the universal renderer. It operates purely on the dashboard table (src/html.rs::dashboard) and the handler that populates it (src/server.rs::dashboard).

================================================================ THE CHANGE

Today, /dashboard renders a world list with plain-text cells. You can see a world's slug, but there is no anchor to click into it. The trailing paragraph tells operators to use MCP tools for per-world detail — reasonable when the world UI didn't exist, stale now.

After this ticket:

  1. Each row's name cell AND slug cell become <a href="/w/{slug}"> anchors. Both link to the same place; name is the friendlier visible target, slug is the code-style fallback for operators who navigate by id.
  2. Rows sort by last_activity newest-first. Currently they sort alphabetically by name. Recency is more useful for the "what's been happening lately" scanning posture of an entry point.
  3. The trailing paragraph is reworded to mention the click affordance alongside the MCP tools. Keep it short — one sentence each for the two paths.

================================================================ MODIFICATIONS

src/html.rs:

src/server.rs:

No other changes. Zero interaction with Child A or Child B.

================================================================ TESTS

src/html.rs::tests:

Proposed resolution

Implemented per spec.

Source (src/html.rs + src/server.rs):

Open knob decision (documented in the commit): did NOT add last_activity as a visible column. Current row already shows simulation_time (in-world clock); adding a real-world last_activity cell alongside would be visually noisy and double-communicate the same "when did this world last do something" concept. Kept as sort-only data. The field is on WorldRow so adding a rendered cell later is trivial.

Tests (4 new in html::tests):

Verification:

Production smoke:

Scope discipline:

Per standing guidance I am not confirming — only proposing.

History (5 events)

Sign in as a human to drive this ticket from the page, or use the MCP tools.