docs: update changelogs for reliability audit completion

- Added entries for organization_id alert optimization
- Added entries for cascade delete safety improvements
- Added entry for sensor state validation
- Updated user-facing changelog with performance improvements
- All 23 bugs from reliability audit now addressed
This commit is contained in:
Graham McIntire 2026-03-05 09:34:57 -06:00
parent 31cccf97b9
commit 29b23fb06c
No known key found for this signature in database
2 changed files with 25 additions and 0 deletions

View file

@ -1,4 +1,26 @@
2026-03-05
perf: add organization_id to alerts for fast single-table queries
- Denormalize organization_id from device to alerts table for query performance
- Add composite indexes on (organization_id, alert_type, resolved_at)
- Optimize list_organization_active_alerts to eliminate expensive 3-table joins
- Auto-populate organization_id when creating alerts
Files: lib/towerops/alerts/alert.ex, alerts.ex
priv/repo/migrations/20260305152930_add_organization_id_to_alerts.exs
fix: change agent token cascade deletes to RESTRICT for data safety
- Changed agent_tokens.organization_id from CASCADE to RESTRICT on delete
- Changed agent_assignments.agent_token_id from CASCADE to RESTRICT on delete
- Prevents silent data loss when deleting organizations or agent tokens
Files: priv/repo/migrations/20260305152524_fix_agent_cascade_deletes.exs
fix: add validation for state_descr in sensor readings
- Added min/max length validation (1-255 chars) for state_descr field
- Prevents empty or overly long state descriptions from being stored
Files: lib/towerops/snmp/sensor_reading.ex
ci: upgrade to Elixir 1.19.5 and OTP 28.3 to match .tool-versions
Files: .forgejo/workflows/build.yaml
fix: comprehensive reliability audit bug fixes (16 bugs fixed)
- Critical (5): Task.yield_many race condition, Enum.zip data corruption, missing Alert schema fields, LiveView timer/PubSub leaks
- High (3): clock skew handling, nil crash in interface status, migration index naming

View file

@ -1,4 +1,7 @@
2026-03-05 — Reliability & Performance Improvements
* Optimized alert queries for faster dashboard loading on large organizations
* Improved data integrity with stricter database constraints
* Enhanced validation for sensor readings to prevent invalid data
* Fixed memory leaks in real-time dashboard components
* Improved error handling for device polling and monitoring
* Better handling of clock synchronization issues between servers