Skip to content

feat(master): POST /experiments/{name}/rescan refreshes one store's stats now - #283

Merged
beinan merged 1 commit into
lance-format:mainfrom
beinan:feat/master-rescan-one
Sep 30, 2026
Merged

beinan merged 1 commit into
lance-format:mainfrom
beinan:feat/master-rescan-one

Conversation

@beinan

@beinan beinan commented Sep 30, 2026

Copy link
Copy Markdown
Collaborator

Problem

The merge sweep picks targets from the stats table, which the scanner refreshes on its interval (300 s in production). When a row is known to be wrong — mai3_bigclimb_run6p5_77b_t0r1 showed 3 pending generations while its shards held 17,254 (#281) — an operator had no direct way to correct it: wait for the next scan, or call GET /experiments/{name}?fresh=true, which reads as a query rather than a scheduler input change.

Fix

POST /api/v1/experiments/{name}/rescan: resolves the store through the registry (404 if absent), runs the existing scanner::refresh_one (full observation under the stats-writer lock, upserts the row) and returns the refreshed ExperimentDetail.

Verification

  • rescan_experiment_refreshes_pending_generations (etcd-backed): 0 → 2 flushed generations; the response and the persisted row both report 2; unknown name → NotFound.
  • Master suite incl. --include-ignored passes; clippy clean.

🤖 Generated with Claude Code

…tats now

The merge sweep schedules from the stats table, which the scanner
refreshes every interval. When a store's row is known to be wrong (it
was for 17k pending generations before lance-format#281) an operator had no way to
correct it short of waiting for the next round or hitting the detail
route with ?fresh=true, which reads as a query. This is the same
refresh_one, as a POST that returns the refreshed summary.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@beinan
beinan merged commit 70cba39 into lance-format:main Sep 30, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant