Archilyzer · Source

archilyzer

Archilyzer
git clone https://archilyzer.pages.dev/source/archilyzer.git
Log | Files | Refs | README | LICENSE

commit e19ea927bf8150b48254acb6efad74dd3d516b21
parent 6e21cf60daadf7dd4a1b39af4d51f5b684d691c2
Author: I Mean I'm Just Saying <imeanimjustsaying@kiwifarms.st>
Date:   Mon, 28 Sep 2026 12:35:47 -0400

umtool: ThumbEntry declares `bg`, relative to the song data dir (review L3)

Type and comment only: `bg` resolves with dataFile(), never
resolveInRoots, which binds a relative path to SONG_REPORTS and does not
stat. `out` says which root it is relative to. Nothing reads `bg` yet.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

Diffstat:
Mumtool/lib/thumbs.ts | 17++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/umtool/lib/thumbs.ts b/umtool/lib/thumbs.ts @@ -33,7 +33,22 @@ export type ThumbCorner = { frameAt?: number; crop?: { x: number; y: number; w: number; h: number }; }; -export type ThumbEntry = { out: string; bgAt?: number; corners?: ThumbCorner[] }; +export type ThumbEntry = { + /** The rendered cover. Relative to SONG_REPORTS (or absolute, in older entries): + * resolveInRoots binds a relative path to SONG_REPORTS, its first root. */ + out: string; + /** + * The background video the frame was cut from. RELATIVE TO THE SONG DATA DIR + * (SONG_DATA), not to SONG_REPORTS: resolve a relative one with `dataFile(bg)`, + * NEVER with `resolveInRoots`, which binds a relative path to SONG_REPORTS and + * does not stat -- it would silently name a file that is not there. Absolute + * (use as is) when it lay outside SONG_DATA (song/make-thumb.mjs `relTo`). + * Nothing reads it yet. + */ + bg?: string; + bgAt?: number; + corners?: ThumbCorner[]; +}; export type ThumbDoc = { version: number; thumbs: Record<string, ThumbEntry>; used?: string[] }; const EMPTY: ThumbDoc = { version: 1, thumbs: {} };