v1.2.3
This release pays off the "year" unit debt by unifying to seconds across CLI, DB schema, and internal semantics.
Breaking: CLI --aged-year → --age-time
--aged-year (double) is replaced by --age-time (string with unit suffix). New parse_age_time() converts y/d/h/bare-number to seconds:
| Input | Result | Formula |
|---|---|---|
--age-time 0.01h |
36.0 s | ×3600 |
--age-time 10y |
315360000.0 s | ×31536000 |
--age-time 36 |
36.0 s | bare number = seconds |
--age-time 0.01d |
864.0 s | ×86400 |
--age-time "" |
0.0 s | non-aging library |
Unit parsing is centralized in C++, eliminating duplicated conversion logic in callers (aging-ml).
Schema: lut_entries.aged_year → lut_entries.age_seconds
DDL, UNIQUE constraint, INSERT statement, and all bind sites updated. The column now stores seconds not years, eliminating floating-point precision issues on small time values (e.g. 0.01h = 36.0s vs 1.14e-6 years).
Internal: Variable/parameter/comment rename
All aged_year references renamed to age_seconds across 8 source files — headers, implementation, and tests.
Chore: Remove obsolete doc
doc/sqlite_dedup_analysis.md (bug postmortem from v1.2.1) archived. Core knowledge (SQLite NULL ≠ NULL in UNIQUE constraint) condensed into agent memory.
Files changed (cumulative v1.2.2 + v1.2.3)
11 files, 62 insertions, 230 deletions.
Binary
File Name: zlibvalidation
Size: 15.7 MB
Compilation Environment: Red Hat Enterprise Linux 8.10 x86_64