Skip to content

docs: CHANGELOG, README, and CLAUDE.md for hooks release#29

Merged
TonyCasey merged 3 commits intomainfrom
tony/git-59
Feb 14, 2026
Merged

docs: CHANGELOG, README, and CLAUDE.md for hooks release#29
TonyCasey merged 3 commits intomainfrom
tony/git-59

Conversation

@TonyCasey
Copy link
Copy Markdown
Owner

@TonyCasey TonyCasey commented Feb 12, 2026

Summary

  • Created CHANGELOG.md with v0.3.0 entry covering DI container, EventBus, Claude Code hooks, init-hooks command, and .git-mem.json config
  • Rewrote README.md with Quick Start, Claude Code Integration section (setup, hooks table, full config reference), MCP Server section, and architecture diagram
  • Updated CLAUDE.md with hook services/handlers in Application layer, EventBus in Infrastructure, hook entry points, EventBus + hook event flow in bootstrapping, updated test counts (265 unit / 46 integration), and hook-specific technical details

Closes GIT-59

Test plan

  • Verify markdown renders correctly on GitHub
  • Verify no broken links
  • Verify CHANGELOG version matches package.json intent

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Claude Code integration with event-driven hook support for session lifecycle and prompt events, one-command hook init, unified hook entry, per-project hook config, and session capture/context formatting for richer recall.
    • MCP server tooling and sync functionality; new CLI hook/init commands.
  • Bug Fixes

    • MCP server interop fix.
  • Documentation

    • Rebranded to "git-mem"; expanded README with Quick Start, architecture, MCP and Claude Code guides.
  • Chores

    • Release bumped to 0.3.0; updated changelog and docs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings February 12, 2026 22:20
@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Feb 12, 2026

Caution

Review failed

The pull request is closed.

📝 Walkthrough

Walkthrough

Adds an event-driven hook system with a unified git-mem hook <event> entrypoint, DI container wiring, an EventBus with isolated handler execution and 10s timeout, new session-related hook handlers/services, CLI init-hooks support, MCP tooling notes, and updated documentation/changelog for v0.3.0.

Changes

Cohort / File(s) Summary
Changelog
CHANGELOG.md
Added v0.3.0 release notes documenting Claude Code hook integration, DI container wiring, EventBus, new hook services/handlers, per-project .git-mem.json, and CLI hook tooling.
Hook & Architecture docs
CLAUDE.md
Expanded to describe hook event flow, EventBus behavior (pub/sub, handler isolation, 10s timeout), new services (MemoryContextLoader, ContextFormatter, SessionCaptureService), hook CLI usage, and bootstrap wiring.
User guide & quickstart
README.md
Updated branding/quickstart, added Claude Code integration, MCP server section, architecture overview and commands.
CLI entry & init
src/commands/hook.ts, src/commands/init.ts
Added unified hook entrypoint and extended init to support installing/init-hooks and MCP tooling; bootstrapping updated to wire hooks into container cradle.
Application — Handlers & Services
src/application/.../SessionStartHandler.ts, .../SessionStopHandler.ts, .../PromptSubmitHandler.ts, .../MemoryContextLoader.ts, .../ContextFormatter.ts, .../SessionCaptureService.ts
New hook handlers and services for loading/formatting memories, session capture, and per-event processing.
Infrastructure — EventBus & DI
src/infrastructure/EventBus.ts, src/bootstrapping/..., src/container/...
Added EventBus (pub/sub with error isolation), registered handlers and EventBus in container creation (awilix DI).
Tests
test/...
Significantly expanded unit and integration tests to cover hooks, handlers, and integration flows (unit tests increased, new hook-focused integration tests).
Package metadata
package.json
Bumped version to 0.3.0 (no dependency or API signature changes).

Sequence Diagram(s)

mermaid
sequenceDiagram
participant GitHook as Git Hook / System
participant Entrypoint as Hook Entrypoint (stdin)
participant Container as DI Container (awilix)
participant EventBus as EventBus
participant Handler as Hook Handler(s)
participant StdOut as stdout/stderr

