Engram 3.1.0
Highlights
- Add observation version history for topic-key upserts and updates. MCP
mem_get_observationsupports opt-ininclude_history, with pages of up to 50 prior snapshots andhistory_cursorcontinuation. History is not reconstructed retroactively. (#1286)
Fixes
- Preserve managed dashboard visibility using project grants, including empty registered projects and canonical names containing spaces or literal percent characters. (#1609, #1630)
- Guard initial Git project binding against conflicting historical directory evidence instead of silently adopting a different scope. (#1596)
- Persist managed-token authentication usage. (#1610)
- Publish identity files atomically on Linux without requiring hard-link support, retaining the compatibility fallback. (#1621)
- Repair titleless queued sync payloads using validated current local observation titles, and improve deferred-relation and identity-repair diagnostics. (#1623, #1611)
- Stop a serving process after permanent database-generation invalidation is observed, with bounded cleanup. This does not retrofit the fix into an already-running older process. (#1646)
Maintenance
- Simplify OpenCode JSONC setup I/O, dashboard pagination recovery, and CLI export error handling. (#1606, #1615, #1616)
- Expand isolated PostgreSQL, database-generation, and plugin lifecycle coverage. Tests do not establish that every reported runtime incident is fixed. (#1614, #1641, #1643, #1645)
Upgrade
Back up your database and configuration. Validate compatibility with your integrations, retain a known-good installation, and restart long-running Engram servers and MCP processes to use the new binary. Go source consumers continue to use the /v3 module path.
Release scope and known limitations
This is the core binary release. It does not publish a new gentle-engram npm package; npm remains at 0.2.0, and newer Pi changes on main are not delivered by this core tag. Open resume reports #1622, #1635, #1624, and #1593 are not claimed resolved.
Thanks to @josegarvinvictoria, @Reaan06, and @dnlrsls for the merged contributions.
Full source changelog
The comparison includes Pi source changes; their presence here does not imply a new npm release.
Changelog
- 804953e feat(store,mcp): add observation version history for topic_key upserts (#184) (#1286)
- e48fac2 fix(cloud): align managed dashboard visibility with project grants (#1609)
- 267946a fix(cloud): persist managed token authentication usage (#1610)
- a5d9429 fix(cloudstore): resolve canonical granted dashboard projects (#1630)
- 0f79d5e fix(identity): publish atomically without hard links on Linux (#1621)
- e5c2277 fix(pi): confirm session-scoped bridge memory ownership (#1648)
- 0ed6c88 fix(pi): negotiate core resume compatibility (#1637)
- 5b8e718 fix(pi): preserve actionable ownership mismatch diagnostics (#1608)
- 3951380 fix(pi): preserve session registration transport diagnostics (#1627)
- 38c3017 fix(project): guard initial Git identity against historical scope drift (#1596)
- f8e8ec0 fix(server): stop serving after database generation invalidation (#1646)
- 772daf6 fix(sync): clarify deferred relation and identity repair diagnostics (#1611)
- f26c0b2 fix(sync): repair titleless payloads from current local titles (#1623)
- 6178d6e refactor(cli): return error from cmdExport instead of calling fatal (#1616)
- 3b84efe refactor(dashboard): consolidate pagination recovery (#1615)
- 603bba2 refactor(setup): share OpenCode JSONC config I/O (#1606)
- cd6fc63 test(cloud): cover managed dashboard registry with PostgreSQL (#1614)
- f5552de test(pi): add isolated shutdown delivery mechanism coverage (#1643)
- 7d95d9d test(pi): characterize startup against an unhealthy listener (#1641)
- 7c92daf test(store): characterize rejection after database identity drift (#1645)
Full comparison: v3.0.0...v3.1.0