fix(tracker): is_processed now checks expires_at, not just file existence 🐛
Some checks failed
create-release / build (push) Successful in 35s
CI / release (release) Failing after 1m31s

Previously is_processed() returned True for any record file that existed,
relying entirely on cleanup_expired() (called at __init__) to delete stale
files. Because cleanup runs at container startup — before Akahu transactions
are fetched — any record that expired exactly on that startup would be deleted
and then immediately missed, letting the duplicate through.

Fix: is_processed() reads the expires_at field from the JSON and returns False
if the record has expired, regardless of whether cleanup has run.

Also adds migrate_ttl.py script to retroactively extend expires_at on existing
records that were written under a shorter TTL, and bumps version to 0.1.3.
This commit is contained in:
2026-06-15 22:20:47 +12:00
parent 19735bebb7
commit 59c0bbde0c
4 changed files with 113 additions and 3 deletions

View File

@@ -1,6 +1,6 @@
[project]
name = "transaction-tracker"
version = "0.1.0"
version = "0.1.3"
description = ""
authors = [
{name = "Aaron Guise",email = "aaron@guise.net.nz"}