From 2c96f53a4b3424816dc510b9715baeb9cd697486 Mon Sep 17 00:00:00 2001 From: Brad Anderson Date: Mon, 12 Oct 2026 19:04:33 -0700 Subject: [PATCH] =?UTF-8?q?webui:=20mark=20songs=20with=20hand=20edits=20i?= =?UTF-8?q?n=20the=20queue=20and=20REBUILD=20ALL=20FROM=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A song's edits are kept through any rebuild, but nothing said which songs had them. GET /api/jobs and GET /api/rebuild-all now report each song's edited and set-aside lines, read from its edits file, on the job standing for the song only, since the runs it replaced would claim the same edits. Queue cards show them as a badge, and the rebuild dialog lists them per song and says hand edits are kept. --- src/songtrace/static/index.html | 54 +++++++++++++++++++++++++++++++-- src/songtrace/web.py | 19 ++++++++++-- tests/test_web.py | 37 ++++++++++++++++++++++ 3 files changed, 105 insertions(+), 5 deletions(-) diff --git a/src/songtrace/static/index.html b/src/songtrace/static/index.html index e8ed268..390781c 100644 --- a/src/songtrace/static/index.html +++ b/src/songtrace/static/index.html @@ -463,6 +463,11 @@ button { cursor: pointer; } } .lineage:hover { border-bottom-color: var(--aqua); } .job-mark { grid-area: 1 / 2; justify-self: end; font-size: 0.8rem; color: var(--text-muted); } +.job-edits { grid-area: 2 / 2; justify-self: end; display: flex; gap: 6px; font-size: 0.72rem; } +.job-edits-kept { color: var(--aqua); } +.job-edits-stale { color: var(--warn); } +.rebuild-all-kept { color: var(--aqua); } +.rebuild-all-aside { color: var(--warn); } #detail { margin: 13px 0 0; @@ -584,7 +589,8 @@ button { cursor: pointer; }

REBUILD ALL SONGS

Reruns the songs ticked below from the chosen stage onwards with the - inputs they have now, for when a songtrace update improves that stage.

+ inputs they have now, for when a songtrace update improves that stage. + Lines edited by hand are kept.