Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
f2958d1
test(core): red — classify a track's instrumental role for ingest
PhysShell Jul 18, 2026
2ba4b4a
feat(core): green — classify track role from name, channel, and tuning
PhysShell Jul 18, 2026
a4164e0
test(core): red — select the guitar (and optional bass) tracks to ingest
PhysShell Jul 18, 2026
64c28dd
feat(core): green — select guitar and optional bass tracks to ingest
PhysShell Jul 18, 2026
49cc577
test(core): red — label a tuning by name, spelling the unknown ones
PhysShell Jul 18, 2026
5d2eae7
feat(core): green — label common tunings by name, spell the rest
PhysShell Jul 18, 2026
e6f78ae
test(cli): red — assemble one tab into linked, rights-stamped phrase …
PhysShell Jul 18, 2026
dea1880
feat(cli): green — griff ingest bulk-builds linked corpus chunks from…
PhysShell Jul 18, 2026
56950e5
test(cli): red — colliding source stems must get distinct group ids
PhysShell Jul 18, 2026
d386446
fix(cli): green — give colliding source stems distinct group ids
PhysShell Jul 18, 2026
66c8844
test(core): red — a tuning's label must not depend on string order
PhysShell Jul 18, 2026
65e1d7b
fix(core): green — label tunings by their ascending pitch set, order-…
PhysShell Jul 18, 2026
57beae6
Merge main (GP7 import) into the ingest branch
PhysShell Jul 18, 2026
c324b0e
test(core): red — a chunk's exact source track survives reload (schem…
PhysShell Jul 18, 2026
f20cdd0
fix(core): green — honour a chunk's exact source track, never substitute
PhysShell Jul 18, 2026
a866df5
test(cli): red — ingested chunks record their exact source track and …
PhysShell Jul 18, 2026
859ea15
fix(cli): green — ingested chunks carry exact source track, hash, and…
PhysShell Jul 18, 2026
b87c10e
test(core): red — classify role by name tokens, percussion before bass
PhysShell Jul 18, 2026
4a9d9d0
fix(core): green — classify role by whole-word tokens, percussion first
PhysShell Jul 18, 2026
7fb3bb0
test(cli): red — source copy policy and a nonempty slug fallback
PhysShell Jul 18, 2026
3381e97
fix(cli): green — copy sources beside chunks, verify on load, robust …
PhysShell Jul 18, 2026
922dfcb
test: green — the wasm capture test expects a schema-v9 manifest
PhysShell Jul 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 11 additions & 3 deletions cli/src/generation_input.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
use std::fs;
use std::path::Path;

use griff_core::corpus::ChunkMeta;
use griff_core::corpus::{source_sha256, ChunkMeta};
use griff_core::generation_input::{corpus_material, prepare_chunk, LoadedChunk};
use griff_core::import;

Expand Down Expand Up @@ -61,7 +61,15 @@ pub fn load_corpus_material(dir: &Path) -> Result<CorpusMaterial, GenerationInpu
fn load_chunk(dir: &Path, record_name: &str) -> Option<LoadedChunk> {
let meta: ChunkMeta =
serde_json::from_str(&fs::read_to_string(dir.join(record_name)).ok()?).ok()?;
let source =
import::import_score_auto(&fs::read(dir.join(&meta.source.filename)).ok()?).ok()?;
let bytes = fs::read(dir.join(&meta.source.filename)).ok()?;
// A filename is not an identity: when the record pins the source's hash
// (schema v9), a same-named but different file must not silently supply the
// notes. A mismatch is a load failure, reported like a missing source.
if let Some(expected) = &meta.source.sha256 {
if &source_sha256(&bytes) != expected {
return None;
}
}
let source = import::import_score_auto(&bytes).ok()?;
prepare_chunk(meta, &source)
}
Loading
Loading