Current-main reconciliation — 2026-09-29
Still valid as written. Current fetch_or_cached still allocates {page_name}-{YYYY-MM-DD-HHMM}.md; changed content arriving twice within the same minute can therefore reuse the same path. Keep this issue open.
Problem
Cache filenames have minute precision. Two changed refreshes in the same minute
can overwrite the earlier pair while reporting REFRESHED, violating the
retained-history contract.
Required outcome
Allocate collision-safe paths for changed same-minute content while keeping
legacy minute filenames readable and latest ordering correct. The PR may choose
the smallest allocation mechanism that satisfies the contract.
Acceptance
- Two changed responses within one minute return
REFRESHED at distinct paths.
- Both Markdown/sidecar pairs remain intact.
find_latest selects the newer result.
- Equal-clock/collision and legacy-filename cases are explicit.
Non-goals
- Do not prescribe a sub-minute timestamp format in the issue.
- Do not change identical-content classification.
Current-main reconciliation — 2026-09-29
Still valid as written. Current
fetch_or_cachedstill allocates{page_name}-{YYYY-MM-DD-HHMM}.md; changed content arriving twice within the same minute can therefore reuse the same path. Keep this issue open.Problem
Cache filenames have minute precision. Two changed refreshes in the same minute
can overwrite the earlier pair while reporting
REFRESHED, violating theretained-history contract.
Required outcome
Allocate collision-safe paths for changed same-minute content while keeping
legacy minute filenames readable and latest ordering correct. The PR may choose
the smallest allocation mechanism that satisfies the contract.
Acceptance
REFRESHEDat distinct paths.find_latestselects the newer result.Non-goals