GitHook->>Entrypoint: invoke git-mem hook <event>\n(write stdin JSON)
Entrypoint->>Container: loadHookConfig + createContainer
Entrypoint->>EventBus: eventBus.emit(typedEvent)
EventBus->>Handler: dispatch to subscribed handlers
Handler-->>EventBus: return IEventResult[]
EventBus-->>Entrypoint: collect handler results
Entrypoint->>StdOut: write stdout/stderr JSON (respect 10s timeout)

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 3 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Merge Conflict Detection ⚠️ Warning ❌ Merge conflicts detected (43 files):

⚔️ .env.example (content)
⚔️ .gitignore (content)
⚔️ CLAUDE.md (content)
⚔️ README.md (content)
⚔️ docs/getting-started.md (content)
⚔️ docs/mcp-setup.md (content)
⚔️ package.json (content)
⚔️ scripts/reinstall-global.sh (content)
⚔️ src/application/services/MemoryService.ts (content)
⚔️ src/application/services/SessionCaptureService.ts (content)
⚔️ src/cli.ts (content)
⚔️ src/commands/hook.ts (content)
⚔️ src/commands/init-hooks.ts (content)
⚔️ src/commands/init-mcp.ts (content)
⚔️ src/commands/init.ts (content)
⚔️ src/commands/remember.ts (content)
⚔️ src/domain/entities/IMemoryEntity.ts (content)
⚔️ src/domain/entities/ITrailer.ts (content)
⚔️ src/domain/errors/GitMemError.ts (content)
⚔️ src/domain/interfaces/IHookConfig.ts (content)
⚔️ src/domain/interfaces/ILLMClient.ts (content)
⚔️ src/domain/interfaces/ITrailerService.ts (content)
⚔️ src/domain/types/IMemoryQuality.ts (content)
⚔️ src/hooks/utils/config.ts (content)
⚔️ src/index.ts (content)
⚔️ src/infrastructure/di/container.ts (content)
⚔️ src/infrastructure/di/types.ts (content)
⚔️ src/infrastructure/logging/factory.ts (content)
⚔️ src/infrastructure/services/TrailerService.ts (content)
⚔️ src/mcp/README.md (content)
⚔️ src/mcp/server.ts (content)
⚔️ src/mcp/tools/remember.ts (content)
⚔️ tests/integration/hooks/helpers.ts (content)
⚔️ tests/integration/hooks/hook-session-stop.test.ts (content)
⚔️ tests/integration/mcp-e2e.test.ts (content)
⚔️ tests/unit/application/services/MemoryService.test.ts (content)
⚔️ tests/unit/application/services/SessionCaptureService.test.ts (content)
⚔️ tests/unit/commands/hook.test.ts (content)
⚔️ tests/unit/commands/init-hooks.test.ts (content)
⚔️ tests/unit/hooks/utils/config.test.ts (content)
⚔️ tests/unit/infrastructure/di/container.test.ts (content)
⚔️ tests/unit/infrastructure/logging/factory.test.ts (content)
⚔️ tests/unit/infrastructure/services/TrailerService.test.ts (content)

These conflicts must be resolved before merging into main.
Resolve conflicts locally and push changes to this branch.
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: documentation updates for the hooks release across CHANGELOG.md, README.md, and CLAUDE.md, matching the file modifications.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch tony/git-59

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🤖 Fix all issues with AI agents
In `@CHANGELOG.md`:
- Around line 8-38: The package.json version field is out of sync with
CHANGELOG.md; update the "version" property in package.json from "0.2.1" to
"0.3.0" (edit the version key in package.json), then regenerate/update any
lockfiles (package-lock.json / yarn.lock / pnpm-lock.yaml) or build artifacts
that embed the version so everything stays consistent.

