Skip to content

Releases: kunickiaj/codemem

Release v0.39.0

Choose a tag to compare

@github-actions github-actions released this 07 Jul 11:08
Immutable release. Only release title and notes can be modified.
88e0b1b

Highlights

  • OpenCode memory recall is now friendlier to provider prompt caching: codemem attaches recalled context to the latest user message instead of rewriting the system prompt every turn.
  • Session compaction stays cleaner: codemem skips prompt-time memory injection while OpenCode is summarizing a session, then resumes on normal turns.
  • The legacy system-prompt path is still available with CODEMEM_INJECT_SURFACE=system, and the docs now explain both modes.

What's Changed

Other Changes

Full Changelog: v0.38.0...v0.39.0

Release v0.38.0

Choose a tag to compare

@github-actions github-actions released this 05 Jul 11:37
Immutable release. Only release title and notes can be modified.
83a963e

What's new in 0.38.0

  • Quieter observer. A memory-worthiness bar means routine sessions (context lookups, status checks, review passes with no findings) now produce a summary only — no forced observations. Rich implementation sessions still emit 2–4 thread-covering observations. Measured effect during the dogfood window: ~40–50% fewer observations per observer call, with no starvation on real work.
  • Relevance-first pack ranking (new default). Durable observations and decisions now lead default/task/debug packs; session summaries lead only when you explicitly ask for a recap. Measured: ~3pp more durable content and ~3pp less telemetry in top-5 results, with explicit-recap behavior unchanged.
  • Distill v1 with a worthiness judge (on by default). codemem distill mines recurring memories into reviewable AGENTS.md rule candidates; an observer-model judge drops routine-activity clusters. --draft proposes a diff and --apply writes a codemem-managed block. Also exposed via the memory_distill_candidates MCP tool. The judge requires observer credentials on the serving peer; retrieval-only peers return unjudged candidates.

Known limitations

  • Repeating distill --apply for the same candidate can append a reworded duplicate bullet (the drafter regenerates wording per run). Duplicates are harmless and hand-removable; a fix that tracks applied candidates by cluster identity is planned as a follow-up.
  • Judged distill on a serving peer without observer credentials silently returns unjudged candidates (metadata still reports judged: true); improved signaling is planned.

Release v0.38.0-alpha.2

Pre-release

Choose a tag to compare

@github-actions github-actions released this 02 Jul 16:47
Immutable release. Only release title and notes can be modified.
f24a4a5

What's Changed

Other Changes

  • fix(docker): persist MCP OAuth state by @kunickiaj in #1305
  • feat(core): observer worthiness bar — drop the min-observation quota by @kunickiaj in #1308
  • feat(core): scaffold distill fact-miner candidate engine by @kunickiaj in #1288
  • feat(core): cluster distill candidates semantically by @kunickiaj in #1289
  • feat(core): score distill candidate promotability by @kunickiaj in #1290
  • feat(core): dedupe distill candidates against context by @kunickiaj in #1291
  • feat(core): emit distill candidates with scope routing by @kunickiaj in #1292
  • feat(cli,mcp): expose distill candidates by @kunickiaj in #1293
  • feat(distill): draft AGENTS.md rules from candidates with diff/apply by @kunickiaj in #1294
  • feat(distill): judge candidates for durable-lesson worthiness by @kunickiaj in #1309
  • chore(release): bump version to 0.38.0-alpha.2 by @kunickiaj in #1310

Full Changelog: v0.38.0-alpha.1...v0.38.0-alpha.2

Release v0.38.0-alpha.1

Pre-release

Choose a tag to compare

@github-actions github-actions released this 01 Jul 07:58
Immutable release. Only release title and notes can be modified.
210e404

What's Changed

Other Changes

  • docs(memory): define dual-artifact memory-worthiness policy by @kunickiaj in #1295
  • feat(core): add dual-artifact memory worthiness classifier by @kunickiaj in #1296
  • test(core): add dual-artifact eval scenario pack + artifact-share metric by @kunickiaj in #1297
  • docs(memory): design derived-fact derivation pass by @kunickiaj in #1298
  • feat(core): add read-only dual-artifact audit report + CLI by @kunickiaj in #1299
  • feat(core): capture-time artifact routing + telemetry suppression (gated) by @kunickiaj in #1300
  • feat(core): relevance-first default ranking + artifact_class trace diagnostic by @kunickiaj in #1303
  • chore(release): bump version to 0.38.0-alpha.1 by @kunickiaj in #1304

Full Changelog: v0.37.1...v0.38.0-alpha.1

Release v0.37.1

Choose a tag to compare

@github-actions github-actions released this 27 Jun 13:46
Immutable release. Only release title and notes can be modified.
1e1f605

What's Changed

Other Changes

Full Changelog: v0.37.0...v0.37.1

Release v0.37.0

Choose a tag to compare

@github-actions github-actions released this 21 Jun 22:42
Immutable release. Only release title and notes can be modified.
266629b

✨ Highlights

🗜️ Reclaim database disk space

