backupchecks/docs/changelog-claude.md
Ivo Oskamp 19b2776eed Fix Autotask resolution update for tickets without issueType/subIssueType/source
Tickets may have issueType, subIssueType, and source fields with value 0 or null
(meaning 'not set'). The previous validation incorrectly required these fields
to have non-null values, causing "required fields are missing" errors.

Now only id and status are required. Other stabilising fields are copied to the
PUT payload when present in the GET response, preserving current values (including 0).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 15:18:32 +01:00

62 lines
3.2 KiB
Markdown

# Changelog - Claude Code
This file documents all changes made to this project via Claude Code.
## [2026-02-05]
### Fixed
- Autotask ticket resolution update now correctly handles tickets where `issueType`,
`subIssueType`, or `source` fields are not set (value 0 or null). Previously this
caused "required fields are missing" errors. Now only `id` and `status` are required;
other stabilising fields are copied when present.
### Added
- Restored Autotask PSA integration from branch `v20260203-13-autotask-resolution-item-wrapper`:
- `integrations/autotask/client.py` - Autotask REST API client with full support for:
- Zone information discovery
- Ticket CRUD operations (create, get, update)
- Ticket notes via `/Tickets/{id}/Notes` endpoint
- Safe resolution updates preserving stabilizing fields
- Query support for companies, tickets, time entries, deleted ticket logs
- Reference data retrieval (queues, ticket sources, priorities, statuses)
- `ticketing_utils.py` - Utilities for internal ticket management and Autotask linkage
- Database migrations for Autotask fields:
- `SystemSettings`: Autotask connection settings, defaults, and cached reference data
- `Customer`: Autotask company mapping fields
- `JobRun`: Autotask ticket linkage and deletion tracking fields
- `Ticket`: Resolution origin tracking
- Settings UI for Autotask configuration (connection test, reference data sync)
- Run Checks integration for Autotask ticket creation
- Customers page with Autotask company mapping
- Documentation files for Autotask integration design and implementation
- Added `docs/autotask_rest_api.md` - Validated Autotask REST API contract based on Postman testing
## [2026-02-04]
### Added
- `docs/changelog-claude.md` - Changelog file for tracking changes made via Claude Code
- Setting to enable/disable daily dashboard redirect requirement (Settings > General > Navigation)
- New `require_daily_dashboard_visit` column in `SystemSettings` model
- Migration in `migrations.py` to add the column
- Toggle in Settings General page under new "Navigation" card
- Default value is OFF (disabled) - users can navigate directly to any page
### 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 migration (`migrations.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