flavorpack 2026-03-31
Cross-platform compatibility: Windows Go/Rust/Python fixes, env var centralization
511 files · 176,222+ · 820-

FLAVOR_* env var centralization in Go and Rust

2 files changed
  • constants.go FLAVOR_* env var names centralized as Go constants
  • constants.rs FLAVOR_* env var names centralized in Rust; FLAVOR_CACHE renamed to FLAVOR_CACHE_DIR
  • FLAVOR_* environment variable names centralized as constants in both Go and Rust codebases, eliminating scattered string literals. FLAVOR_CACHE renamed to FLAVOR_CACHE_DIR for clarity. ENV_CACHE_COMPAT constant added in Python to deduplicate XDG cache base lookup. decouple internal
    2 files
    • constants.go
    • constants.rs

Checksum, slot assembly, and wheel validation fixes

3 files changed
  • reader.rs Slot checksum loop advances by actual bytes read, not requested; hash computed in chunks to fix failures on large PSP files
  • stream_backend.py StreamBackend.read_slot() assembles full slot instead of truncating to one chunk
  • validate_wheel.py Helpers validated against wheel platform tag; wrong-platform or duplicate helpers rejected
  • Rust checksum loop now advances by actual bytes read rather than requested bytes, fixing incorrect checksums when reads return partial data. Hash computed in chunks to fix failures on large PSP files. Python StreamBackend assembles full slot data rather than returning only the first chunk. validate-wheel rejects helpers with wrong platform tag or duplicate entries. remediate behavioral
    3 files
    • reader.rs
    • stream_backend.py
    • validate_wheel.py

Semver launcher selection and JSON manifest fix

2 files changed
  • launcher.py Semver launcher selection fixed; universal-wheel-with-helpers treated as hard failure
  • manifest.py Flavor pack correctly handles raw JSON manifests
  • Semver launcher selection corrected to pick the right version when multiple launchers are available. universal-wheel-with-helpers treated as a hard failure (not a fallback path). Flavor pack manifest parsing fixed to handle raw JSON manifests without TOML wrapping. remediate behavioral
    2 files
    • launcher.py
    • manifest.py