github Gentleman-Programming/engram v3.1.0

6 hours ago

Engram 3.1.0

Highlights

  • Add observation version history for topic-key upserts and updates. MCP mem_get_observation supports opt-in include_history, with pages of up to 50 prior snapshots and history_cursor continuation. 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

Don't miss a new engram release

NewReleases is sending notifications on new releases.