codemem's local SQLite store could grow into the gigabytes and never shrink on its own. 0.37 gives you the tools to take that space back:

  • codemem db prune-replication-ops now prunes every sharing scope (not just the default) and reports an honest whole-table size. It's peer-safe — it respects each scope's retained floor, so it won't drop ops a peer still needs.
  • codemem db prune-raw-events --max-age-days <N> trims old recorded session events.
  • codemem db vacuum returns the freed space to disk (row deletes alone don't shrink the file).
  • Opt-in background retention to keep growth bounded automatically: sync_retention_enabled (replication ops) and raw_events_retention_enabled (raw events).

Tip for existing large DBs: run the prunes, then codemem db vacuum once. VACUUM takes an exclusive lock and needs free temp space, so stop the daemon/viewer first.

⚡ Faster, lighter viewer & queries

  • Production viewer bundle is minified and pre-compressed (brotli/gzip) for smaller downloads and faster loads.
  • /api/usage is aggregated in SQL, scope-visibility filtering uses an indexed lookup, plus tuned SQLite pragmas (cache/mmap) and dropped legacy indexes — noticeably snappier on large databases.

🔒 Security

  • Dependency advisory patches: pnpm 11.8.0 and fixes for hono, vite, protobufjs, and undici.
  • Feed markdown is now sanitized with DOMPurify in the viewer.

🛠️ Reliability fixes

  • Sync holds the inbound cursor when ops fail to apply, so a transient failure retries instead of silently skipping data.
  • Coordinator device removal is now atomic; invite expiry is timezone-safe.
  • CLI commands have structured error boundaries (clean failures and exit codes); the OpenCode plugin hardens subprocess and tool-arg handling.

What's Changed

Other Changes

  • fix(core): hold inbound replication cursor when ops fail to apply by @kunickiaj in #1262
  • fix(opencode-plugin): harden subprocess and tool-arg handling by @kunickiaj in #1263
  • fix(cli): add structured error boundaries to command handlers by @kunickiaj in #1264
  • fix(ui): sanitize feed markdown with DOMPurify and bundle marked by @kunickiaj in #1265
  • fix(viewer-server): evict usage cache and fix error/config consistency by @kunickiaj in #1266
  • fix(core): make coordinator removeDevice atomic and invite-expiry timezone-safe by @kunickiaj in #1267
  • perf(core): add cache_size/mmap_size/temp_store pragmas in connect() by @kunickiaj in #1268
  • perf(core): drop legacy unused memory_items indexes by @kunickiaj in #1269
  • perf(core): resolve scope-visibility set once and filter with indexed IN() by @kunickiaj in #1270
  • perf(viewer): aggregate /api/usage in SQL, bound recent-packs visibility window by @kunickiaj in #1271
  • perf(core): gate per-open additive schema-compat shim behind a version marker by @kunickiaj in #1272
  • perf(viewer/ui): minify production bundle + precompress assets (brotli/gzip) by @kunickiaj in #1273
  • feat(core): raw_events retention config keys + db prune-raw-events CLI by @kunickiaj in #1274
  • chore(deps): bump pnpm to 11.8.0 + patch hono/vite/protobufjs/undici advisories by @kunickiaj in #1275
  • fix(ui): avoid serving stale precompressed bundles in build:watch by @kunickiaj in #1276
  • fix(cli): prune-replication-ops prunes all scopes + honest whole-table size report by @kunickiaj in #1278
  • chore(release): bump version to 0.37.0 by @kunickiaj in #1280

Full Changelog: v0.36.1...v0.37.0

Release v0.36.1

Choose a tag to compare

@github-actions github-actions released this 20 Jun 09:11
Immutable release. Only release title and notes can be modified.
27380a2

What's Changed

Other Changes

  • fix(codex): remove unsupported hook config field by @kunickiaj in #1258
  • fix(sync): additively merge-recover scoped peers with local rows but no cursor by @kunickiaj in #1259
  • fix(core): treat claimed same-actor peers as mine in ownership_scope SQL by @kunickiaj in #1260
  • chore(release): bump version to 0.36.1 by @kunickiaj in #1261

Full Changelog: v0.36.0...v0.36.1

Release v0.36.0

Choose a tag to compare

@github-actions github-actions released this 14 Jun 16:04
Immutable release. Only release title and notes can be modified.
ca0006d

What's Changed

Other Changes

Full Changelog: v0.35.2...v0.36.0

Release v0.35.2

Choose a tag to compare

@github-actions github-actions released this 30 May 00:16
Immutable release. Only release title and notes can be modified.
7282508

What's Changed

Other Changes

  • fix(codex): valid Codex hook output from codex-hook-ingest; consolidate to --codex-only by @kunickiaj in #1229
  • chore(release): bump version to 0.35.2 by @kunickiaj in #1230

Full Changelog: v0.35.1...v0.35.2

Release v0.35.1

Choose a tag to compare

@github-actions github-actions released this 29 May 21:16
Immutable release. Only release title and notes can be modified.
f92f1a6

✨ Plugin-free Codex install (codemem setup --codex)

If you're on API-key / non-subscription Codex Desktop, plugin installation is greyed out — so this release adds a way to wire codemem into Codex without the marketplace:

npx -y codemem setup --codex

This configures Codex directly:

  • Adds [mcp_servers.codemem] to ~/.codex/config.toml (recall via MCP — works immediately).
  • Writes ~/.codex/hooks.json for capture + prompt-time recall (SessionStart, UserPromptSubmit, PostToolUse, Stop).

It's safe and re-runnable: existing config/comments/secrets are preserved (files are backed up, never reformatted), unrelated hooks are kept, and it honors CODEX_HOME. Hooks call codemem directly when it's on your PATH, otherwise fall back to npx -y codemem. Restart Codex and approve the one-time prompt to trust the codemem hooks; MCP recall needs no trust.

Codex support remains early beta. Subscription users should still prefer the plugin marketplace (codex plugin marketplace add … / codex plugin add codemem@codemem).

Full Changelog: v0.35.0...v0.35.1