From 04c20d169decbe23d2d4b389f143ff425809427c Mon Sep 17 00:00:00 2001 From: "sepehr.sadri" Date: Fri, 7 Aug 2026 12:45:38 +0200 Subject: [PATCH] CHANGELOG: add missing M3 and #28 (xfail bug fixes) entries MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit M3 and the 13-bug fix landed (PRs #26/#29 and #28) without a CHANGELOG entry — M0, M1, M2, M4 all had one, M3 and the Fixed section didn't. Co-Authored-By: Claude Sonnet 5 --- CHANGELOG.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 406c764..5b496a7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,11 @@ Building the 0.0 pilot — no released artifact yet. - **M2** — Logic/GarageBand `ProjectData` container walker: `wit-logic`, covering both `.logicx` and `.band` (same container, same magic bytes), with record framing, a tag census, and whitelist name/tempo extraction — [PR #25](https://github.com/sep-lab/Wit/pull/25) +- **M3** — Index, content-addressed store, CLI: `wit-index`, plus `wit scan` and + `wit dupes` on `wit-cli` — covers Logic, GarageBand, and Ableton discovery, archiving + every version into a local store keyed by content hash. Originally reviewed and merged + as [PR #26](https://github.com/sep-lab/Wit/pull/26), which was opened against the wrong + base branch and never reached `main`; corrected via [PR #29](https://github.com/sep-lab/Wit/pull/29) - **M4** — Audio engine: `wit-audio`, covering `symphonia`-based decode (wav/aiff/caf/alac/flac/mp4/mp3/aac) with a typed, never-panics `DecodeError`; `i8` min/max peak computation for waveform rendering; `realfft`-based FFT cross-correlation @@ -34,6 +39,17 @@ Building the 0.0 pilot — no released artifact yet. - Open-source project scaffolding: license, contributing guide, code of conduct, security policy, issue/PR templates, CI +### Fixed +- All 13 bugs documented as `xfail` in the Python prototype test suite (21 xfail markers + total), spanning robustness (billion-laughs expansion, unbounded tree allocation, + quadratic varint DoS in `flp_parse`, a leaked file descriptor, an oversized-payload + acceptance bug, bare `IndexError`/`struct.error` on truncated input) and correctness + (`decode_text` mojibake in both directions, `build_model` crashing on non-Live XML, + Live 12.3's `MainTrack` tempo being invisible to the differ, non-deterministic diff + ordering, two rename-coalescing false positives, and `cdc_dedup.pairwise()` + undercounting reuse — the last of which required re-measuring and correcting + `EXPERIMENTS.md` §6a) — [PR #28](https://github.com/sep-lab/Wit/pull/28), closes #10 + ### Findings that shaped the design - Byte-level versioning of rendered audio is not viable: a global gain change leaves **0.00%** of bytes reusable, and costs git a full extra copy