aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuillermo Serrahima <dev@vylion.com>2026-07-02 00:04:12 +0200
committerGuillermo Serrahima <dev@vylion.com>2026-07-02 00:04:12 +0200
commit7a3587d3717afbf3f37fc3b41107e5a5ec6b8a5f (patch)
treee2596e91b68388f4f169bb0892454a0332b5fc08
parent926e817d95b1c548901ad143cfa1d24b37bc1b11 (diff)
downloadsenia-7a3587d3717afbf3f37fc3b41107e5a5ec6b8a5f.tar.xz
senia-7a3587d3717afbf3f37fc3b41107e5a5ec6b8a5f.zip
tweaked compaction
-rw-r--r--scripts/compact.py16
1 files changed, 12 insertions, 4 deletions
diff --git a/scripts/compact.py b/scripts/compact.py
index 1b65363..1f4ffd4 100644
--- a/scripts/compact.py
+++ b/scripts/compact.py
@@ -215,6 +215,10 @@ def compact_day(date: datetime) -> bool:
Returns True if an archive was written, False if there were no entries to summarize.
"""
date_str = date.strftime("%Y-%m-%d")
+ archive_path = daily_archive_path(date)
+ if archive_path.exists():
+ print(f"archive for {date_str} already exists; skipping")
+ return False
start_iso = start_of_day(date) if any_daily_archive_exists() else None
end_iso = start_of_day(date + timedelta(days=1))
entries = diary_entries(start_iso, end_iso)
@@ -223,8 +227,8 @@ def compact_day(date: datetime) -> bool:
return False
print(f"compacting {len(entries)} entries into archive for {date_str}")
raw = invoke_claude(build_daily_prompt(entries, date_str))
- atomic_write(daily_archive_path(date), strip_code_fences(raw))
- print(f"wrote {daily_archive_path(date)}")
+ atomic_write(archive_path, strip_code_fences(raw))
+ print(f"wrote {archive_path}")
return True
@@ -241,14 +245,18 @@ def regenerate_recent(ending: datetime) -> None:
def compact_month(month_anchor: datetime) -> None:
year_month = month_anchor.strftime("%Y-%m")
+ archive_path = monthly_archive_path(month_anchor)
+ if archive_path.exists():
+ print(f"archive for {year_month} already exists; skipping")
+ return False
dailies = archives_in_month(month_anchor.year, month_anchor.month)
if not dailies:
print(f"no daily archives for {year_month}; skipping monthly archive")
return
print(f"compacting {len(dailies)} daily archive(s) for {year_month}")
raw = invoke_claude(build_monthly_prompt(dailies, year_month))
- atomic_write(monthly_archive_path(month_anchor), strip_code_fences(raw))
- print(f"wrote {monthly_archive_path(month_anchor)}")
+ atomic_write(archive_path, strip_code_fences(raw))
+ print(f"wrote {archive_path}")
# ---------- main ----------