Request
Add clickable column sorting to the data tables across the dashboard UI.
Tables to cover
- Cron Monitoring (
/crons) — sort by: Job, Last Status, Last Run, Avg Duration, Success Rate, Total Runs, Consec. Errors
- Traces (
/traces) — sort by: Name, Status, Duration, Started At
- Models (
/models) — sort by: Model, Requests, Tokens, Cost, p50/p95 Latency
- Health — sort by: Check, Status, Last Checked
- Logs — sort by: Level, Timestamp, Message
Implementation
Client-side JS sort (no server round-trip needed — data is already loaded):
- Add
data-sort attributes to <th> elements identifying the sort key and type (string, number, date)
- On click: toggle
asc/desc, re-sort the <tbody> rows by the column value, update a sort indicator (▲▼) in the header
- Persist sort state in
sessionStorage per table so it survives the 10s auto-refresh
- Default sort per table:
- Crons: Last Run descending (most recent first)
- Traces: Started At descending
- Models: Total Requests descending
UX notes
- Sort indicator should be visible but subtle (inline ▲▼ next to column label)
- Clicking the same column again reverses order
- Unsorted state not needed — always show a sort direction
- Should work alongside the existing 10s auto-refresh (re-apply current sort after data reload)
Request
Add clickable column sorting to the data tables across the dashboard UI.
Tables to cover
/crons) — sort by: Job, Last Status, Last Run, Avg Duration, Success Rate, Total Runs, Consec. Errors/traces) — sort by: Name, Status, Duration, Started At/models) — sort by: Model, Requests, Tokens, Cost, p50/p95 LatencyImplementation
Client-side JS sort (no server round-trip needed — data is already loaded):
data-sortattributes to<th>elements identifying the sort key and type (string,number,date)asc/desc, re-sort the<tbody>rows by the column value, update a sort indicator (▲▼) in the headersessionStorageper table so it survives the 10s auto-refreshUX notes