From 87cb12906d110b2f7305bc3873aaec950b6a4e22 Mon Sep 17 00:00:00 2001 From: Michael Chus Date: Thu, 19 Feb 2026 18:43:03 +0300 Subject: [PATCH] docs: add release notes for v1.3.2 --- releases/memory/v1.3.2.md | 66 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 releases/memory/v1.3.2.md diff --git a/releases/memory/v1.3.2.md b/releases/memory/v1.3.2.md new file mode 100644 index 0000000..c833e1a --- /dev/null +++ b/releases/memory/v1.3.2.md @@ -0,0 +1,66 @@ +# 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: + - `/Users/mchusavitin/Documents/git/QuoteForge/internal/services/local_configuration.go` + - `/Users/mchusavitin/Documents/git/QuoteForge/internal/services/local_configuration_versioning_test.go` + - `/Users/mchusavitin/Documents/git/QuoteForge/internal/localdb/{localdb.go,migrations.go,snapshots.go,local_migrations_test.go}` + - `/Users/mchusavitin/Documents/git/QuoteForge/internal/services/export.go` + - `/Users/mchusavitin/Documents/git/QuoteForge/cmd/qfs/main.go` + - `/Users/mchusavitin/Documents/git/QuoteForge/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.