v0.1.0 (2026-05-19)
This release is published under the LGPL-3.0-or-later License.
Bug Fixes
-
01-04: CR-01 fix non-seekable BinaryIO crash in sniffer (
f0ded91) -
01-04: CR-02 guard CLI read_bytes() against OSError (
30d36d1) -
01-04: CR-03 make ContaPlusJournal.rows immutable tuple (
96e57c7) -
01-04: CR-04 fix mixed-sign both-non-zero guard to use != 0 (
744bbef) -
01-04: WR-02 fix column width undercount for zero numeric values (
f106121) -
02: CR-01/WR-01/WR-02 harden ZIP extraction against zip-slip, symlink and zip-bomb (
22a0708) -
02: CR-02 coerce numeric SUBCTA cod/titulo fields defensively (
05f4c11) -
02: WR-01 use literal symlink mode mask, stat.S_IFMT is not a constant (
723cd96) -
02: WR-03 make _pick_column case-insensitive internally (
6a2041b) -
02: WR-04 normalise SUBCTA lookup keys and log enrichment misses (
0f4954b) -
02: WR-05 carry SUBCTA schema on SubctaTable for full-dump headers (
f036267) -
02: WR-06 wrap CLI render/write in error handling, no traceback leak (
6ff493d) -
04: Set allow_zero_version so PSR honors the 0.1.0 first release (D-04) (
464bcf9)
Chores
-
Add gitignore (excludes confidential pii-test-data) (
66293ae) -
Add project config (
ff10f34) -
01-03: README Installation/Usage sections and .gitignore complete (
15dbade) -
04: Point package URLs at the chispa-sideral org (
119b484) -
04: Pyproject.toml metadata pass — PEP 639, classifiers, PSR config, typer fix (D-04/D-08/D-11/D-12) (
93e1ca6)
Continuous Integration
-
04: Add CI workflow — pytest on push and PR (
c90d2fd) -
04: Allow on-demand TestPyPI-only release run (
cf91efa) -
04: Skip TestPyPI upload on real releases (
40b1aa9) -
04-03: Add micropip smoke test (D-09) — Pyodide Node.js harness (
96d49a7) -
04-03: Add release.yml — trusted publishing workflow (D-06) (
3c5cdb0)
Documentation
-
Capture exploration — lean PWA stack (
110cfb2) -
Create roadmap (5 phases) (
da14ffa) -
Define v1 requirements (
bfb55e2) -
Note confidential real-data fixtures in pii-test-data (
78f759d) -
Synthesize project research (
2003db1) -
01: Add code review report (
fd59411) -
01: Add code review report (
c39312f) -
01: Add gap-closure plan 01-04 for 4 verification blockers (
98344e6) -
01: Add phase verification report (gaps found) (
b24b978) -
01: Capture phase context (
102aeb3) -
01: Create phase plan (
b3d97f6) -
01-01: Complete journal reader core plan (
57948a0) -
01-02: Complete XLSX renderer and CLI plan (
5414066) -
01-03: Complete walking skeleton — human-verify APPROVED, Phase 01 done (
0138c87) -
01-03: Plan task 1 complete — README/gitignore/wheel build verified (
5648332) -
01-04: Complete gap-closure plan — 5 fixes, 55 tests passing (
4384beb) -
02: Add code review fix report (
5271158) -
02: Add code review report (
c7a8d6d) -
02: Capture phase context (
31e327b) -
02: Create phase plan (
ef3e59e) -
02: Research phase - ZIP & subaccounts (
fb8a66c) -
02-01: Complete Phase 2 Plan 01 — RED test gate SUMMARY + state update (
ac00a70) -
02-02: Complete ZIP pipeline plan (
55901b6) -
02-03: Complete multi-sheet XLSX renderer and --company CLI flag plan (
d42d130) -
02-zip-subaccounts: Create Phase 2 plan — ZIP input, SUBCTA enrichment, multi-sheet XLSX (
a701c61) -
03: Add code review report (
86721c5) -
03: Add code review report (
d66814f) -
03: Add missing D-NN citations to plans 01-04 (
b7f7c97) -
03: Add phase pattern map (
29a1717) -
03: Add phase verification report (gaps found) (
8beee93) -
03: Capture phase context (
7699128) -
03: Create gap-closure plan 03-05 for WR-06/WR-05/casing/sheet-count (
c01a33e) -
03: Create phase 3 plan — 4 plans, 4 waves (
79ca54d) -
03: Create phase plan (
b8f11c3) -
03: Record gap-closure plan 03-05 in state (
9b3e91e) -
03: Research phase — schemas, trial balance, lenient mechanics (
120cab9) -
03-01: Complete Phase 3 plan 01 test scaffold summary (
c606450) -
03-02: Complete core models, balance computation, and lenient journal loop plan (
cd735fa) -
03-03: Complete 10-table catalogue, lenient wiring, and balance plan (
98ba477) -
03-04: Complete Phase 3 sheet renderers and lenient CLI plan (
9d3a2c4) -
03-05: Complete gap-closure plan summary (WR-06/WR-05/casing/sheet-count) (
a69119c) -
04: Add colon-form D-NN decision citations to plan frontmatter (
f20f50a) -
04: Add LICENSE (LGPL-3.0-or-later), expand README into PyPI landing page (D-10/D-11) (
3997aa3) -
04: Add pattern map (
4cd8b63) -
04: Capture phase context (
9a69d10) -
04: Create phase 4 plan — CLI-03 report + PyPI publication (
cd5a0c5) -
04: Create phase plan (
fbefc65) -
04: Research phase 4 — CLI report, PyPI trusted publishing, micropip gate, PEP 639 (
c962e2d) -
04-01: Complete CLI-03 conversion report plan (
c2aa533) -
04-02: Complete package metadata plan (
7f2ae66) -
04-03: Complete CI infrastructure plan — release.yml + micropip smoke test (
bdd7d0c) -
phase-01: Complete phase execution (
f0025d4) -
phase-01: Evolve PROJECT.md after phase completion (
bfb1d4b) -
phase-02: Add security threat verification (
8019366) -
phase-03: Add validation strategy (
3985506) -
phase-03: Complete phase execution (
6feed28) -
phase-03: Evolve PROJECT.md after phase completion (
7696c3d) -
phase-03: Update tracking after wave 1 (
caa813c) -
phase-03: Update tracking after wave 2 (
108c61c) -
phase-03: Update tracking after wave 3 (
f259943) -
phase-03: Update tracking after wave 4 (
88a94c6) -
phase-03: Update tracking after wave 5 (
529a39d) -
phase-1: Add validation strategy (
5160223) -
phase-1: Research journal slice domain (
df303d1) -
phase-2: Add validation strategy (
125083e) -
phase-2: Refresh validation strategy after Nyquist audit (
2b1ca34) -
phase-4: Add validation strategy (
d16161c) -
state: Record phase 1 context session (
21e5948) -
state: Record phase 2 context session (
6062e3a) -
state: Record phase 3 context session (
8b26c05) -
state: Record phase 4 context session (
ac7e588)
Features
-
01-01: Journal reader with D-A1...D-E3 business rules (
fe13755) -
01-01: Package scaffold, models, bridge, and sniffer (
1e7ee62) -
01-01: Synthetic fixture factory and ported reader test suite (
ce3e785) -
01-02: Implement Typer CLI entry point (contaplus2xlsx) (
2427c38) -
01-02: Implement XLSX renderer with accounting format and Spanish headers (
ba250d0) -
02-02: Extend models, upgrade sniffer, add _zip.py and _subcta.py (
229845f) -
02-02: Wire ZIP dispatch in _reader.py and init.py; all reader tests GREEN (
deb3a63) -
02-03: Add --company flag to CLI and wire render(data) for multi-sheet output (
ae75d05) -
02-03: Generalize xlsx.py to render(ContaPlusData) with multi-sheet and Descripción (
d3ec20c) -
03-02: Create _balance.py with compute_balance Decimal accumulation (
3f73a7c) -
03-02: Extend _reader.py and read() with lenient journal loop (
dec8433) -
03-02: Extend models.py with Phase 3 types and ContaPlusData attributes (
df99913) -
03-03: Wire full 10-table catalogue, lenient path, and balance into read() (
9843c81) -
03-04: Add --lenient flag to CLI and problems count to one-line summary (
132e046) -
03-04: Add Phase 3 sheet renderers and update render() sheet order (
8267582) -
03-05: Fix render() crash on journal=None (WR-06) (
38cc316) -
03-05: Fix WR-05 ValueError catch, canonicalize ProblemEntry.table, fix CLI sheet count (
2d1a8f6) -
04-01: Implement _print_report() replacing D-16 one-liner (CLI-03 GREEN) (
c9c9fed)
Testing
-
01-02: Add failing tests for CLI entry point (RED) (
1d3d326) -
01-02: Add failing tests for XLSX renderer (RED) (
363e74f) -
02: Complete UAT - 3 passed, 0 issues (
fb5ebb0) -
02: Persist human verification items as UAT (
9aeebee) -
02-01: Add failing Phase 2 tests for ZIP read, SUBCTA enrichment, multi-sheet (
4307696) -
02-01: Extend conftest.py with Phase 2 ZIP and table fixture builders (
7e88540) -
02-03: Add failing tests for render() multi-sheet and Descripción column (
73da9e7) -
02-03: Remove xfail markers from CLI company-flag tests (
dc28ba5) -
03-01: Add failing Phase 3 test files (RED state) (
114da3b) -
03-01: Extend conftest.py with Phase 3 synthetic fixtures (
3a914c0) -
03-05: Add failing tests for render(journal=None) WR-06 fix and D-03 end-to-end (
0e36ea6) -
03-05: Add failing tests for WR-05 ValueError per-row catch (
9a2c2fb) -
04: Strip ANSI codes before --help option assertion (
88cfc2b) -
04-01: Add diario_with_memo_dbf fixture + CLI-03 RED tests (
053d15c)
Detailed Changes: v0.0.0...v0.1.0