Skip to main content
← Back to list
01Issue
BugTriagedSwamp CLIPublic
Assigneeshammz

Relationships

#3449 Dashboard: Models and a model's page re-send model.output.search every minute on a preset time range

Opened by hammz · 10/14/2026

Description

Split out of #3444, which fixes the same pattern for the run summary and run search.

Models.tsx (usage column) and ModelDetail.tsx (ModelExecutions) key model.output.search on useTimeBounds() (client/time_range.ts). That hook rounds Date.now() to the minute during render. The health stream re-renders the app every 5 s, so on a preset range (for example the last 7 days) the request's since changes at every minute rollover. The useRequest key changes with it, and the search is sent again. An open Models or model page therefore re-sends the search once a minute, for as long as the tab stays open. useRequest also clears its data on a key change, so the view drops back to loading each minute.

The run queries in #3444 can send a preset as a relative duration (since: 7d), because serve's parseRunTimeBound accepts one. model.output.search cannot: parseInstant in src/libswamp/models/output_search.ts accepts only ISO 8601 times.

Steps to reproduce

  1. Open the Models page, or a model's page, with the dashboard time range on a preset such as 7d.
  2. Leave it open and watch serve's model.output.search requests: one per minute per tab.

Expected

Request volume from an open tab should not depend on how long the tab stays open. Options:

  • Client only: resolve the preset once, when the range is chosen or the page mounts (memoize on the range), and use the same bounds for the request and for filterOutputs.
  • Server and client: accept durations in model.output.search's since and until, as the run queries do, with an ISO fallback for older serves.

Related: #3444.

02Bog Flow
✓OPEN◉TRIAGED○IN PROGRESS○SHIPPED+ 1 MOREASSIGNED+ 5 MOREREVIEW

Triaged

10/14/2026, 5:01:42 PM

Click a lifecycle step above to view its details.

03Sludge Pulse
hammz assigned hammz10/14/2026, 4:58:48 PM

Sign in to post a ripple.