Repo weight + licensing: ShareTextures compliance, OGG music, orphan assets - #29
Conversation
…s compliance Licensing (the part that matters): - assets/textures/external/robinia + platanus (66 MB) are UNTRACKED now. They are ShareTextures packs, and ShareTextures is NOT plain CC0: their terms grant CC0 only for direct downloads and forbid redistribution 'as part of collections' and automated downloads. Committing them to a public repo was a violation; so would adding them to the fetch script. SOURCES.md now documents the real license, the manual download path, and why the BAKED leaf cards inside prop_tree2/3.glb are fine to ship (transformed derivatives used in the product). build-props.ts falls back to the CC0 LeafSet004 compositor without the packs, so fresh checkouts still build everything. Weight: - assets/music/src (94 MB of untrimmed Suno masters) untracked - only music-master.ts reads it. The masters are NOT re-derivable: archive them outside the repo (note added to the tool header). - Music ships as OGG q8 (~256 kbps VBR, transparent): six files 33.9 MB -> 4.9 MB. The engine's decode_audio handles Vorbis for both loadMusic and loadSound (same decoder, verified in audio/mod.rs), and ambient.ogg had shipped that way all along. New tools/encode-music.ts closes the pipeline: music-master.ts writes WAV, encode-music.ts encodes + removes the intermediates. Boot now logs the three bed handles ([music] menu=1 calm=2 combat=3 verified in a batch run) so a decode failure can never ship silently. - The never-taken fallback beds game.wav/menu.wav (23.4 MB) are OGG too (3.2 MB) - the fallback contract from SH-036 is intact, just cheaper. - Orphans deleted: arena.glb (nothing loaded it since the runtime world replaced the textured hall), building_wall/floor.glb (the house draws through the baked material shell; the only live reference was a comment about a z-fighting bug), and convert-arena.ts + its doc rows. build-props.ts stops EMITTING the building GLBs - dead output has to stop being produced, not just be swept up (its own words). prop_barrel/flower/grasstuft stay: they are the authoring palette the second arena will want, not orphans. - dxcompiler.dll/dxil.dll gitignored with a note: they are the DXC runtime that turns on SM6.5/HW ray query (boot log: ray_query=true with them present); fetch via the engine's tools/fetch-dxc.ps1. Verified: perry compile green; 20 s batch run boots clean with all three music handles live and nav/grass/obstacle init unchanged.
|
Warning Review limit reached
Next review available in: 47 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (38)
📒 Files selected for processing (15)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Two things the textually-clean auto-merge would have shipped broken: - #28 removed KIND_COUNT/ALIEN_GLB from main.ts imports; this branch's stageModels batch uses both. Re-added - a green Perry compile does not catch absent cross-module imports (ReferenceError at boot). - This branch (and #30) accidentally committed dxcompiler.dll/dxil.dll: both were branched before #29's .gitignore landed, so 'git add -A' swept the untracked DLLs in, and #30's merge carried them onto main. Untracked again here (files stay on disk - the game needs them beside the exe; see EN-058). Verified on the merged tree: compile green, 14 s batch run boots to the menu with [music] menu=1 calm=2 combat=3 and [anim] clipset=2 slot0=9 slot1=10 both live.
Second slice of the 2026-07-16 audit. ~220 MB leaves the working tree, and one genuine licensing problem is fixed.
Licensing fix (important)
robinia/+platanus/(66 MB) were committed since rounds 5–7, and ShareTextures is not plain CC0: CC0 applies only to direct downloads from their site, and their terms forbid redistribution in collections and automated downloads (license). So:fetch-external-textures.ts(automated downloads are also disallowed) — SOURCES.md documents the manual path;prop_tree2/3.glbare fine to ship — transformed derivatives used in the product;build-props.tsfalls back to the CC0LeafSet004compositor, so fresh checkouts still build all props.Weight
assets/music/src(Suno masters, tool-input only)game/menu.wav(never-taken path)arena,building_wall/floor) +convert-arena.tsprop_barrel/flower/grasstuftdeliberately stay — they're the authoring palette for the second arena.Verification
load_music_bytes→decode_audio→parse_ogg(lewton) — same decoder asloadSound;ambient.ogghad shipped through it all along.[music] menu=1 calm=2 combat=3(live handles; 0 = failed decode) — verified in a batch run, so a music-format regression can never ship silently again.bun tools/encode-music.tsadded so the mastering pipeline still produces what the game loads.ray_query=truewith them beside the exe).