Baseline: full tree snapshot after git repository loss

The previous .git directory was found gutted (only info/ remained), so
history is unrecoverable locally. This commit restores version control
with the tree exactly as it stands: the working app, the preview-tracks
launcher on the artist hero, the scrollable-track-previews design bundle
(docs + approved mockups), and the Phase 0 validation artifacts.
This commit is contained in:
KeelrLeek committed 2026-07-22 17:57:00 -05:00
commit a667b4b28e
161 files changed
+53170

No files matched your search

+44
View File
@@ -0,0 +1,44 @@
//! Hardened cover-resolution report across a whole discography.
//! cargo run -p metadata --example cover_probe -- input.json output.json
//!
//! input.json: { "albums": [ { "artist": "...", "title": "...", "cover": "<url>" }, ... ] }
//! output.json: [ CoverReport, ... ] (reference + candidates + chosen, with dHash distances)
#[derive(serde::Deserialize)]
struct Album {
artist: String,
title: String,
cover: Option<String>,
}
#[derive(serde::Deserialize)]
struct Input {
albums: Vec<Album>,
}
#[tokio::main]
async fn main() {
let in_path = std::env::args().nth(1).expect("input.json");
let out_path = std::env::args().nth(2).expect("output.json");
let raw = std::fs::read_to_string(&in_path).expect("read input");
let input: Input =
serde_json::from_str(raw.trim_start_matches('\u{feff}')).expect("parse input");
let client = metadata::MetadataClient::new();
let mut reports = Vec::new();
let total = input.albums.len();
for (i, a) in input.albums.iter().enumerate() {
let reference = a.cover.clone().unwrap_or_default();
let report = client.cover_report(&a.artist, &a.title, &reference).await;
eprintln!(
"[{}/{}] {} :: chosen={:?} ({} candidates)",
i + 1,
total,
a.title,
report.chosen_source,
report.candidates.len()
);
reports.push(report);
}
std::fs::write(&out_path, serde_json::to_string(&reports).unwrap()).expect("write output");
eprintln!("wrote {out_path}");
}