v2.1.0
kriasoft/react-starter-kitv2.1.0Sep 23, 2026by github-actions[bot]
Upgrading?
AI Summary
Builds on the v2 foundation with atomic observation replacements and improved cloud synchronization. It adds safer agent integrations, including a native Codex hook and a Kimi Code adapter.
Key Highlights
- Added atomic literal find-and-replace for existing observations
- Acquired SQLite write locks to avoid busy snapshot failures
- Materialized mutation-only session, observation, and prompt uploads
- Added declarative `engram setup kimi` adapter for Kimi Code CLI
New Features
- Added atomic literal find-and-replace for existing observations
- Acquired SQLite write locks at transaction start
- Materialized mutation-only session uploads
- Bound Claude Code writes to their runtime session
- Added `engram setup kimi` adapter
Full Release Notes
Engram 2.1.0 builds on the v2 foundation with atomic observation replacements, more reliable local storage and Cloud synchronization, and safer agent integrations. This tag publishes the **core binary**. The Pi package `gentle-engram` 0.1.15 was published separately after this core tag; see [Pi 0.1.15](#pi-0115-is-a-separate-release) below. ## What changed since v2.0.0 ### Memory and local data integrity - Added atomic literal find-and-replace for existing observations through the validated MCP and HTTP contracts ([#1342](https://github.com/Gentleman-Programming/engram/pull/1342)). - Acquired SQLite write locks at transaction start to avoid `SQLITE_BUSY_SNAPSHOT` failures in read-then-write transactions, and upgraded the SQLite runtime with the upstream WAL-reset integrity fix ([#1243](https://github.com/Gentleman-Programming/engram/pull/1243), [#1308](https://github.com/Gentleman-Programming/engram/pull/1308)). These fixes do **not** make network filesystems safe for the database; see [#1292](https://github.com/Gentleman-Programming/engram/issues/1292). - Added a confirmed, local-only `doctor repair` path for observations whose parent session is missing; diagnostics now distinguish repairable findings from informational checks ([#1268](https://github.com/Gentleman-Programming/engram/pull/1268), [#1265](https://github.com/Gentleman-Programming/engram/pull/1265)). ### Cloud and sync convergence - Materialized mutation-only session, observation, and prompt uploads; preserved local hard-delete tombstones during export ([#1312](https://github.com/Gentleman-Programming/engram/pull/1312), [#1313](https://github.com/Gentleman-Programming/engram/pull/1313)). - Continued pulling remote changes when enrollment blocks a push, and deferred pulled records only when their parent session is verifiably absent ([#1309](https://github.com/Gentleman-Programming/engram/pull/1309), [#1274](https://github.com/Gentleman-Programming/engram/pull/1274)). ### Agent integrations - Added a native Codex user-prompt hook command and tightened executable selection. **Windows adapter activation and end-to-end timeout verification are not included**; [#1271](https://github.com/Gentleman-Programming/engram/issues/1271) remains open for v2.2.0 ([#1356](https://github.com/Gentleman-Programming/engram/pull/1356), [#1354](https://github.com/Gentleman-Programming/engram/pull/1354)). - Bound supported Claude Code writes to their runtime session and added a declarative `engram setup kimi` adapter for Kimi Code CLI ([#1352](https://github.com/Gentleman-Programming/engram/pull/1352), [#793](https://github.com/Gentleman-Programming/engram/pull/793)). - Improved Pi detection of legacy pre-v2 servers and bounded retry timing in the package bundled with this core tag ([#1279](https://github.com/Gentleman-Programming/engram/pull/1279)). ## Pi 0.1.15 is a separate release [`gentle-engram` 0.1.15 on npm](https://www.npmjs.com/package/gentle-engram/v/0.1.15) ([`pi-v0.1.15` source tag](https://github.com/Gentleman-Programming/engram/tree/pi-v0.1.15)) improves transport timeout handling for [#1272](https://github.com/Gentleman-Programming/engram/issues/1272): bounded read retries, a write timeout budget that accommodates slower writes, and explicit unknown outcomes when a write may already have been applied. It does not silently retry uncertain writes. ```bash pi install npm:gentle-engram@0.1.15 ``` The **v2.1.0 core tag still pins Pi 0.1.14** in its bundled setup command. Install Pi 0.1.15 explicitly if you need this patch; it is not part of the v2.1.0 core archives. ## Upgrade checklist 1. Back up your local database and configuration. Keep the SQLite database on a **local filesystem**, not NFS/network storage. 2. Upgrade the core binary with the release archive or Homebrew; verify the archive against `checksums.txt` when downloading manually. 3. Run `engram doctor` and follow only the repair guidance applicable to your store. Restart long-running agent and MCP sessions to load the new binary. 4. If you use Pi, install `gentle-engram` 0.1.15 separately with the command above and restart Pi. ## Known limitations accepted for this release - **Network filesystem data safety:** [#1292](https://github.com/Gentleman-Programming/engram/issues/1292) — placing the local SQLite database on NFS/network storage can cause WAL corruption. Use a local filesystem and retain backups. - **Export/import:** [#1287](https://github.com/Gentleman-Programming/engram/issues/1287) — exports with blank session directories can fail to import. - **Windows sync:** [#1175](https://github.com/Gentleman-Programming/engram/issues/1175) — a large multi-project database can make local sync hang. - **Contributor code generation:** [#1260](https://github.com/Gentleman-Programming/engram/issues/1260) — documented `go tool templ generate` fails without a tool directive; use `make templ` instead. - **Windows Codex hook:** [#1271](https://github.com/Gentleman-Programming/engram/issues/1271) — its existing shell adapter can still exceed the two-second timeout. The native command added in #1356 is not yet wired on Windows; adapter activation and end-to-end timeout verification are deferred to v2.2.0. ## Installation and full comparison Release archives cover Linux, macOS, and Windows on amd64 and arm64, with `checksums.txt`; the stable Homebrew formula is also at 2.1.0. See the full core diff in [`v2.0.0...v2.1.0`](https://github.com/Gentleman-Programming/engram/compare/v2.0.0...v2.1.0). The Pi patch has its own tag and npm provenance. ## Thanks to contributors Thank you to everyone who reported an issue or contributed a merged PR. Open reports are credited as feedback, not described as fixed. **Issue reporters** — issues filed after v2.0.0 and before this tag, plus earlier reports directly linked to the release (one representative issue per person): @aaronmasm ([#1288](https://github.com/Gentleman-Programming/engram/issues/1288)) · @Agustin-Prieto ([#1287](https://github.com/Gentleman-Programming/engram/issues/1287)) · @ajavanma ([#1261](https://github.com/Gentleman-Programming/engram/issues/1261)) · @Albe841114 ([#1247](https://github.com/Gentleman-Programming/engram/issues/1247)) @alesierraalta ([#1330](https://github.com/Gentleman-Programming/engram/issues/1330)) · @Alexso9410 ([#1166](https://github.com/Gentleman-Programming/engram/issues/1166)) · @BenjaMolina ([#1271](https://github.com/Gentleman-Programming/engram/issues/1271)) · @blak0p ([#602](https://github.com/Gentleman-Programming/engram/issues/602)) @carolitascl ([#1307](https://github.com/Gentleman-Programming/engram/issues/1307)) · @cristiandavidcaminos ([#1135](https://github.com/Gentleman-Programming/engram/issues/1135)) · @danielgap ([#1297](https://github.com/Gentleman-Programming/engram/issues/1297)) · @despinosaqualit ([#1269](https://github.com/Gentleman-Programming/engram/issues/1269)) @diego-de-sousa ([#1255](https://github.com/Gentleman-Programming/engram/issues/1255)) · @dnlrsls ([#1359](https://github.com/Gentleman-Programming/engram/issues/1359)) · @edwinvalenc ([#1346](https://github.com/Gentleman-Programming/engram/issues/1346)) · @efirvida ([#1292](https://github.com/Gentleman-Programming/engram/issues/1292)) @ElCaaarnal ([#1340](https://github.com/Gentleman-Programming/engram/issues/1340)) · @garcialopezco ([#1273](https://github.com/Gentleman-Programming/engram/issues/1273)) · @GhandyP ([#1182](https://github.com/Gentleman-Programming/engram/issues/1182)) · @gtrafael ([#1332](https://github.com/Gentleman-Programming/engram/issues/1332)) @Haiagari ([#1272](https://github.com/Gentleman-Programming/engram/issues/1272)) · @hjagar ([#1175](https://github.com/Gentleman-Programming/engram/issues/1175)) · @IbatoLionDev ([#1278](https://github.com/Gentleman-Programming/engram/issues/1278)) · @inmoautos ([#1353](https://github.com/Gentleman-Programming/engram/issues/1353)) @JAAvila-Of ([#650](https://github.com/Gentleman-Programming/engram/issues/650)) · @jefer94 ([#1306](https://github.com/Gentleman-Programming/engram/issues/1306)) · @jemanuelp ([#1351](https://github.com/Gentleman-Programming/engram/issues/1351)) · @jesusjbriceno ([#1344](https://github.com/Gentleman-Programming/engram/issues/1344)) @juliobas ([#1335](https://github.com/Gentleman-Programming/engram/issues/1335)) · @lbatmad ([#1242](https://github.com/Gentleman-Programming/engram/issues/1242)) · @LCubero ([#1275](https://github.com/Gentleman-Programming/engram/issues/1275)) · @leoscricca ([#1357](https://github.com/Gentleman-Programming/engram/issues/1357)) @LucasOliveira-dev2026 ([#1256](https://github.com/Gentleman-Programming/engram/issues/1256)) · @marcoandres ([#1345](https://github.com/Gentleman-Programming/engram/issues/1345)) · @matraket ([#1323](https://github.com/Gentleman-Programming/engram/issues/1323)) · @MiguezPablo ([#1294](https://github.com/Gentleman-Programming/engram/issues/1294)) @rjoleinik ([#1305](https://github.com/Gentleman-Programming/engram/issues/1305)) · @San73r00z ([#1296](https://github.com/Gentleman-Programming/engram/issues/1296)) · @santiagopm ([#1301](https://github.com/Gentleman-Programming/engram/issues/1301)) · @smachi ([#1300](https://github.com/Gentleman-Programming/engram/issues/1300)) @TobiasVeiga00 ([#1262](https://github.com/Gentleman-Programming/engram/issues/1262)) · @x4barin ([#1355](https://github.com/Gentleman-Programming/engram/issues/1355)) · @yeerliin ([#1302](https://github.com/Gentleman-Programming/engram/issues/1302)) **Merged PR authors** — v2.0.0...v2.1.0 (one representative PR per person; the [full comparison](https://github.com/Gentleman-Programming/engram/compare/v2.0.0...v2.1.0) lists every change): - @ajavanma ([#1280](https://github.com/Gentleman-Programming/engram/pull/1280)) - @danielgap ([#1164](https://github.com/Gentleman-Programming/engram/pull/1164)) - @dnlrsls ([#1267](https://github.com/Gentleman-Programming/engram/pull/1267)) - @ElCaaarnal ([#1341](https://github.com/Gentleman-Programming/engram/pull/1341)) - @JAAvila-Of ([#793](https://github.com/Gentleman-Programming/engram/pull/793)) - @josegarvinvictoria ([#1265](https://github.com/Gentleman-Programming/engram/pull/1265)) - @Rafaeldelinares ([#1243](https://github.com/Gentleman-Programming/engram/pull/1243)) ## Changelog * 3090703a8a8fb15066738d22c27aa649687066f3 chore(lint): format remaining Go tests (#1317) * ad2e9beaa1b52f223f925bb7d0a56ed577481851 chore(mcp): dedupe session id schema guidance (#1319) * f74102fa34219fb9740d451dd007ee9648ce81d2 ci(workflows): add merge queue support (#1290) * 01bbdf65606e28de6dab3d4d6739bd76eb479487 docs(cloud): pin production container image (#1318) * 25c9b7cbe3c211e79a2e89a407a4923cab5ef622 docs(readme): animate the banner (#1341) * 08bcdfa3422d32c3794a65901a3eb3b59ce9ffe6 feat(memory): add atomic observation replacements (#1342) * ceb28a096b4df7c3f89e5b24d18c90c353965819 feat(setup): add kimi agent adapter for Kimi Code CLI (#793) * 9e34bf3bcbf12c5c306654adcc3e7dcc88921661 fix(claude): bind writes to hook session (#1315) * 48d5fd93a1371b15bfcdf9e4f05bf4b5bfed1bba fix(claude): wire authoritative session binding (#1352) * 3a1a04b33de07afb16f769bcb5fde78a39b665d6 fix(cli): reject conflicting conflict scan modes (#1280) * fa3acd6f4621ea2cfafe2c30c3508abcced1aabc fix(cloud): materialize mutation-only uploads (#1312) * cf7f82e20415f81a61b43abc3a0e002c1fa48f54 fix(codex): add native prompt hook on main (#1356) * 9ac5cef4c32c187ba9de895f1d4855e591afb6a8 fix(doctor): clarify diagnostic-only checks (#1265) * 9ac3750ed239f6a96890a5eabe7a0aee5d827622 fix(doctor): repair orphaned observation sessions (#1268) * f3f09e52c2223b285e429b742e516ea89c9d9218 fix(doctor): require authoritative project evidence (#1310) * 9f9d6379ea5e3b1f748de446b248a2f3d11dc852 fix(import): preserve orphaned relation audits (#1311) * a58ebdc13433e768b35cc086f7c6c18bf1b68e57 fix(mcp): keep project names out of shell guidance (#1314) * bbd352ca352d9d329b0139c4a042ee95b9700231 fix(pi): classify legacy pre-v2 servers and retry deterministic failures on a fixed 5s window (#1279) * 6ad49f17b558004b0fa1f70d161cb9f2fba62aae fix(session): enforce runtime owner liveness (#1267) * 9997a8531df69e25adda25b93aa5f13b29b38cdf fix(setup): pin Codex executable authority on main (#1354) * 3dd1f66ccec2bae42f5085ff984b1fbbcc421f0a fix(store): acquire write lock on begin to eliminate SQLITE_BUSY_SNAPSHOT (#1243) * c1536ad96d4581abff08092b4906c81fe0b0f056 fix(store): defer pulled records with missing sessions (#1274) * 4d8f99641aa60fe6bc6789cc7c5847ec43700e42 fix(store): upgrade SQLite WAL integrity (#1308) * 33f0fed36cc8f4b3cfb8f50bba98d101487c3152 fix(sync): export local hard-delete tombstones (#1313) * 998fc8a9a6737afb34f3008082c5e387ed136d47 fix(sync): pull while enrollment blocks push (#1309) * 1ec0fe9099cc99184db03a7edef7dd87312797a6 fix(test): isolate Windows temp Git discovery (#1328) * 6c4bab2401bfa89331c1a237cfbc3b8adf6a35d6 fix(test): select Git for Windows root Bash (#1339) * 3199156fdb265eefc4a90842fab8046dde6c747e fix(workflows): resolve pull requests for merge groups (#1329) * 70870987f56ae662acf3cfa36fa7e9a99efa9fb3 fix: treat blank Engram environment values as unset (#1299)
Related Repositories
openclaw/openclaw★ 392,690
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
nilbuild/developer-roadmap★ 370,064
Interactive roadmaps, guides and other educational content to help developers grow in their careers.
morluto/rea★ 357,509
Reverse engineer anything with agents, from app behavior down to native binaries.
anomalyco/opencode★ 219,654
The open source coding agent.
n8n-io/n8n★ 208,248
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.