Releases: Gentleman-Programming/engram
v1.14.9
Summary
- Fixed autosync incorrectly marking pending cloud mutations as acknowledged before any server push occurred.
- Added a clear
non_enrolled_pending_mutationsdiagnostic when autosync is blocked by local project enrollment state. - Surfaced persisted sync diagnostics in
engram cloud statusso users can see the required enrollment action.
Validation
go test ./...- Main CI passed.
- Release workflow passed.
Upgrade guidance
Upgrade both clients that run engram serve and any self-hosted cloud server, then retry autosync. If engram cloud status reports non_enrolled_pending_mutations, run engram cloud enroll <project> for the intended project and retry.
v1.14.8
Summary
- Fixes cloud chunk uploads blocked by
chunk_id does not match payload content hash. - Makes the cloud server authoritative for canonical chunk IDs while preserving payload validation and content-addressed storage.
Details
/sync/pushnow accepts valid chunk payloads even when the client-providedchunk_idis empty or differs from the server-computed canonical hash.- The server still canonicalizes and validates the payload before storage.
- Storage and response use the server-computed
chunk_id, not the client-provided value. - This prevents client/server canonicalization version skew from blocking
last_acked_seqand accumulating pending cloud journal entries.
Validation
- Double adversarial review returned clean.
go test -count=1 ./internal/cloud/cloudserver ./internal/cloud/remote ./internal/sync ./internal/store ./internal/mcp ./cmd/engramgit diff --check
v1.14.7
Summary
- Serializes MCP write tools through an explicit queue to prevent concurrent SQLite write contention.
- Fixes a
mem_savetimeout path exposed by v1.14.6 by closing candidate-search rows before follow-up writes. - Keeps MCP read tools direct so searches/current-project lookups do not wait behind writes.
Details
- Queued MCP write tools:
mem_save,mem_update,mem_delete,mem_save_prompt,mem_session_summary,mem_session_start,mem_session_end,mem_capture_passive,mem_merge_projects, andmem_judge. - Read tools such as
mem_search,mem_context,mem_current_project, andmem_get_observationremain direct. - Queue cancellation is worker-owned so callers do not receive a false cancellation for a write that already started.
- Panics in a write handler are isolated so the queue worker stays alive for later writes.
- Queue backpressure returns a clear retryable error instead of hanging.
Validation
- Double adversarial review returned clean after fixing the cancellation race.
go test -count=1 ./internal/mcp ./internal/store ./cmd/engram ./internal/setupgo test -race ./internal/mcp -run 'Test(WriteQueue|ReadHandlerDoesNotWaitBehindBlockedQueuedWrite)' -count=1git diff --check
v1.14.6
Summary
- Hardened CLI edge cases around help handling, update checks, and manual saves.
- Improved Claude Code hook reliability for session import and reminder timestamp parsing.
- Strengthened SQLite/project merge behavior with regression coverage.
Details
engram savenow records the current working directory for manual-save sessions.engram cloud --help,engram cloud enroll --help, andengram sync --helpreturn usage without creating local state.mcp,serve, andcloud serveskip update checks on startup-sensitive paths.- Claude session-start import now runs in the background with timeout-safe single-flight locking.
- Claude reminder timestamps now support RFC3339, offset timestamps, and SQLite-style timestamps without fallback-to-zero nudges.
- SQLite store initialization uses a single open connection early, and migration helpers close rows before schema writes.
- Project merge now consolidates deterministic legacy aliases while preserving canonical idempotency.
Validation
- Judgment Day adversarial review passed after iterative fixes.
go test -count=1 ./cmd/engram ./internal/store ./internal/setup ./internal/mcpbash -n plugin/claude-code/scripts/session-start.shbash -n plugin/claude-code/scripts/user-prompt-submit.shgit diff --check
v1.14.5
v1.14.4
Engram v1.14.4 — Guided repair for cloud sync failures
Patch release for Engram Cloud sync diagnostics.
Fixed
- Known repairable cloud sync/upsert/canonicalization failures now keep the original error visible and append actionable recovery guidance.
- Foreground
engram sync --cloud --project <project>now recommends the explicit doctor and repair flow when a repairable failure is detected. - Autosync stores the same guidance in its failure message so status/dashboard surfaces can show the next steps.
- No automatic repair is performed. Engram never runs
repair --applyfrom sync or autosync.
Recommended repair flow
engram cloud upgrade doctor --project <project>
engram cloud upgrade repair --project <project> --dry-run
engram cloud upgrade repair --project <project> --apply
engram sync --cloud --project <project>Validation
- Main CI passed for
c350b6c. - Release workflow completed successfully.
Upgrade
brew update && brew upgrade engramv1.14.3
Engram v1.14.3 — Claude MCP tool discovery repair
Patch release for Claude Code users hitting intermittent MCP tool discovery failures.
Fixed
- Repaired Claude Code MCP permissions setup without adding startup delay.
engram setup claude-codenow derives allowlist entries from the actualagenttool profile.- Setup writes permissions for both current durable MCP server ids and legacy plugin-scoped ids:
mcp__engram__...mcp__plugin_engram_engram__...
- Removed the stale hardcoded ToolSearch fallback from the Claude memory skill.
Validation
- PR #192 merged after CI and PR validation passed.
- Release workflow completed successfully for
a477c9d.
Upgrade
brew update && brew upgrade engramAfter upgrading, run:
engram setup claude-codeThen restart Claude Code so the repaired MCP config and permissions are loaded.
v1.14.2
Engram v1.14.2 — MCP implicit session sync fix
Patch release for MCP users syncing with Engram Cloud.
Fixed
- MCP implicit/default sessions now persist the process current working directory.
- Session upsert sync mutations created by MCP now include a valid
directoryfield. - Fixes cloud sync failures like:
canonicalize cloud chunk: mutations[N]: session payload directory is required for upsert
Validation
- Added regression coverage for
mem_save,mem_save_prompt, andmem_session_summary. - CI is green for
39d48e9.
Upgrade
brew upgrade engramv1.14.1
Engram v1.14.1 — Correct GHCR image package
Patch release for the official Engram Cloud Docker image.
Fixed
- Publishes the official container image under the correct GHCR package:
ghcr.io/gentleman-programming/engram:v1.14.1ghcr.io/gentleman-programming/engram:latestghcr.io/gentleman-programming/engram:1.14.1ghcr.io/gentleman-programming/engram:1.14ghcr.io/gentleman-programming/engram:1
- Updates Dokploy/Coolify/Portainer docs and compose examples to use
ghcr.io/gentleman-programming/engram. - Keeps the cloud image default command as
engram cloud serve. - Aligns the session-delete E2E expectation with the new synced delete behavior.
Context
v1.14.0 introduced Memory Conflict Surfacing and the first GHCR publishing workflow. v1.14.1 corrects the package name so the image is attached to the existing engram package/repository instead of a separate engram-cloud package.
v1.14.0
Engram v1.14 — Memory Conflict Surfacing
Your agent can now detect when persistent memories contradict each other, resolve safely when confidence is high, and ask you in conversation when it is not sure.
No CLI flow to learn. No dashboard required. No breaking changes.
Memory Conflict Surfacing
This release closes a long-standing problem in persistent agent memory: what happens when memory contradicts itself.
Classic examples:
- Three months ago you said “use Clean Architecture”; today you say “move to Hexagonal”. Without conflict awareness, an agent averages both and applies a Frankenstein architecture.
- Two people on a shared project give contradictory context to the same memory layer.
- You changed stack six months ago, but old memories still influence new decisions.
Before v1.14, Engram stored all of those memories and agents operated over partial truths. Now Engram detects the collision when new memory is saved.
How it works
The flow changes underneath normal memory saves:
- New memory is saved.
- Engram searches similar candidates with FTS5 plus topic-family matching.
- If candidates exist, the agent receives them with a
judgment_id. - The agent decides:
- Same thing, no conflict → mark and continue.
- Real contradiction with high confidence → resolve directly.
- Not sure → ask you naturally in the conversation.
- The resolution is stored with a full audit trail: who decided, when, model, confidence, and reason.
When the agent asks, it is not a modal or a clickable prompt. It is normal chat:
“I see two architecture memories that conflict: one says Clean Architecture and one says Hexagonal. Which one is current?”
You answer normally. The agent persists the answer. Done.
What to expect after updating
- Cleaner searches: superseded memories are surfaced with context such as
supersedes: #42. - Real audit trail: each decision records who, when, model, confidence, and rationale.
- Multi-persona ready: if two different agents judge the same pair, both judgments persist instead of overwriting each other.
- Zero configuration: existing Engram users can upgrade and keep working.
Engram Cloud and deployment improvements
- Added official multi-arch Docker image publishing for Engram Cloud:
ghcr.io/gentleman-programming/engram-cloud:latestghcr.io/gentleman-programming/engram-cloud:v1.14.0ghcr.io/gentleman-programming/engram-cloud:1.14.0ghcr.io/gentleman-programming/engram-cloud:1.14ghcr.io/gentleman-programming/engram-cloud:1
- Supported image platforms:
linux/amd64andlinux/arm64. - Added a GHCR compose example for Dokploy, Coolify, Portainer, and VPS deployments.
- The cloud image now defaults to
engram cloud serve, so registry-based platforms do not need a custom command override. - Session deletes now propagate through sync, so cleaning empty local sessions can remove them from cloud/other clients instead of leaving stale empty sessions behind.
What is not in this release
Phase 2 will add:
- Cloud sync for memory conflicts. Conflict data is local-only in this release.
- Maintainer dashboard views for team disagreements.
- Decay activation for old decisions that need ratification.
- Semantic detection via embeddings. Phase 1 uses FTS5 plus agent judgment.
The schema already supports the roadmap; the remaining work is logic and UX.
Stats
- 17 MCP tools, up from 16.
- 13 tools in the agent profile, up from 12.
- Around 50 new tests.
- 0 known regressions.
- 0 breaking changes.
- Coverage: store 78.5%, MCP 94.9%.
Upgrade
brew upgrade engramFor Engram Cloud via Docker:
image: ghcr.io/gentleman-programming/engram-cloud:v1.14.0