67 lines
2.7 KiB
Markdown
67 lines
2.7 KiB
Markdown
# Release v1.3.2 (2026-02-19)
|
|
|
|
## Summary
|
|
|
|
Release focuses on stability and data integrity for local configurations. Added configuration revision history, stronger recovery for broken local sync/version states, improved sync self-healing, and clearer API error logging.
|
|
|
|
## Changes
|
|
|
|
### Configuration Revisions
|
|
|
|
- Added full local configuration revision flow with storage and UI support.
|
|
- Introduced revisions page/template and backend plumbing for browsing revisions.
|
|
- Prevented duplicate revisions when content did not actually change.
|
|
|
|
### Local Data Integrity and Recovery
|
|
|
|
- Added migration and snapshot support for local configuration version data.
|
|
- Hardened updates for legacy/orphaned configuration rows:
|
|
- allow update when project UUID is unchanged even if referenced project is missing locally;
|
|
- recover gracefully when `current_version_id` is stale or version rows are missing.
|
|
- Added regression tests for orphan-project and missing-current-version scenarios.
|
|
|
|
### Sync Reliability
|
|
|
|
- Added smart self-healing path for sync errors.
|
|
- Fixed duplicate-project sync edge cases.
|
|
|
|
### API and Logging
|
|
|
|
- Improved HTTP error mapping for configuration updates (`404/403` instead of generic `500` in known cases).
|
|
- Enhanced request logger to capture error responses (status, response body snippet, gin errors) for failed requests.
|
|
|
|
### UI and Export
|
|
|
|
- Updated project detail and index templates for revisions and related UX improvements.
|
|
- Updated export pipeline and tests to align with revisions/project behavior changes.
|
|
|
|
## Breaking Changes
|
|
|
|
None identified.
|
|
|
|
## Files Changed
|
|
|
|
- 24 files changed, 2394 insertions(+), 482 deletions(-)
|
|
- Main touched areas:
|
|
- `internal/services/local_configuration.go`
|
|
- `internal/services/local_configuration_versioning_test.go`
|
|
- `internal/localdb/{localdb.go,migrations.go,snapshots.go,local_migrations_test.go}`
|
|
- `internal/services/export.go`
|
|
- `cmd/qfs/main.go`
|
|
- `web/templates/{config_revisions.html,project_detail.html,index.html,base.html}`
|
|
|
|
## Commits Included (`v1.3.1..v1.3.2`)
|
|
|
|
- `b153afb` - Add smart self-healing for sync errors
|
|
- `8508ee2` - Fix sync errors for duplicate projects and add modal scrolling
|
|
- `2e973b6` - Add configuration revisions system and project variant deletion
|
|
- `71f73e2` - chore: save current changes
|
|
- `cbaeafa` - Deduplicate configuration revisions and update revisions UI
|
|
- `075fc70` - Harden local config updates and error logging
|
|
|
|
## Testing
|
|
|
|
- [x] Targeted tests for local configuration update/version recovery:
|
|
- `go test ./internal/services -run 'TestUpdateNoAuth(AllowsOrphanProjectWhenUUIDUnchanged|RecoversWhenCurrentVersionMissing|KeepsProjectWhenProjectUUIDOmitted)$'`
|
|
- [ ] Full regression suite not run in this release step.
|