docs: -cc at 60/60; open work down to two defects The last -cc failure was our own verification gate declining a byte-exact decode, because the entry's checksum is a type-5 chunk record that need not sit in the front metadata run. Seven of eight codecs are now perfect on the real corpus and the three leftovers are two independent defects. Adds two method notes: check whether the decode is actually wrong before investigating the decoder, and a correct decode is its own oracle for locating metadata in the container.
docs: audio defect closed for -cc/-cO -- it was per-codec constants, not algorithm The largest open item is resolved for two of its three codecs, and the cause was three constants hardcoded to -cO's values rather than any missing algorithm. Open work is down to four corpus failures across three independent defects, with -co's unported bit-count decoder class the only genuinely unported code left. Adds three method notes, the sharpest being: a hand-derivation that contradicts a measurement is wrong, even twice in a row.
docs: audio split into its two real causes; one is a genuinely unported class -co and -cc do not share a defect. -co's bit-count decoder is a different class selected by vtable and never ported (FUN_0809bdc0, a Fenwick-tree coder with no decompile) -- the one genuinely unported piece left. -cc's entropy layer is byte-exact and its defect is one predictor stage, localised to the element. Also retracts the previous revision's plan to replace the residual front end.
docs: audio inter-channel branch fixed; the remaining difference named One of the two audio differences is closed (the -co inter-channel branch). The other is now named precisely -- the residual front end, where the port uses the community reference's bespoke bit-count decoder instead of the binary's generic arith decoder + stereo residual decoder. Also retracts the "missing FUN_080958d0" claim from the previous revision and records why the heuristic behind it was wrong.
docs: GDB ground truth for the audio defect -- it is not a new algorithm family The page had this down as needing GDB with no further detail. It now carries the per-codec stage sequence, the three primitives already byte-exact in-tree (one of which is documented in-tree as "never the real path" -- true for lzpf, false here), the two that are missing, and the measured facts that localise the defect to residual production only. Plus three more refuted hypotheses.
docs: stored-LZ-block fix, and re-classify the remaining failures by trace The open-work list had grouped the leftovers by filename. Tracing each one shows they are three defects, not eleven failures: the decr_param==2 audio gap accounts for 9 of 11 (this page had it down as "the last 2 synthetic failures"), plus one -cc BWT wrong-bytes file and one -cO model divergence. The -cO case is now localised to a single wrong literal bit at a known offset, with the ring-position measuring trap that produced a false lead written down, so it is a warm start rather than a fresh investigation.
docs: -cd/-cD both 60/60; rewrite open work after 7a4d4c5 Two cross-chunk state fixes close the top TWO items of the previous open-work list, and neither had the cause this page attributed to it -- the "order-32 predictor" lead was empty (the file was already in the tree) and the "-cd residuals / LMS detail" were the same stale ring cursor. Recorded both misdiagnoses explicitly, plus six new method notes, the biggest being: verify a stored diagnosis before spending a session on it, and group failures by WHERE they diverge rather than by which file they are. Open work is now one class: the -co/-cO/-cc wrong-bytes bugs, with four byte-exact oracles per file that did not exist before.
docs: record cd5e3f3 and add a detailed open-work list Captures the full pending state (per-file deltas, where to start, refuted hypotheses, and the method notes) so it survives independently of any one session's context. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
docs: record the prefilter hash-backfill fix (eb66e8c), -cf/-cF now 60/60 Also notes that the "shared hard set" of four files was one defect, and the stale-dump measurement error made while diagnosing it. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
docs: record the -cf/-cF exe-filter fix (f885e1c) and refresh the standing Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
docs: record the -cD stage-index fix (c831c31) and the 8-codec standing -cD 34 -> 52/60, the biggest single fix of the session. Adds a real-corpus standing table so codecs are compared on one corpus rather than across differently-generated ones. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
docs: record the dece state-model correction (491a54d) Reference resets the filter per block; correct model persists across a run of consecutive dece blocks. Fourth instance of the "shared state the original advances across blocks" bug shape. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
docs: record the dece port and the fuzz-found OOB write (648df9e) Post-filter chain fully native. Notes the lesson: fuzz on corrupt input, since byte-exactness testing cannot find memory-safety bugs in a decompressor. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
docs: record tt 0x04/0x01 ports and the UB they exposed (fe07c69) Text-transform gap closed. Notes the recurring pattern: closing a coverage gap exposes latent UB in newly-reached code, so re-run ASAN after every gap fix. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
docs: record BWT params 14/15 + the LZ window feed fix (296ee88) Biggest real-corpus jump so far: -co 43->52, -cO 45->54 on one identical 60-file corpus. Documents the recurring "block bypasses the decoder, shared state stops advancing" bug shape. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
docs: record the decr_param==2 audio port (a2c6861) AudioPred ported; -cO byte-exact across formats and multi-block. Documents the two distinct NanoZip audio bitstream families and why -co/-cc still decline (reference itself diverges, port is bit-identical to it). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
docs: record the -co/-cO BWT port (58c11b2 + 6b30a43) Both decr_param==0 shapes now decode natively: raw-stored BWT output and the 256-bucket MTF/arithmetic entropy layer. Includes the -O2 UB loop-bound bug inherited from the reference decoder and how it was found. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
docs: record the CM cross-chunk continuation fix (-cc, 25d2f75) Corrects the earlier "param2 bug, not yet root-caused" note: the actual bug was the CM model losing sync across a stored block sitting between two decr_param==0 CM chunks, not NzBwtRleDecodeU32 itself. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Update wiki for -co/-cO single-container chain-mode support Marks chain mode (multiple stream_tag segments) as done for both -co and -cO, adds a changelog entry. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Move detailed component status, RE notes, and changelog out of README Splits the previously-monolithic README into: this wiki (per-codec detail, reverse-engineering methodology/findings, full day-by-day changelog) and a short README (overview, measured summary table, build/test, license) that links here for detail. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Initial Home page