diff options
Diffstat (limited to 'scripts/compact.py')
| -rw-r--r-- | scripts/compact.py | 16 |
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 ---------- |
