daybook/artifacts
peter 57ad58ff2d v0.5.1: automatic Trash purge (cron-less background thread)
Trashed artifacts past a ~3-day retention window are now purged automatically.

- storage.purge_expired_trash(): removes trash older than TRASH_RETENTION
  (all users), tolerant of already-gone rows (concurrent-safe).
- spawn_trash_purge(): runs it on a daemon thread (manages/closes its own DB
  connection), triggered by each delete so it's cron-less and off the request
  thread. Inline fallback when AGENTFEED_ASYNC_PURGE is off (tests).
- Wired into both delete paths (API + session). Manual Empty Trash unchanged.
- Tests: purge removes expired-only; delete triggers the purge. 152 passing;
  live delete verified with the thread enabled (204, server healthy).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-07 13:01:12 +01:00
..
migrations v0.5.0: Trash (soft-delete) + Keep folder 2026-09-07 12:48:43 +01:00
templatetags v0.3.0: rename app Daybook -> AgentFeed 2026-09-04 13:10:28 +01:00
__init__.py Initial public commit 2026-09-01 21:55:02 +01:00
admin.py v0.2.1: top-bar avatar, You/Admin settings groups, admin models 2026-09-04 11:33:23 +01:00
apps.py Initial public commit 2026-09-01 21:55:02 +01:00
demo_data.py Initial public commit 2026-09-01 21:55:02 +01:00
exception_handlers.py v0.3.0: rename app Daybook -> AgentFeed 2026-09-04 13:10:28 +01:00
forms.py v0.3.0: rename app Daybook -> AgentFeed 2026-09-04 13:10:28 +01:00
models.py v0.5.0: Trash (soft-delete) + Keep folder 2026-09-07 12:48:43 +01:00
storage.py v0.5.1: automatic Trash purge (cron-less background thread) 2026-09-07 13:01:12 +01:00
urls.py v0.5.0: Trash (soft-delete) + Keep folder 2026-09-07 12:48:43 +01:00
views.py v0.5.1: automatic Trash purge (cron-less background thread) 2026-09-07 13:01:12 +01:00