In `@README.md`:
- Around line 137-175: The ASCII architecture diagram code block in README.md
lacks a language identifier; update the triple-backtick fence that opens the
diagram to include a language identifier (e.g., change ``` to ```text) so
markdown linting rules accept it and the block remains rendered as plain text;
locate the block containing the box diagram (the ASCII art starting with the top
border "┌─────────────────────────────────────────────┐") and modify its opening
fence accordingly.
- Around line 58-70: The fenced code block in README.md lacks a language
identifier which fails markdown linting; update the opening triple-backtick to
include a language (e.g., change ``` to ```text) for the block that shows the
workflow diagram (the three-step Claude Code session / git-mem hook sequence) so
the linter recognizes it as a text block.
- Line 155: The README's architecture diagram incorrectly places "EventBus +
Handlers" in the Application layer; split responsibilities to match CLAUDE.md
and clean architecture: move the EventBus implementation to the Infrastructure
layer, keep the IEventBus interface in the Domain layer, and place Event
handlers in the Application layer; update the diagram text/labels to reflect
"IEventBus (Domain) / EventBus (Infrastructure) / Handlers (Application)" and
ensure references to EventBus, IEventBus, and handlers in documentation (e.g.,
CLAUDE.md) are consistent.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Documentation-focused release prep for git-mem’s Claude Code hooks + DI/EventBus architecture, aiming to provide a consolidated README quick start, an internal architecture guide for Claude, and a formal changelog for upcoming releases.

Changes:

  • Added a new CHANGELOG.md with release entries (including a v0.3.0 section).
  • Rewrote README.md with Quick Start, Claude Code hooks integration docs, config reference, MCP server notes, and an architecture diagram.
  • Updated CLAUDE.md with current architecture/bootstrapping details, hook flow notes, and updated testing section.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 9 comments.

File Description
README.md New user-facing usage/docs for CLI, Claude hooks, and MCP setup/config
CLAUDE.md Updated internal “how the repo works” guidance for Claude Code
CHANGELOG.md Introduces a changelog with recent version entries and a v0.3.0 release section

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +16 to +22
- **`git-mem init-hooks`** command — one-command setup for Claude Code hooks:
- Creates `.claude/settings.json` with hook registrations
- Creates `.git-mem.json` with default configuration
- Safe merge preserves other tools' hooks in `settings.json`
- `--remove` flag cleanly uninstalls git-mem hooks only
- `--scope user` for `~/.claude/settings.json` (user-wide)
- **Unified `git-mem hook <event>` command** — single entry point for all hook events, reads JSON from stdin, routes to handlers via EventBus
Copy link

Copilot AI Feb 12, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This entry describes a user-facing git-mem init-hooks command, but the current CLI only registers git-mem init (and uses init-hooks internally). If init-hooks is not meant to be a public command anymore, the changelog should reflect the actual UX (e.g., “git-mem init sets up Claude hooks …”).

Copilot uses AI. Check for mistakes.
### Recall memories

```bash
git-mem recall --query "authentication"
Copy link

Copilot AI Feb 12, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Quick Start recall example uses git-mem recall --query "...", but the CLI takes the search string as an optional positional argument (git-mem recall [query]) and does not define a --query flag. Update the example to pass the query as the argument (or add a --query option in the CLI if that’s the intended UX).

Suggested change
git-mem recall --query "authentication"
git-mem recall "authentication"

Copilot uses AI. Check for mistakes.
README.md Outdated
Comment on lines +119 to +123
```bash
git-mem init-hooks --remove
```

This removes git-mem entries from `.claude/settings.json` (preserving other tools' hooks) and deletes `.git-mem.json`.
Copy link

Copilot AI Feb 12, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

git-mem init-hooks --remove is documented as the uninstall path, but init-hooks is not currently a CLI command (only init is). Either document the actual removal workflow supported by the current CLI, or reintroduce a user-facing remove option/command.

Suggested change
```bash
git-mem init-hooks --remove
```
This removes git-mem entries from `.claude/settings.json` (preserving other tools' hooks) and deletes `.git-mem.json`.
To remove git-mem's Claude Code integration, manually:
1. Open `.claude/settings.json` and remove any hooks whose `command` starts with `git-mem hook` (this preserves other tools' hooks).
2. Delete `.git-mem.json` from your repository.

Copilot uses AI. Check for mistakes.
CLAUDE.md Outdated

**Entry points:**
- `src/cli.ts` — Commander.js CLI with 6 commands (remember, recall, context, liberate, sync, init-mcp)
- `src/cli.ts` — Commander.js CLI with 8 commands (remember, recall, context, liberate, sync, init-mcp, hook, init-hooks)
Copy link

Copilot AI Feb 12, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line claims the CLI has 8 commands including init-mcp and init-hooks, but src/cli.ts currently registers init, remember, recall, liberate, context, sync, and hook (no init-mcp/init-hooks). Update the command list to match the actual CLI surface, and consider mentioning that init replaces the older separate init commands.

Suggested change
- `src/cli.ts` — Commander.js CLI with 8 commands (remember, recall, context, liberate, sync, init-mcp, hook, init-hooks)
- `src/cli.ts` — Commander.js CLI with 7 commands (init, remember, recall, liberate, context, sync, hook); `init` replaces the older `init-mcp` and `init-hooks` commands

Copilot uses AI. Check for mistakes.
README.md Outdated
### Setup

```bash
git-mem init-hooks --yes
Copy link

