diff --git a/CHANGELOG.md b/CHANGELOG.md index 46de017..d913833 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,27 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.4.0] - 2026-04-28 + +### Added + +- Unified memory quality gate in `src/memory-quality.ts` as the single source of truth for all memory quality rules. +- CRITICAL MEMORY RULES in compaction prompt with explicit good/bad examples. +- Auto-supersede migration `2026-04-28-quality-cleanup` that marks low-quality compaction memories as superseded on first load. + +### Changed + +- Memory quality rules now apply to all memory types, not just project entries. +- Compaction prompt explicitly instructs model that most compactions should produce zero memories. +- Low-quality compaction memories (progress snapshots, implementation notes, session-internal notes) are automatically superseded during workspace memory normalization. + +### Migration Notes + +- Existing low-quality `source: "compaction"` entries will be marked as `superseded` once on first load after upgrade. +- Explicit and manual memories are never affected by quality cleanup. +- Superseded entries are retained on disk with `quality_cleanup` tags for audit purposes. +- Migration is idempotent and runs exactly once per workspace. + ## [1.3.3] - 2026-04-28 ### Fixed diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 3d5c045..de0435a 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,5 +1,55 @@ # Release Notes +## 1.4.0 (2026-04-28) + +### Memory Quality Cleanup + +This minor release automatically improves memory quality for all existing users on upgrade. Low-quality compaction memories are identified and superseded without requiring manual cleanup. + +### What Changed + +- **Unified quality gate**: All memory types (feedback, decision, project, reference) now share the same quality rules instead of only project entries having a quality check. +- **Hardened compaction prompt**: The model is explicitly instructed that most compactions should produce zero memories, with clear good/bad examples. +- **Auto-supersede migration**: On first load after upgrade, existing low-quality `compaction` memories are automatically marked as `superseded` with quality tags. Explicit and manual memories are never affected. + +### What Gets Cleaned Up + +Low-quality memory patterns that are now rejected/superseded: + +- Progress snapshots: "Wave 1 completed successfully", "180 tests passed" +- Session-internal notes: "The assistant reviewed feedback and updated the plan" +- Implementation notes: "Implemented X in plugin.ts" +- Commit/CI references: "Commit a762e86 contains the fix" +- Raw errors and stack traces +- Temporary status: "Currently running npm test" + +### Migration Behavior + +- Runs exactly once per workspace (idempotent, non-destructive) +- Only affects `source: "compaction"` entries +- Explicit/manual memories are protected +- Superseded entries retain `status: "superseded"` and quality tags for audit +- No user action required + +### Upgrade Notes + +- No configuration changes required. +- Existing workspace memory files are automatically cleaned on first load. +- The OpenCode config entry stays the same: + +```json +{ + "plugin": ["opencode-working-memory"] +} +``` + +### Validation + +- `npm test` (196 tests) +- `npm run typecheck` + +--- + ## 1.3.2 (2026-04-27) ### CI Compatibility Patch diff --git a/package.json b/package.json index 6d44fd6..8f05d3b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "opencode-working-memory", - "version": "1.3.3", + "version": "1.4.0", "description": "Three-layer memory architecture for OpenCode with workspace memory and hot session state", "type": "module", "main": "index.ts",