mirror of
https://github.com/Comfy-Org/comfyci-runpod-worker.git
synced 2026-11-04 23:47:32 +00:00
[PR #3] [MERGED] Add a run index so the dashboard can show regression history #2
Labels
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Comfy-Org/comfyci-runpod-worker#2
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/Comfy-Org/comfyci-runpod-worker/pull/3
Author: @marawan206
Created: 10/5/2026
Status: ✅ Merged
Merged: 10/8/2026
Merged by: @alexisrolland
Base:
storage-hygiene← Head:run-index📝 Commits (3)
82c3033Add a run index for the dashboard's history view26c783aMaintain the run index on every publish and write WebP thumbnailsff02da6Prefetch summaries and run records in one round trip for the index backfill📊 Changes
12 files changed (+991 additions, -32 deletions)
View changed files
➕
.github/workflows/build-index.yml(+44 -0)📝
README.md(+25 -0)➕
manifest/lanes.json(+18 -0)➕
scripts/build_index.py(+58 -0)➕
scripts/commit_meta.py(+87 -0)➕
scripts/index_builder.py(+357 -0)📝
scripts/run_regression.py(+59 -0)📝
scripts/storage.py(+43 -4)📝
scripts/tests/conftest.py(+42 -0)➕
scripts/tests/test_index_builder.py(+229 -0)📝
scripts/tests/test_run_regression.py(+15 -0)📝
scripts/tests/test_storage.py(+14 -28)📄 Description
Why
The dashboard could only read
latest/<branch>.jsonand one summary at a time, so the 230 published runs were invisible and the first bad commit of the current FLUX regression had to be found by hand (it isb5cc8830, #16488; every run since is bit-identical).What
index_builder.pyderives compact entries (verdict, drift class, output sha, metrics, timings, commit subject/author/PR, tested range) and writes, underregression/index/: a per-lane head file with the newest 500 runs and the first bad commit of every open failing chain, complete monthly shards, andlanes.json(lane registry from the newmanifest/lanes.json, per-branch latest pointer and shard list, current golden tag and output sha per workflow). Entries are ordered by commit time so re-testing an older commit never reorders history; a chain opens on a fail or an execution error and records which; a chain whose latest output is the blessed golden (accepted drift) is not reported; a partial re-run keeps the other workflows' cells; a re-test that moves an entry between months leaves no duplicate.commit_meta.pylooks up commit subject/author/PR/parents and the tested range through the GitHub API with the Actions token (null-tolerant, reports rate-limit misses).run_regression.pyresolves the lane frommanifest/lanes.jsonbefore any GPU job is submitted, records lane, commit metadata and tested range insummary.json, registers the index update as a derived writer (rebuilt on the freshest tree if the push retries), and writes 256-px WebP previews underoutputs/thumbs/.build_index.py+ theBuild run indexworkflow backfill or repair a branch/lane from the committed summaries through a derived writer;GitHubStorage.prefetchfetches the needed blobs in one round trip. The workflow has its own concurrency group, a timeout, and passes inputs through the environment.Data contract for the dashboard:
index/lanes.json,index/<branch>/<lane>.json(head),index/<branch>/<lane>/<YYYY-MM>.json(shards); entry fieldsc, t, o, infra, cv, lane, layout, m{s,a,pr,ct}, prev, range{n,url}, w{<wf>{v,d,sha,mse,psnr,pct,pv,exec,vram,g,th}}, s.Verification
python -m pytest scripts/tests -q(entry shape, drift classification incl. golden changes, first-bad detection incl. crashes and commit-time ordering, merging of partial re-runs, backfill + incremental upsert on a real git remote, refresh after a bless, shard moves without duplicates, two concurrent publishers both landing, prefetch).first_bad.flux_dev_t2i=b5cc8830…(prev good912fca4f…, PR 16488, 67 runs); exactly onenew_driftand 66inherited; commit metadata for 230/230; tested range for 226 (the rest have no previous run); output sha for 228 (two infra-error runs have no outputs). The resulting index is already published on the results branch so the dashboard history PR can be previewed against real data.Stacked on #2; followed by #4.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.