Skip to content

Retention 0.1.0 (community) - #14

Draft
connorjfarrell wants to merge 1 commit into
TrunkRecorder:mainfrom
connorjfarrell:retention-v0.1.0
Draft

connorjfarrell wants to merge 1 commit into
TrunkRecorder:mainfrom
connorjfarrell:retention-v0.1.0

Conversation

@connorjfarrell

Copy link
Copy Markdown

Adds Retention 0.1.0: it deletes the oldest calls from the recordings folder once they are older than a set age, the folder is bigger than a set size, or it is more than a set share of its disk. It replaces the built-in retention I proposed in TrunkRecorder/trunk-recorder-pro#26, as a plugin instead of core code.

  • What it touches: only a call's own files (.wav, .m4a, .json, .frames.jsonl, .sdr) under the recordings folder the recorder gives it, all of a call's files together, oldest first. A call changed in the last ten minutes is never deleted. It refuses a root or missing folder and doesn't follow links. It sends no data anywhere.
  • Safe to try: a Dry run setting reports what it would delete without deleting. With no limit set, it deletes nothing and says so.
  • Subscribes to call.concluded only to run a pass early on a busy recorder.
  • Checked: ./check plugins/retention.json passes; the release workflow built all four platforms with attestations. 16 tests, clippy -D warnings and fmt are clean. I have run it on a live recorder with a real recordings folder, including a dry run over about 208,000 calls.

Draft until I've had a chance to run an automated review. (Supersedes #13, which I closed after rewriting the release's commit history.)

🤖 Generated with Claude Code

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant