Skip to content

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 23 Jul 11:25

Changelog

  • 7012164 Change banner image in README.md
  • 1efa83c Merge PR Gentleman-Programming#562 into feature chain
  • f9f3ee7 Merge PR Gentleman-Programming#563 into feature chain
  • 93db9f5 Merge PR Gentleman-Programming#564 into feature chain
  • 1b7be0c Merge PR Gentleman-Programming#565 into feature chain
  • b5e7a95 Merge PR Gentleman-Programming#566 into feature chain
  • aedca95 Merge PR Gentleman-Programming#567 into feature chain
  • 911b8b6 Merge PR Gentleman-Programming#568 into feature chain
  • a796556 Merge PR Gentleman-Programming#569 into feature chain
  • fd7b007 Merge PR Gentleman-Programming#572: disabled-user token issuance fix
  • 0dd3918 Merge branch 'main' into feat/delete-session-prompt-endpoints
  • b3e018c Merge branch 'main' into feat/delete-session-prompt-endpoints
  • 4bf6c4d Merge branch 'main' into feat/doctor-diagnostic
  • d3258c5 Merge branch 'main' into fix/cloud-relation-backfill
  • 3d0039b Merge branch 'main' into fix/dashboard-current-state
  • 59d4b64 Merge branch 'main' into fix/local-sync-relations
  • 7cd1e08 Merge branch 'main' into fix/marketplace-json-source-schema
  • 79ff71d Merge branch 'main' into fix/tui-wrapping
  • 2f99d91 Merge branch 'main' into fix/tui-wrapping
  • 76cb9fe Merge cloud user token management
  • ab01072 Merge pull request #1 from relytcloud/docs/memorylake-backend-design
  • 0362a1c Merge pull request Gentleman-Programming#101 from chrux/docs/cursor-rules
  • 13205a4 Merge pull request Gentleman-Programming#11 from SantiagoBobrik/feat/github-templates
  • b80b214 Merge pull request Gentleman-Programming#111 from Gentleman-Programming/fix/windows-mcp-absolute-path
  • 2c8349e Merge pull request Gentleman-Programming#114 from Gentleman-Programming/fix/opencode-mcp-absolute-path
  • 0fd1787 Merge pull request Gentleman-Programming#115 from Gentleman-Programming/fix/opencode-plugin-engram-bin
  • fff7d36 Merge pull request Gentleman-Programming#117 from Gentleman-Programming/fix/opencode-session-inflation
  • 0351718 Merge pull request Gentleman-Programming#16 from SantiagoBobrik/fix/tui-search-escape-loop
  • d813561 Merge pull request Gentleman-Programming#174 from egdev6/feat/delete-session-prompt-endpoints
  • efd489c Merge pull request Gentleman-Programming#2 from jalfarocode/fix/prompt-null-scan-error
  • 9eef983 Merge pull request Gentleman-Programming#28 from sanurb/chore/gitignore-agent-folders
  • 99d3018 Merge pull request Gentleman-Programming#307 from Gentleman-Programming/fix/mcp-ambiguous-project-choice
  • 9127f7b Merge pull request Gentleman-Programming#309 from Gentleman-Programming/feat/auto-capture-save-prompts
  • 402fd40 Merge pull request Gentleman-Programming#311 from Gentleman-Programming/fix/prompt-capture-judgment
  • 150b32a Merge pull request Gentleman-Programming#322 from Gentleman-Programming/fix/cloud-chunks-observation-materialization
  • 76b2909 Merge pull request Gentleman-Programming#324 from Gentleman-Programming/fix/cloud-backfill-production-schema
  • 8330dc4 Merge pull request Gentleman-Programming#325 from Gentleman-Programming/fix/sync-legacy-orphan-import
  • 89142bf Merge pull request Gentleman-Programming#34 from jmeiracorbal/feat/quality-filter-on-save
  • 7f62037 Merge pull request Gentleman-Programming#40 from drccastillo/fix/filter-by-project-entity-level
  • 43c4111 Merge pull request Gentleman-Programming#43 from jmeiracorbal/fix/deferred-tools-session-start
  • daedfff Merge pull request Gentleman-Programming#47 from jmeiracorbal/fix/session-stop-guarantee
  • 30c297d Merge pull request Gentleman-Programming#481 from Gentleman-Programming/feat/observation-lifecycle-state
  • a968a5e Merge pull request Gentleman-Programming#484 from Gentleman-Programming/fix/pinned-observations
  • 1accb19 Merge pull request Gentleman-Programming#486 from Gentleman-Programming/fix/pi-mem-review-chrome
  • f1b765d Merge pull request Gentleman-Programming#488 from Gentleman-Programming/chore/release-gentle-engram-0.1.8
  • d38bbab Merge pull request Gentleman-Programming#489 from Gentleman-Programming/fix/local-sync-relations
  • b851cb9 Merge pull request Gentleman-Programming#494 from forNerzul/fix/local-sync-relations-backfill
  • 36c0819 Merge pull request Gentleman-Programming#497 from Gentleman-Programming/fix/cloud-relation-backfill
  • 03ca44b Merge pull request Gentleman-Programming#5 from Gentleman-Programming/feat/passive-capture-agnostic
  • 30a5532 Merge pull request Gentleman-Programming#64 from pascencio/feature/run-with-systemd
  • 0c298b8 Merge pull request Gentleman-Programming#7 from Gentleman-Programming/feat/coverage-100
  • f42b5e0 Merge pull request Gentleman-Programming#76 from bmunoz89/fix/session-start-clear-matcher
  • d320696 Merge pull request Gentleman-Programming#77 from avirgili-eclub/fix/marketplace-json-source-schema
  • fc8721d Merge pull request Gentleman-Programming#8 from Gentleman-Programming/docs/contribution-workflow-issue-first
  • 11b218f Merge pull request Gentleman-Programming#82 from Twinber/fix/tui-wrapping
  • 92404a7 Merge pull request Gentleman-Programming#86 from Jungas80/fix/marketplace-source-schema
  • 731afdd Merge remote-tracking branch 'origin/main' into feat/memory-conflict-surfacing-cloud-sync
  • f51520d Merge remote-tracking branch 'origin/main' into feat/memory-conflict-surfacing-cloud-sync
  • 5f06571 Update README.md
  • a88e74a chore(ci): update GitHub Actions to Node 24-compatible majors
  • 9f697c8 chore(config): pin engram project name
  • e75264b chore(openspec): archive obsidian-plugin and obsidian-auto-sync changes
  • eb9fa04 chore(pi): bump gentle-engram to 0.1.8
  • 31de383 chore(pi): release gentle-engram 0.1.10
  • 6c50340 chore(pi): release v0.1.3 — first OIDC + provenance publish
  • e42c296 chore(pi): release v0.1.4 (Gentleman-Programming#372)
  • 539ceee chore(repo): harden governance and backlog workflow
  • eea2cd7 chore(sdd): archive Phase 3 + Phase 4 SDD artifacts
  • 17f27a0 chore(sdd): archive cloud-user-token-management change
  • b9128ff chore(security): complete npm security hardening (Gentleman-Programming#361)
  • c978f00 chore(security): harden npm supply chain (Gentleman-Programming#360)
  • 4f92b7b chore(sync): update engram memories
  • 996075a chore(sync): update engram memories
  • d36bc06 chore: add PR and issue templates
  • 7149cc1 chore: add gentle-engram package gallery logo
  • 0360c5a chore: add openspec SDD artifacts for cloud-sync change
  • 84a49ba chore: clarify gitignore comment for agent symlinks
  • 104e220 chore: remove mascot images from assets
  • 9c50be0 chore: stop tracking agent skills symlinks
  • 6441639 chore: sync engram memories
  • 3253210 chore: update go toolchain to 1.25.10
  • 5b4044e ci(release): drop Homebrew tap publishing from goreleaser
  • beb6537 docs(beta): add Obsidian brain beta documentation
  • 585ab7d docs(beta): add isolated docker-compose + community testing guide
  • 0797602 docs(beta): fix save syntax + clarify HTTP API serve setup
  • 326f937 docs(beta): install as engram-beta side-by-side with stable
  • ad810f5 docs(cloud): add legacy sync repair guide
  • cf0b5b4 docs(cloud): add repair helper loop mode
  • c4004e1 docs(cloud): clarify VPS env setup
  • 669491a docs(cloud): expand legacy repair helper
  • a6c473d docs(cloud): plan user token management
  • d44d37b docs(cloud): recommend exported repair command
  • 629d324 docs(cloud): repair empty session directories
  • 6bfe33d docs(codex): add troubleshooting for MCP Transport closed error (Gentleman-Programming#443)
  • d0b6670 docs(cursor): clarify mdc rules path, frontmatter, and deprecation notice
  • 5d842e2 docs(cursor): enhance documentation for rule configuration on Cursor
  • e3cefdc docs(diagrams): add security, communication, auth, autosync SVGs
  • 750736d docs(diagrams): redesign as slide-deck flows + add Spanish versions
  • c43cba1 docs(mcp): note MemoryLake auto-manages dedup/update/conflict in server instructions
  • b37a514 docs(memorylake): add MemoryLake minimal tool surface + simplified agent protocol to phase-3 spec
  • d066972 docs(memorylake): clarify fuzzyFacts intentional single-page scope
  • 0fbed78 docs(memorylake): design spec for MemoryLake V3 backend swap
  • 96f5ba6 docs(memorylake): differential SQLite-vs-MemoryLake parity testing spec
  • ec49bd4 docs(memorylake): document interface split-brain, provisional id, and topic_key gaps
  • 400efe0 docs(memorylake): document per-project backend, config, and limitations
  • b399c12 docs(memorylake): implementation plan for per-project MemoryLake backend
  • d4cdb6b docs(memorylake): live parity scorecard and phase-2 plan
  • 749e023 docs(memorylake): per-project opt-in backend, verbatim raw preservation, retain SQLite
  • 994c897 docs(memorylake): phase 2 plan — complete first-cut methods, cross-interface routing, parity
  • 861b1db docs(memorylake): phase-3 thin-adapter design (defer to mem0, drop idmap, string ids)
  • d798167 docs(memorylake): phase-3 thin-adapter implementation plan (A1' sync_id key)
  • 5bc3991 docs(memorylake): thin-adapter semantics and simplified agent protocol
  • 82ba00b docs(pi): clarify MCP gateway status
  • f74d564 docs(pi): improve gentle-engram package marketing
  • 45e2b4b docs(plugin): add AI contribution skill set
  • 507a9e9 docs(readme): add Steps to Test section for community beta
  • 0d89238 docs(readme): add contributors section with contrib.rocks
  • 2c93b4c docs(readme): clarify setup flow, serve vs mcp, and ENGRAM_URL (Gentleman-Programming#513)
  • 8ef28fb docs(readme): explain MCP restart after upgrade
  • 42160c7 docs(readme): highlight Pi package
  • 64bf163 docs(readme): show all contributors in contrib.rocks
  • be91849 docs(readme): use versioned Engram Cloud logo
  • c81b659 docs(release): add RELEASING.md documenting the tag-driven GitHub release flow
  • 8556e1b docs(skills): add GitHub ruleset enforcement for branch naming and conventional commits
  • 71af15f docs(skills): add contributor skill system and setup links
  • e185e5b docs(store): document DeleteSession/DeletePrompt as local-only operations
  • f7c8944 docs(templates): improve issue and PR templates with guided sections and checklists
  • 8dccc52 feat(cli): add engram delete command to remove observations (Gentleman-Programming#434)
  • ee2ac81 feat(cloud): add CLI admin bootstrap and sync contract tests
  • d4c3b38 feat(cloud): add auth principal foundation
  • 4bd03db feat(cloud): add dashboard principal sessions and bootstrap
  • 9defadf feat(cloud): add identity storage foundation
  • 7172b95 feat(cloud): add managed admin API handlers
  • 7587be0 feat(cloud): add managed-user dashboard UX
  • 81e8728 feat(cloud): add wildcard support to ENGRAM_CLOUD_ALLOWED_PROJECTS (Gentleman-Programming#431)
  • 4035ab5 feat(cloud): audit dashboard login and legacy recovery
  • e840ea2 feat(cloud): detect dead local daemon in cloud status and document launchd unit (Gentleman-Programming#337)
  • 2669f3b feat(cloud): enforce principal sync grants
  • 49528c4 feat(cloud): finalize dashboard and sync flows
  • f6f0535 feat(cloud): integrate project-scoped cloud runtime
  • 60a93da feat(cloud): publish official Docker image
  • 5d2f9d7 feat(cloud): restore dashboard parity and upgrade flows
  • 8babe57 feat(cloud): wire managed-token auth into cloud runtime
  • cacd08d feat(doctor): add operational diagnostics and repair
  • 07afc5e feat(doctor): add operational diagnostics and repair
  • 7c6cd20 feat(github): enforce issue-first PR workflow with labels, templates, and CI checks
  • 8572633 feat(mcp): add all_projects flag to mem_search (Gentleman-Programming#408)
  • 9f87509 feat(mcp): add save reminder on inactivity and session activity score (Gentleman-Programming#178)
  • 281bb1e feat(mcp): add tool profiles and version to TUI dashboard
  • a9b83d6 feat(mcp): auto-capture prompt context on save
  • 9a75889 feat(mcp): route enabled projects to MemoryLake, default SQLite
  • ea8473c feat(mcp): support project override in mem_session_summary (Gentleman-Programming#504)
  • 889dae7 feat(memory): add memory-conflict-surfacing (Phase 1)
  • 5353444 feat(memory): add scoped topic upserts and observation lifecycle tools
  • b6c26fe feat(memory): cloud sync for memory-conflict-surfacing (Phase 2)
  • fb267b6 feat(memory): conflict audit + semantic LLM judge (Phases 3+4)
  • 68d618a feat(memory): conflict surfacing Phases 2+3+4
  • c130ca0 feat(memory): surface observation lifecycle state
  • 3d3885e feat(memorylake): MemoryLakeBackend implementing MemoryBackend over V3 facts
  • 9bb1441 feat(memorylake): V3 REST client with ResponseWrapper unwrap and error mapping
  • 30c75a5 feat(memorylake): async append + poll-extract + metadata backfill
  • 844daf1 feat(memorylake): config + per-project enablement list + CLI enable/disable/status
  • 3fb1881 feat(memorylake): follow continuation_token for full-list pagination
  • 60de571 feat(memorylake): implement passive capture via ExtractLearnings
  • 5ca09b5 feat(memorylake): implement review decay tracking for facts
  • 361a537 feat(memorylake): implement session lifecycle via local sidecar
  • e49b1f8 feat(memorylake): implement topic_key upsert and Tier-B read/aggregate methods
  • c91a110 feat(memorylake): int64<->fact-id map and Observation<->fact mapper (raw-preferring)
  • eff776f feat(memorylake): map relation/conflict methods to V3 conflict API
  • 6e3f08f feat(memorylake): persist prompts with content-hash dedup
  • 16af62e feat(memorylake): semantic + fuzzy search with client-side type/scope filter
  • 0d5649e feat(memorylake): workspace/project/actor resolution and provisioning
  • a7a2697 feat(obsidian): add brain visualization exporter with CLI and TypeScript plugin
  • ed5b212 feat(opencode): add 15-minute save-nudge for memory parity (Gentleman-Programming#516)
  • 91ac21b feat(pi): add compact memory tool chrome (Gentleman-Programming#370)
  • a573553 feat(pi): add compaction recovery redaction (Gentleman-Programming#368)
  • 6976950 feat(pi): add native Engram memory tools
  • c2fc5f4 feat(pi): add native mem_review support
  • 07edba8 feat(pi): expose mem_search search controls
  • 3702165 feat(plugin): add Pi Engram package
  • b70cffb feat(plugin): improve Claude Code memory integration with eager tools and auto-ToolSearch
  • cf5e00a feat(plugin): inject Memory Protocol in session hooks for proactive saves
  • 387128e feat(project): fix project name drift with auto-detection, normalization, and migration tools
  • bcc93a6 feat(routing): route CLI save/search and HTTP serve through per-project MemoryLake selector
  • df5f60a feat(server): add DELETE /sessions/{id} and DELETE /prompts/{id} endpoints
  • be4b613 feat(setup): add --protocol flag and protocol-mode runtime read path (Gentleman-Programming#582)
  • 9b2980f feat(setup): add Claude Code permissions allowlist during plugin install
  • a59f95c feat(setup): add gemini and codex compaction recovery
  • a6718e6 feat(setup): add pi integration setup (Gentleman-Programming#376)
  • 7ad6d19 feat(setup): data-driven agent registry + native setup for 7 more agents (Gentleman-Programming#493)
  • b248425 feat(setup): enable OpenCode subagent statusline
  • 13fc976 feat(setup): install the Codex plugin during 'engram setup codex' (Gentleman-Programming#518)
  • 3c0babb feat(skills): add issue-creation skill, rewrite branch-pr skill, and create AGENTS.md index
  • 0accd50 feat(store): replace FTS5 default ranking with weighted BM25 (refers Gentleman-Programming#241) (Gentleman-Programming#526)
  • 36a3bbf feat(store,cli): add cascade project delete and delete sub-commands for sessions and prompts (Gentleman-Programming#441)
  • 237521a feat(store,mcp): add match_mode option to Search and mem_search (Gentleman-Programming#475)
  • 1af5914 feat(sync): add --all flag to export memories from every project
  • 0d46fd2 feat(timeutil): support configurable timezone for timestamp display (Gentleman-Programming#346)
  • 03fff44 feat(tui): add branded ENGRAM ASCII dashboard header
  • 6b56d7e feat(tui): add clipboard copy keybinding via OSC 52 (Gentleman-Programming#433)
  • ba9e46c feat(tui): add cloud settings screen and docs (Gentleman-Programming#607)
  • 26eb699 feat(tui): add session delete confirmation (Gentleman-Programming#444)
  • 2abf1ef feat(tui): add spinner during plugin installation
  • da10daf feat(tui): improve project list layout and sort by recency
  • 6b80f06 feat: add 'engram setup' command and TUI screen for agent plugin installation
  • c333a15 feat: add Claude Code marketplace manifest for plugin installation
  • 75f616e feat: add Claude Code plugin with hooks, skills, and MCP registration
  • 702ef1d feat: add VS Code and Antigravity support, level memory protocol for Gemini/Codex
  • 1d2a558 feat: add adapter-agnostic passive memory capture
  • 0bc8b9b feat: add automatic version check and TUI update notification
  • 77a845b feat: add cloud-sync foundation with Postgres store, JWT auth, and remote transport
  • b98eb17 feat: add embedded web dashboard with templ + htmx
  • ab35f0f feat: add git sync, strict memory protocol, and auto-import
  • 8463692 feat: add goreleaser + GitHub Actions release pipeline
  • d4a8230 feat: add local-first auto-sync and project-scoped enrollment
  • fa11d07 feat: add local-first auto-sync with background replication and project-scoped enrollment
  • 0220115 feat: add quality filter to mem_save and passive capture
  • 165f2a0 feat: auto-detect project name from git remote with migration (Gentleman-Programming#70)
  • 0b05c53 feat: chunked git sync with manifest and compressed JSONL
  • 0a590a7 feat: deepen cloud dashboard workflows and sync controls
  • 3d86877 feat: initial release of Engram - persistent memory system for AI coding agents
  • 14c33f9 feat: sync defaults to current directory as project filter
  • 476021f feat: wire dashboard + enrollment CLI and update documentation
  • 3b99f0a fix(claude): use current MCP tool names in hook
  • 1a61278 fix(claude-plugin): resolve schema validation error in marketplace.json (Gentleman-Programming#71)
  • b314502 fix(cloud): accept server-canonical chunk hashes
  • 3076214 fix(cloud): align audit filter button height
  • 13a362b fix(cloud): align audit filter button line height
  • 178a015 fix(cloud): clarify autosync token error log and add UTF-8 PS1 output encoding (Gentleman-Programming#421) (Gentleman-Programming#454)
  • 4f7609d fix(cloud): compact audit log filter button
  • ea9ec8c fix(cloud): fall back to cloud.json token when ENGRAM_CLOUD_TOKEN is unset (Gentleman-Programming#430)
  • 38b6510 fix(cloud): keep button hover text readable
  • 064c20a fix(cloud): make managed token issuance audit atomic
  • ad737f4 fix(cloud): make push payload limit configurable
  • 2eb874b fix(cloud): match audit filter button height
  • 3a92f50 fix(cloud): materialize chunk uploads as mutations
  • f200fad fix(cloud): materialize relation mutations on chunk-ingest (WriteChunk) (Gentleman-Programming#600)
  • 4b4a85a fix(cloud): polish disabled token dashboard UX
  • f733b7a fix(cloud): publish image under engram package
  • 3c6c7ce fix(cloud): reject token issuance for disabled users
  • bd1855a fix(cloud): repair exported empty sessions
  • 5f935c8 fix(cloud): repair exported observation fields
  • 07e7313 fix(cloud): startup boot loop and mutation pull enrollment gate
  • 6d2138c fix(cloud): stop autosync false acknowledgements
  • b8221d2 fix(cloud): stretch audit filter button
  • c34c0b4 fix(cloud): style submit buttons consistently
  • e57f6f2 fix(cloudstore): apply standalone cloud mutations in dashboard model
  • b0e23a6 fix(codex): add dedicated Codex plugin so hooks load correctly (Gentleman-Programming#514)
  • ea1acda fix(dashboard): show current cloud browser state
  • 8e8d313 fix(dashboard): show current cloud browser state
  • d72a85c fix(diagrams): inline SVG attributes for consistent rendering
  • b843de3 fix(hooks): add clear to SessionStart matcher
  • 7353d05 fix(mcp): guard enablement map access in routing selector to fix data race
  • 2087c5b fix(mcp): harden handleSessionSummary — process override + empty-content guard (Gentleman-Programming#424)
  • 2b9d1ab fix(mcp): harden prompt capture follow-up
  • e092095 fix(mcp): infer session start directory
  • 39d48e9 fix(mcp): persist cwd for implicit sessions
  • 076e374 fix(mcp): preserve mem_save observation content (Gentleman-Programming#374)
  • 21f530e fix(mcp): recover ambiguous project writes
  • 93a0713 fix(mcp): require recovery token for ambiguous project choice
  • 841507f fix(mcp): resolve active session from store for mem_save instead of manual-save fallback (Gentleman-Programming#386) (Gentleman-Programming#449)
  • ef61ef4 fix(mcp): route by-id handlers through detected-project backend
  • aa13e56 fix(mcp): route mem_review to MemoryLake projects and skip redundant post-save re-fetch
  • e0632d2 fix(mcp): route mem_stats/mem_doctor/prompt capture through MemoryBackend
  • cfe66b3 fix(mcp): serialize write tools
  • 9ae9acf fix(mcp): skip project filter for scope=personal with no explicit project (Gentleman-Programming#425)
  • 2743714 fix(mcp): tighten ambiguous project recovery
  • b094052 fix(mcp): trust process project override (Gentleman-Programming#378)
  • 8f85320 fix(mcp): validate explicit read project against the target backend
  • efa6e79 fix(mcp): validate write project resolution
  • 078c349 fix(memory): pin critical observations in context
  • 1dcc17c fix(memorylake): degrade to semantic-only when fuzzy fact lookup fails
  • c0e0f15 fix(memorylake): handle non-idempotent conversation create and actor bind (409 recovery)
  • 30695da fix(memorylake): isolate routing resolution per project and serialize AddObservation
  • 5e8268f fix(memorylake): make observation ids globally unique to stop HTTP cross-project leak; route recent-sessions
  • 93bfba3 fix(memorylake): normalize TopicIndex keys, add reverse purge, bound fact pagination
  • c2e8df5 fix(memorylake): recover from concurrent project-create 409 so losing writer still routes to MemoryLake
  • 8398a23 fix(memorylake): scope fact backfill to newly-appended facts
  • 33030b5 fix(memorylake): use V3 fact field in UpdateObservation PATCH body
  • 1893979 fix(memorylake): validate topic_key upsert hits and purge index on delete/update
  • 822282c fix(migration): move new-column indexes after ALTER TABLE to fix upgrades
  • a48d064 fix(migration): rebuild legacy observations table with valid ids
  • 7b09ba9 fix(migration): use constant default for updated_at in ALTER TABLE
  • d0e7e21 fix(obsidian): prevent path traversal in exporter file path construction (Gentleman-Programming#423)
  • 2f8e5e8 fix(pi): add session summary project fallback
  • 6fc70fb fix(pi): clarify native Engram provider failures
  • 763a6ba fix(pi): hide detached process windows on Windows (Gentleman-Programming#604)
  • 743f2d0 fix(pi): pin gentle-engram setup version
  • 43cc242 fix(pi): pin npmCommand to stable mise node spec to prevent package root drift (Gentleman-Programming#432)
  • 22fcd43 fix(pi): recover Engram statusline after transient wake-time failures (Gentleman-Programming#640)
  • ab86d8e fix(pi): show actionable status for ambiguous project errors (Gentleman-Programming#439)
  • 1fac309 fix(plugin): align Pi package peer dependency
  • e433cfb fix(plugin): align Pi project detection
  • a92e520 fix(plugin): concatenate system prompt instead of pushing to avoid multi-system-message errors (Gentleman-Programming#23)
  • 68a19f8 fix(plugin): debounce save-nudge to stop per-message repeats
  • 03b2534 fix(plugin): persist user prompt in UserPromptSubmit hook (Gentleman-Programming#512)
  • 789c9bb fix(plugin): quote CLAUDE_PLUGIN_ROOT in hooks for paths with spaces (Gentleman-Programming#442)
  • 0f7bf83 fix(plugin): reduce Claude prompt hook latency
  • 7018b74 fix(plugin): remove bilingual triggers from claude-code session context (Gentleman-Programming#373)
  • d96555f fix(plugin): rename Pi package to gentle-engram
  • df8dcf6 fix(plugin): replace dead prompt capture with chat.message hook in OpenCode plugin
  • 43870ea fix(plugin): skip sub-agent session registration in OpenCode plugin
  • 2a36503 fix(plugin): sync plugin.json version to 0.1.1 to stop recursive cache dirs (Gentleman-Programming#217) (Gentleman-Programming#455)
  • 5f8cb8d fix(release): adhoc re-sign darwin binaries to prevent AMFI SIGKILL on macOS 26.4 (Gentleman-Programming#402) (Gentleman-Programming#453)
  • 5ee447c fix(release): switch from homebrew cask to formula for brew upgrade support
  • b039e6d fix(routing): do not cache MemoryLake resolution failures as sqlite fallback
  • a13915a fix(security): replace timing-unsafe token comparisons with hmac.Equal (Gentleman-Programming#426)
  • e8c932f fix(server): add observations compatibility endpoint (Gentleman-Programming#377)
  • 7fb528a fix(server): normalize project names before migrate to prevent case-only duplicates (Gentleman-Programming#438) (Gentleman-Programming#451)
  • 980ebd8 fix(setup): anchor marker end-search and reject relative config-home (Gentleman-Programming#520)
  • 6a6dce4 fix(setup): auto-register engram MCP server in opencode.json during setup
  • 75cdfcb fix(setup): avoid baking versioned Homebrew Cellar path into MCP configs (Gentleman-Programming#499)
  • 96b268a fix(setup): bake OpenCode plugin binary fallback
  • ad5b433 fix(setup): detect opencode.jsonc and handle JSONC comments (Gentleman-Programming#18)
  • a477c9d fix(setup): repair Claude MCP tool discovery (Gentleman-Programming#192)
  • 714cccb fix(setup): resolve OpenCode MCP path in generated config
  • 9ee6b7f fix(setup): stop writing unread Cursor global rule, write informational copy (Gentleman-Programming#522)
  • c1912ca fix(setup): sync embedded OpenCode plugin with chat.message hook fix
  • 44faeee fix(setup): update cursor post-install test after Gentleman-Programming#522 (Gentleman-Programming#524)
  • 9d951e7 fix(setup): update post-install message to reflect auto MCP registration
  • c70deea fix(setup): use absolute MCP paths on Windows
  • e2d1aeb fix(store): add topic_key to FTS5 index and direct search fallback
  • 1858513 fix(store): apply repairable cloud-upgrade mutations even when a blocker is queued (Gentleman-Programming#446) (Gentleman-Programming#452)
  • e1ed602 fix(store): apply session-fallback in cross-project guard and fix REQ-011 log placement
  • 3514f03 fix(store): backfill relation sync mutations so relations reach cloud
  • c71d08b fix(store): escape interior double-quotes in sanitizeFTS to prevent FTS5 crash (Gentleman-Programming#586)
  • ff318f4 fix(store): handle NULL project values in user_prompts
  • e09ebd5 fix(store): handle global scope in normalizeScope (Gentleman-Programming#428)
  • 3da5125 fix(store): prevent duplicate observations on import (Gentleman-Programming#616)
  • 7af10b9 fix(store): repair legacy relation upsert payloads
  • e83d2d0 fix(store): restrict relation backfill to judged rows and resolve project via session
  • 8528506 fix(store): scope default session ID by project (Gentleman-Programming#25)
  • 69a26c8 fix(store): use case-insensitive project filter for legacy mixed-case data (Gentleman-Programming#427)
  • 9225c57 fix(store): use session-fallback project in JudgeRelation enqueue
  • 436c03f fix(sync): accept cloud relation mutations (Gentleman-Programming#379)
  • af7baf4 fix(sync): export pre-existing relations missing from local chunks
  • c350b6c fix(sync): guide repairable cloud failures
  • c9f1a85 fix(sync): harden cloud mutation backfill
  • f4cc070 fix(sync): include memory_relations in local chunk sync
  • 32afbf5 fix(sync): materialize mutation chunks for recovery
  • 71fa9fe fix(sync): propagate session deletes
  • b1f96d4 fix(sync): re-export edited observations by checking UpdatedAt in filterNewData (Gentleman-Programming#447) (Gentleman-Programming#450)
  • 37108d8 fix(sync): read prior chunks via Transport, cover updated-relation export
  • b5f2eb9 fix(sync): recover legacy orphan imports
  • 545d2e1 fix(sync): stabilize imports projects and tui ordering
  • f3c14a8 fix(sync): stabilize imports, project lock, and TUI ordering
  • 4f6b30e fix(sync): start autosync in mcp mode
  • 9200d99 fix(sync): validate autosync accepted seqs (Gentleman-Programming#375)
  • e8f4dc7 fix(test): remove stray duplicate fragment from store_test.go
  • 09fd986 fix(tui): fix escape loop in search flow and add regression tests
  • 7785c74 fix(tui): implement dynamic text-wrapping in observation detail view
  • 8d44a05 fix(tui): refresh data on back-navigation and restore search input focus
  • 8de003e fix(tui): resolve escape loop and stale input in search flow
  • 32cca8b fix(version): resolve version from Go module info for go install builds
  • 3116ba3 fix(version): surface update check failures honestly
  • cc03f27 fix: add home directory fallback to prevent crash on Windows MCP launch
  • 1daf3fc fix: add mem_session_end to deferred tools select list
  • 0ba0984 fix: add truncation hints to mem_search so agents call mem_get_observation
  • 4d539da fix: address PR review feedback on delete session/prompt endpoints
  • aa7b6a9 fix: call sessions end endpoint from session-stop hook
  • a9be294 fix: correct Antigravity config paths (mcp_config.json, not .vscode/mcp.json)
  • 4768a28 fix: filterByProject ignores entity-level Project fields
  • 3687c2f fix: harden CLI and plugin edge cases
  • 5f3329f fix: harden mcp and cloud recovery paths
  • a1015d9 fix: honor ENGRAM_DATA_DIR for cloud.json config file
  • bf10cf7 fix: improve memory recovery after compaction and on first message
  • 286410a fix: inject memory instructions via system prompt + auto-save on compaction
  • e139840 fix: load deferred memory tools at session start in Claude Code
  • 7bdbea7 fix: prevent orphaned databases when home directory is unresolvable
  • 62f8309 fix: propagate RowsAffected error in DeleteSession and DeletePrompt
  • e622257 fix: remove handleSave quality gate, keep ExtractLearnings word filter
  • d780d86 fix: rename module path from alanbuscaglia/engram to Gentleman-Programming/engram
  • 7d25528 fix: replace empty compaction checkpoint with instruction to persist compacted summary
  • 4235fa6 fix: resolve Windows path, Gemini CWD, TUI timezone, and truncation issues
  • b0dd43d fix: translate FK constraint error to ErrSessionHasObservations in DeleteSession
  • fdf84bf fix: use correct schema key "source" instead of "type" in marketplace.json
  • be1abde fix: use errors.As with sqlite.Error for FK constraint detection in DeleteSession
  • 7d050fa fix: use named constant for FK error code and deterministic race test
  • ddf5279 fix: use neutral wording for mem_search truncation hints
  • 66681f4 fix: use relative path string for plugin source in marketplace.json
  • 3230f86 fix: use rune count in truncate() to produce valid UTF-8 (Gentleman-Programming#26)
  • a0ef7eb fix: use withTx/execHook in DeleteSession, execHook in DeletePrompt, add notifyWrite
  • bbd3aa5 merge(task15): route CLI/HTTP through per-project selector (id-cache fix pending)
  • b8df005 merge(task17): route mem_stats/mem_doctor/prompt through MemoryBackend
  • b6b1f6f perf(mcp): defer 4 rare tools to reduce session startup tokens
  • fbdc3a3 perf: use git-subdir for Claude Code plugin marketplace
  • b68ba77 perf: use git-subdir for Claude Code plugin marketplace
  • 9922b2c refactor(docs): deduplicate docs, fix go.mod, restructure DOCS.md as hub
  • ecb6683 refactor(mcp): extract MemoryBackend interface satisfied by store.Store
  • 92898fa refactor(mcp): key MemoryBackend by-id methods on sync_id string; add sqliteBackend adapter
  • a13dad0 refactor(mcp): route mem_* handlers through per-project BackendSelector
  • f152b3d refactor(memorylake): mem_save appends and returns without sync backfill; defer dedup/upsert to mem0
  • a5ba967 refactor(memorylake): pure semantic search, drop fact_fuzzy keyword augmentation
  • 9af9490 refactor(memorylake): use fact-id as sync_id, drop idmap and topic index
  • 3e3ac93 refactor(plugin): widen pi by-id observation tool params to sync_id string
  • ef72ba5 refactor(server,pi): migrate /conflicts/compare to sync_id string args
  • a6ec22c refactor(server,tui,cli): key observation ops by sync_id string
  • abdccdf refactor: remove cloud packages and openspec artifacts from public repo
  • 369e0c3 refactor: remove cloud sync CLI and documentation
  • 2c56b6d refactor: remove session status field — unreliable without heartbeat
  • 8162450 refactor: use claude marketplace for plugin install, remove embedded claude-code files
  • 9cf23f5 refactor: wrap DeletePrompt in withTx and skip notifyWrite on local-only deletes
  • 54a6c52 revert: restore relative source path for Claude Code plugin
  • 6868287 security(server): add optional local auth for destructive HTTP endpoints (Gentleman-Programming#429)
  • 4e91ffb style(memorylake): gofmt client_test.go
  • 08b02f4 style(tui): apply cyber-elephant purple/teal theme
  • 5afaf2d style(tui): update ASCII logo to block style
  • fe4ae2e test(memorylake): cover full-list pagination and EnsureActor dedupe
  • 068a1a6 test(memorylake,mcp): cover candidateOptOut skip and clean up stale docs
  • 21383d7 test(parity): scaffold SQLite vs MemoryLake differential test harness
  • 91beb16 test(parity): update differential harness for thin-adapter semantics
  • 30bb118 test(passive): cover endpoint and handler edge cases
  • 163c0e2 test(server): update passive capture missing session expectation
  • beccc1e test(setup): add corner case tests for stripJSONC and config path (Gentleman-Programming#18)
  • 83495df test(store): add recency regression coverage and ci gate
  • 3d921bb test(store,mcp): add corner case and triangulation tests (Gentleman-Programming#25)
  • 2859f7d test(sync): align session delete e2e expectation
  • 49fbcc7 test(sync): align stale assertions with session-delete propagation