Skip to content

fix(tasks): prune finished task history#138

Draft
attid wants to merge 1 commit into
PleasePrompto:mainfrom
attid:fix/task-retention-cleanup
Draft

fix(tasks): prune finished task history#138
attid wants to merge 1 commit into
PleasePrompto:mainfrom
attid:fix/task-retention-cleanup

Conversation

@attid
Copy link
Copy Markdown
Contributor

@attid attid commented May 19, 2026

Summary

Add automatic retention cleanup for finished background tasks.

Why

Finished task entries (done, failed, cancelled) were retained indefinitely unless a user manually pressed cleanup in /tasks. Since each entry persists the full original_prompt, old finished tasks can make tasks.json grow without bound.

Changes

  • Add tasks.finished_retention_hours with a default of 168 hours.
  • Add tasks.finished_keep_last with a default of 100 finished tasks.
  • Add registry retention cleanup that removes finished entries and their task folders by age and count.
  • Keep running and waiting tasks protected from retention cleanup.
  • Run task maintenance immediately when the maintenance loop starts, then every 5 hours.

Validation

  • uv run pytest tests/tasks tests/test_config.py tests/config -q
  • uv run ruff check ductor_bot/config.py ductor_bot/tasks/registry.py ductor_bot/tasks/hub.py tests/tasks/test_registry.py tests/tasks/test_hub.py
  • uv run mypy ductor_bot

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