- 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>
28 lines
1.3 KiB
Markdown
28 lines
1.3 KiB
Markdown
# 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
|