All notable changes to Engram will be documented in this file.
- Anthropic proxy requests now keep the
systemprompt verbatim instead of attempting identity compression, while still applying conversation window compression.
- Removed the Anthropic
count_tokenspreflight from the proxy path, avoiding extra upstream traffic before each Claude request. - Anthropic proxy failures are now easier to diagnose with clearer upstream error logging.
- Claude-through-Engram reliability is restored for Anthropic by disabling the system/identity rewrite that triggered upstream throttling.
- Zero-touch install —
engram install --claude-codenow handles the full setup in one command: plugin copy, settings merge, config creation, daemon service registration, service start, and readiness verification config.EnsureDefault— creates~/.engram/engram.yamlwith working defaults if absent; leaves existing config unchangedverifyReadiness— post-install check that polls the daemon Unix socket and proxy TCP port; install exits non-zero if either is unreachable within 15 seconds- Linux systemd support in the Claude install flow (
engram install --claude-codenow works on Linux as well as macOS) - Shared path helpers (
DefaultSocketPath,DefaultConfigPath,DefaultSessionsDir) — single source of truth used by bothserveandinstallcode paths
engram install --claude-codeis now fail-closed: the install exits with a non-zero status if any required step fails (plugin copy, settings merge, config creation, service install, service start, or readiness check). Success output only appears when all steps complete.RegisterProxyHeadersfailure is now a hard error instead of a warning — a partial install where Claude isn't routed through Engram is no longer possible--configflag defaults to~/.engram/engram.yamlon all commands (serve, root persistent flag). Previously defaulted toengram.yamlrelative to the working directory, which caused silent failures when no config existed in CWDengram serveno longer requires a config file in the working directory — it finds~/.engram/engram.yamlautomatically- Readiness check uses the proxy port from the actual loaded config, not a hardcoded default — custom proxy ports work correctly end-to-end
installLaunchdandinstallSystemdwere previously called with an empty socket path, producing invalid service definitions. Both now receive the real socket path fromDefaultSocketPath()- Config path detection in
installServiceused a fragile string sentinel ("engram.yaml"); replaced with cobra'sflag.Changedto correctly distinguish user-provided vs default values
- Connection pooling across all SDKs (Go, Python, Node.js) for lower latency
- Recursive identity file scanning (finds CLAUDE.md, AGENTS.md, .cursorrules in subdirectories)
- Schema-once optimization — codebook definitions injected only on first turn
- Token savings bar chart visualization in
engram analyze engram advisorcommand for optimization recommendations- Go SDK with channel-based connection pool
- Python async SDK with
asyncio.Queuepool - Node.js SDK with persistent connection pool
- GitHub Actions CI (Go core + all 3 SDK test suites)
- GoReleaser configuration for cross-platform binary releases
- Context compression pipeline: codebook, history, and response compression stages
- Identity compression achieves ~96-98% token reduction on real projects
- SDKs use persistent connections (previously fresh connection per call)
- Scanner now finds all identity files in subdirectories (previously root-only)
- Python FakeDaemon updated for persistent connection framing
- Node SDK uses
rminstead of deprecatedrmdir
- Initial release
- Local daemon with JSON-RPC 2.0 over Unix socket
- Identity compression via codebook derivation
- Context codebook for message serialization
- MCP plugin for Claude Code integration
engram install,engram analyze,engram serve,engram statuscommands