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:
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: {} };