Portable SID correlation export of HVSC 85 + Update 85, generated by SIDFlow.
| SIDFlow | 0.8.2 |
| tracks / files | 87,868 / 61,157 |
| profile | full |
| similarity vector | 58 dimensions, rank-uniform normalised |
| similarity metric | weighted cosine |
| precomputed neighbours per track | 25 |
| SID emulation | sidlite |
| feature schema | 1.5.0 |
| schemas | sidcorr-1, sidcorr-lite-1, sidcorr-tiny-1, sidcorr-features-1 |
What's Changed
Only the tiny bundle changes in this release. The full export, compressed full export, lite bundle, and features sidecar are byte-identical to 0.8.1.
No reclassification was run. Asset names, track ordering, file identities, style masks, ratings, vectors, and full-export neighbour rankings remain unchanged.
Published data
| Asset | Content in 0.8.2 | Version |
|---|---|---|
sidcorr-hvsc-full-sidcorr-1.sqlite |
Byte-identical to 0.8.1 | sidcorr-1, unchanged |
sidcorr-hvsc-full-sidcorr-1.sqlite.gz |
Byte-identical to 0.8.1 | compressed sidcorr-1, unchanged |
sidcorr-hvsc-full-sidcorr-lite-1.sidcorr |
Byte-identical to 0.8.1 | sidcorr-lite-1, unchanged |
sidcorr-hvsc-full-sidcorr-tiny-1.sidcorr |
Neighbour table and graph_flags changed |
sidcorr-tiny-1, binary format 2 |
sidcorr-hvsc-full-features-1.jsonl.gz |
Byte-identical to 0.8.1 | sidcorr-features-1, unchanged |
The full and lite exports were rebuilt through the normal CLI and reproduced byte for byte. scripts/reproduce-published-bundles.sh performs this verification.
Tiny neighbour graph
The tiny graph is now a searchable proximity index rather than a directed acyclic graph.
graph_flagsbit 0 now reads0: acyclicity is no longer declared or guaranteed.- Bit 3 is retired.
- Neighbour targets are no longer restricted to lower track ordinals.
- Every track has three outgoing neighbours.
- Slots 0 and 1 preserve the source export's two closest neighbours.
- Slot 2 provides a more diverse connection for broader traversal.
- Rows remain ordered by descending similarity.
| Metric | 0.8.1 | 0.8.2 |
|---|---|---|
| mean out-degree | 2.799 of 3 | 3.000 of 3 |
| tracks with no incoming edge | 24,669 (28.08%) | 2 (0.002%) |
| tracks with no outgoing edge | 2,786 | 0 |
| largest undirected component | 99.08% | 99.995% |
| greedy routing recall@1 | 0.30% | 0.80% |
| composer lift | 84.536 | 74.772 |
| nDCG@10 | 0.1440 | 0.1507 |
This is a graph-data and specification change, not a file-format change:
binary_format_versionremains2- the header layout is unchanged
- section ordering is unchanged
- track ordering is unchanged
neighbors_per_trackremains3- asset filenames are unchanged
Existing releases/latest/download/<name> URLs therefore continue to resolve.
File identities, per-file track counts, style masks, packed ratings, and station membership are unchanged. Only the graph used to move between tracks differs.
Migration
Full, compressed full, lite, and features consumers
No migration is required.
The payloads and schema versions are unchanged, so existing parsers, indexes, caches, and recommendation results remain valid.
Tiny consumers that only parse the format
Update the release tag and expected digest.
No parser change is required because the binary layout and version are unchanged.
Tiny consumers that validate or traverse the graph
Remove any assumption that:
- the graph is acyclic
- neighbour ordinals are lower than the source ordinal
- traversal terminates because the graph eventually runs out of forward edges
Cycles are valid in a similarity graph. Maintain an explicit visited set to prevent repeats and bound traversal.
SID Radio clients
For long-running stations:
- Update the pinned release tag and tiny-bundle digest.
- Maintain an exclusion set for tracks already played.
- Deduplicate by SID file identity when multiple subsongs should count as one tune.
- Let the station query progress with recent listening history instead of repeatedly expanding from the original seed.
The new graph provides the connectivity. The progressing-query policy turns that connectivity into a station that can continue for hours.
Digests
| Asset | SHA256 | Change from 0.8.1 |
|---|---|---|
sidcorr-hvsc-full-sidcorr-1.sqlite |
d3d825ae…b176da |
unchanged |
sidcorr-hvsc-full-sidcorr-1.sqlite.gz |
7eeddad8…b2fcf0 |
unchanged |
sidcorr-hvsc-full-sidcorr-1.manifest.json |
4afe8314…d9a741 |
unchanged |
sidcorr-hvsc-full-features-1.jsonl.gz |
006cd388…045f39b |
unchanged |
sidcorr-hvsc-full-features-1.manifest.json |
62667463…efc2c6 |
unchanged |
sidcorr-hvsc-full-sidcorr-lite-1.sidcorr |
fe92bd57…a346cd |
unchanged |
sidcorr-hvsc-full-sidcorr-lite-1.manifest.json |
1953a666…b22279 |
generated_at only |
sidcorr-hvsc-full-sidcorr-tiny-1.sidcorr |
10db2838831bb2386f6dd19041a7ae8525878c401afa6eaf932d9b1610c1c0bc |
changed |
sidcorr-hvsc-full-sidcorr-tiny-1.manifest.json |
ca6e8f7c…48e371f |
changed |
Verification
Verify the downloaded assets with:
sha256sum -c SHA256SUMSTo run SIDFlow's release gate against the downloaded files:
bun run verify:exports -- --exports <download-dir> --hvsc <your-hvsc>The release checks the published bytes directly, including graph flags, neighbour ordering, connectivity, dead ends, unreachable tracks, and traversal behaviour.
See the migration guide and graph-design document in chrisgleissner/sidflow:
doc/migration/0.8.0-to-0.8.2.mddoc/neighbour-graph-design.md