You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+34Lines changed: 34 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,6 +9,40 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
9
9
10
10
---
11
11
12
+
## [0.1.3] — 2026-04-10
13
+
14
+
### Added
15
+
-**CC statement support** (`#28, #29, #31–#34`, PR #122) — full credit card pipeline for paid tier: `ExtractionResult.card_number`, `BankTemplate.column_aliases`, `CCGroupingService` grouping by last-4 card suffix, wired into `ServiceRegistry.group_by_card()`. `processor.run()` splits on `card_number is None` to route bank vs CC results.
16
+
-**`aib_credit_card.json` template** (`#129`, PR #138) — correct CC column boundaries (`Transaction Date 29–80`, `Posting Date 80–118`, `Transaction Details 118–370`, `Amount 370–430`) so `RefContinuationClassifier` and `RowMergerService` handle CC two-line transaction splits correctly without falling back to bank columns.
17
+
-**`PDFExtractorOptions` dataclass** (`#109`, PR #139) — groups 8 optional `PDFTableExtractor` constructor params into a single options object, reducing the constructor from 11 params to 3.
18
+
-**Pylint design gate in CI** (`#85`, PR #104) — Xenon complexity gate and Pylint design checks added to CI pipeline.
19
+
20
+
### Fixed
21
+
-**#129** — Non-transaction (empty/phantom) rows in CC CSV/JSON output eliminated. Root cause: missing CC template caused `Ref:` lines to be misclassified as transactions. Fixed by adding `aib_credit_card.json` (PR #138) and an earlier classifier fix (PR #133).
22
+
-**#131** — CC amounts ending in `CR` now populate the Credit column instead of Debit. `reroute_cr_suffix()` added to `currency.py`, wired via `RowPostProcessor._reroute_cr_amounts()` (PR #135).
23
+
-**#132** — CC transactions sorted incorrectly due to yearless dates. Year inferred from `Payment Due` date in statement; ordinal date suffixes added to `_PAYMENT_DUE_PATTERNS` (PR #133).
24
+
-**#134** — CC output dates now include the statement year (e.g. `4 Feb 2025`). `Transaction._enrich_date()` appends year via `to_dict()` (PR #137).
25
+
-**#125** — Unknown-IBAN group was producing output files instead of routing to `excluded_files.json` (PR #126).
26
+
-**#123** — Free-tier pipeline was producing CC grouped output files instead of routing to `excluded_files.json`. CC grouping now gated behind paid-tier entitlement check (PR #124).
27
+
-**#106** — Credit card PDFs were unconditionally skipped on the paid tier; now correctly processed (PR #108).
28
+
-**#110** — `data_retention_days` was not forwarded to `DataRetentionService` (PR #115).
-**Hadolint + pinned `trivy-action`** added to CI (`#87`, PR #96).
40
+
-**`[skip downstream]` support** added to dispatch-downstream CI job (PR #82).
41
+
-**`#111, #112, #113`** — Dead fields removed from `ExtractionConfig` and `ExtractionScoringConfig`; dead `scoring_config` param removed from `PDFTableExtractor` (PRs #116, #117).
42
+
-**CONTRIBUTING.md** — Coverage threshold corrected to 91% to match `pyproject.toml` (PR #140).
0 commit comments