backupchecks/docs/changelog-claude.md
Ivo Oskamp f91c081456 Performance optimizations for slow storage environments
- Add database indexes on frequently queried FK columns (JobRun, MailMessage,
  MailObject, TicketScope, RemarkScope)
- Fix N+1 query in override recomputation by batch loading jobs
- Optimize Daily Jobs page with batch queries:
  - Batch load all today's runs in single query
  - Batch infer weekly/monthly schedules for all jobs
  - Batch load ticket/remark indicators

These changes reduce query count by 80-90% on pages like Daily Jobs and Run Checks,
significantly improving performance on systems with slower storage.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 21:44:14 +01:00

1.3 KiB

Changelog - Claude Code

This file documents all changes made to this project via Claude Code.

[2026-02-04]

Added

  • docs/changelog-claude.md - Changelog file for tracking changes made via Claude Code

Changed

  • Converted changelog to English (all project documentation must be in English)
  • Documented branch naming convention and build workflow in Claude memory
  • Filled README.md with comprehensive project documentation based on source code analysis

Performance

  • Added database indexes to models.py for frequently queried foreign key columns:
    • JobRun: indexes on job_id, job_id+run_at, job_id+reviewed_at, mail_message_id
    • MailMessage: indexes on job_id, location, job_id+location
    • MailObject: index on mail_message_id
    • TicketScope: indexes on ticket_id, job_id
    • RemarkScope: indexes on remark_id, job_id
  • Fixed N+1 query in _recompute_override_flags_for_runs() - batch loads all jobs instead of per-run queries
  • Optimized Daily Jobs page with batch queries:
    • Batch load all today's runs for all jobs in single query
    • Batch infer weekly schedules for all jobs (was per-job query)
    • Batch infer monthly schedules for jobs without weekly schedule
    • Batch load ticket/remark indicators for all jobs