Copilot AI Feb 12, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

git-mem init-hooks is referenced here, but the current CLI only exposes git-mem init (see src/cli.ts), and init-hooks is not registered as a command. Either update the docs to use git-mem init for hook setup, or re-expose init-hooks in the CLI if it’s meant to be user-facing.

Suggested change
git-mem init-hooks --yes
git-mem init --yes

Copilot uses AI. Check for mistakes.
Comment on lines +109 to +115
| `sessionStart.enabled` | `true` | Load memories on session start |
| `sessionStart.memoryLimit` | `20` | Max memories to load |
| `sessionStop.enabled` | `true` | Capture memories on session end |
| `sessionStop.autoLiberate` | `true` | Auto-scan commits for memories |
| `sessionStop.threshold` | `3` | Minimum commit triage score |
| `promptSubmit.enabled` | `false` | Surface context per prompt |
| `promptSubmit.surfaceContext` | `true` | Include memories in prompt context |
Copy link

Copilot AI Feb 12, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The config table keys are inconsistent with the JSON structure shown above. Options like sessionStart.enabled / sessionStop.threshold are nested under hooks in .git-mem.json, so the documented paths should be hooks.sessionStart.enabled, hooks.sessionStop.threshold, etc. (Also promptSubmit.recordPrompts exists in the JSON but isn’t listed in the table.)

Suggested change
| `sessionStart.enabled` | `true` | Load memories on session start |
| `sessionStart.memoryLimit` | `20` | Max memories to load |
| `sessionStop.enabled` | `true` | Capture memories on session end |
| `sessionStop.autoLiberate` | `true` | Auto-scan commits for memories |
| `sessionStop.threshold` | `3` | Minimum commit triage score |
| `promptSubmit.enabled` | `false` | Surface context per prompt |
| `promptSubmit.surfaceContext` | `true` | Include memories in prompt context |
| `hooks.sessionStart.enabled` | `true` | Load memories on session start |
| `hooks.sessionStart.memoryLimit` | `20` | Max memories to load |
| `hooks.sessionStop.enabled` | `true` | Capture memories on session end |
| `hooks.sessionStop.autoLiberate` | `true` | Auto-scan commits for memories |
| `hooks.sessionStop.threshold` | `3` | Minimum commit triage score |
| `hooks.promptSubmit.enabled` | `false` | Surface context per prompt |
| `hooks.promptSubmit.recordPrompts` | `false` | Record user prompts as memories |
| `hooks.promptSubmit.surfaceContext` | `true` | Include memories in prompt context |

Copilot uses AI. Check for mistakes.
Comment on lines +129 to +131
```bash
git-mem init-mcp
```
Copy link

Copilot AI Feb 12, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

git-mem init-mcp is referenced here, but the CLI does not currently expose an init-mcp command (only init is registered in src/cli.ts). Update the docs to reflect how MCP configuration is actually generated (e.g., via git-mem init, or re-add init-mcp as a CLI command).

Copilot uses AI. Check for mistakes.
Uses `InjectionMode.CLASSIC` (matches constructor parameter names to registration names). `ICradle` in `types.ts` defines the typed container shape with all interface references.
Uses `InjectionMode.CLASSIC` (matches constructor parameter names to registration names). `ICradle` in `types.ts` defines the typed container shape with all interface references. The container also registers the `EventBus` with three hook handlers (`session:start`, `session:stop`, `prompt:submit`) wired during creation.

**Hook event flow:** `git-mem hook <event>` → `readStdin()` → `loadHookConfig()` → `createContainer()` → `eventBus.emit(typedEvent)` → handlers return `IEventResult[]` → output to stdout (context), summary to stderr. Hooks have a 10s hard timeout and never throw — failures are caught and reported silently.
Copy link

Copilot AI Feb 12, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hook failures are not “reported silently”: hookCommand writes summaries and errors to stderr (e.g., git-mem: hook failed.) even though it exits 0. Consider rewording this to reflect that hooks don’t disrupt Claude Code (exit 0 / don’t throw past the entry point), but do emit stderr diagnostics.

Suggested change
**Hook event flow:** `git-mem hook <event>``readStdin()``loadHookConfig()``createContainer()``eventBus.emit(typedEvent)` → handlers return `IEventResult[]` → output to stdout (context), summary to stderr. Hooks have a 10s hard timeout and never throw — failures are caught and reported silently.
**Hook event flow:** `git-mem hook <event>``readStdin()``loadHookConfig()``createContainer()``eventBus.emit(typedEvent)` → handlers return `IEventResult[]` → output to stdout (context), summary to stderr. Hooks have a 10s hard timeout and never throw past the entry point — failures are caught so they don't disrupt Claude Code (exit 0), but summaries and errors are reported via stderr (for example, `git-mem: hook failed.`).

Copilot uses AI. Check for mistakes.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.3.0] - 2026-02-12
Copy link

Copilot AI Feb 12, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The changelog introduces a 0.3.0 release entry, but package.json is currently version 0.2.1. Either bump the package version as part of this release documentation, or adjust the changelog entry/versioning so the repository stays consistent.

Suggested change
## [0.3.0] - 2026-02-12
## [Unreleased]

Copilot uses AI. Check for mistakes.
- Bump package.json version to 0.3.0 to match CHANGELOG
- Add 'text' language identifier to workflow diagram code block
- Add 'text' language identifier to architecture diagram code block
- Fix architecture diagram: move Handlers to Application layer, keep
  EventBus implementation in Infrastructure layer

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
AI-Agent: Claude-Code/2.1.42
AI-Model: claude-opus-4-5-20251101
@TonyCasey
Copy link
Copy Markdown
Owner Author

Addressed review feedback:

  • ✅ Bumped package.json version to 0.3.0 to match CHANGELOG
  • ✅ Added text language identifier to workflow diagram code block (line 58)
  • ✅ Added text language identifier to architecture diagram code block (line 137)
  • ✅ Fixed architecture diagram: moved Handlers to Application layer, EventBus implementation stays in Infrastructure layer (matching clean architecture and CLAUDE.md)

- Combined new intro from main with detailed hook docs from branch
- Updated liberate → extract throughout
- Updated init-hooks/init-mcp → unified init command
- Kept architecture diagram with text language identifier

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
AI-Agent: Claude-Code/2.1.42
AI-Model: claude-opus-4-5-20251101
Copilot AI review requested due to automatic review settings February 14, 2026 09:42
@TonyCasey TonyCasey merged commit 5d5112b into main Feb 14, 2026
6 of 7 checks passed
@TonyCasey TonyCasey deleted the tony/git-59 branch February 14, 2026 09:43
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated 7 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

- `session-start` — loads stored memories into Claude's context at session start
- `session-stop` — captures new memories from commits made during the session
- `prompt-submit` — surfaces relevant memories per prompt (disabled by default)
- **`git-mem init-hooks`** command — one-command setup for Claude Code hooks:
Copy link

Copilot AI Feb 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The command name should be git-mem init not git-mem init-hooks. The CLI only exposes the unified init command that handles both hooks and MCP configuration. The init-hooks.ts file exists as a utility module but is not exposed as a separate command.

Suggested change
- **`git-mem init-hooks`** command — one-command setup for Claude Code hooks:
- **`git-mem init`** command — one-command setup for Claude Code hooks:

Copilot uses AI. Check for mistakes.
**Infrastructure** (`src/infrastructure/`) — Implements domain interfaces. `GitClient` wraps git CLI. `NotesService` reads/writes `refs/notes/mem`. `TrailerService` queries commit trailers. `MemoryRepository` persists `IMemoryEntity[]` as JSON in git notes. `HeuristicPatterns` provides regex-based extraction rules. `EventBus` provides pub/sub event dispatch with error isolation (failing handlers don't crash the hook).

**Entry points:**
- `src/cli.ts` — Commander.js CLI with 6 commands (remember, recall, context, extract, sync, init)
Copy link

Copilot AI Feb 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The CLI has 8 commands, not 6. The commands are: init, remember, recall, context, extract, sync, trailers, and hook. The description is missing trailers and hook from the count and list.

Suggested change
- `src/cli.ts` — Commander.js CLI with 6 commands (remember, recall, context, extract, sync, init)
- `src/cli.ts` — Commander.js CLI with 8 commands (init, remember, recall, context, extract, sync, trailers, hook)

Copilot uses AI. Check for mistakes.

### Added

- MCP server (`git-mem-mcp`) with 4 tools: remember, recall, context, liberate
Copy link

Copilot AI Feb 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The tool name should be extract not liberate. The MCP server registers four tools: remember, recall, context, and extract (as seen in src/mcp/server.ts lines 19-22). There is no liberate tool in the current implementation.

Suggested change
- MCP server (`git-mem-mcp`) with 4 tools: remember, recall, context, liberate
- MCP server (`git-mem-mcp`) with 4 tools: remember, recall, context, extract

Copilot uses AI. Check for mistakes.
- `git-mem remember` — store memories as git notes
- `git-mem recall` — search and retrieve memories
- `git-mem context` — match staged changes against stored memories
- `git-mem liberate` — scan git history, score commits, extract memories
Copy link

Copilot AI Feb 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The command name should be extract not liberate. Looking at src/cli.ts, the commands are: init, remember, recall, extract, context, sync, trailers, and hook. There is no liberate command in the CLI.

Copilot uses AI. Check for mistakes.
@@ -14,7 +14,7 @@ Each commit is updated with background AI metadata, which Claude can use to impr

Every **new** commit is automatically populated with the folowing metadata..
Copy link

Copilot AI Feb 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Spelling error: 'folowing' should be 'following'

Suggested change
Every **new** commit is automatically populated with the folowing metadata..
Every **new** commit is automatically populated with the following metadata..

Copilot uses AI. Check for mistakes.
- **Hook services:**
- `MemoryContextLoader` — loads memories with configurable limits
- `ContextFormatter` — formats memories as structured markdown
- `SessionCaptureService` — scans recent commits via `LiberateService`, extracts memories
Copy link

Copilot AI Feb 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should reference ExtractService not LiberateService. The SessionCaptureService delegates to ExtractService (see src/application/services/SessionCaptureService.ts line 28 which injects IExtractService, and line 41 which calls extractService.extract()). There is no LiberateService in the current codebase.

Suggested change
- `SessionCaptureService` — scans recent commits via `LiberateService`, extracts memories
- `SessionCaptureService` — scans recent commits via `ExtractService`, extracts memories

Copilot uses AI. Check for mistakes.
### Added

- MCP server (`git-mem-mcp`) with 4 tools: remember, recall, context, liberate
- `git-mem init-mcp` command for MCP server configuration
Copy link

Copilot AI Feb 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The command name should be git-mem init not git-mem init-mcp. The CLI only exposes a unified init command that handles both hooks and MCP configuration. There is no separate init-mcp command (the init-mcp.ts file exists as a utility module but is not exposed as a separate command).

Suggested change
- `git-mem init-mcp` command for MCP server configuration
- `git-mem init` command for MCP server configuration

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants