From 0d47a6d2b377e186a30e58c711292ad9da362889 Mon Sep 17 00:00:00 2001
From: Claude
Date: Tue, 8 Sep 2026 03:15:16 +0000
Subject: [PATCH 1/3] fix(mcp): resolve the plugin bundle against the plugin
root
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
`.mcp.json` named `./dist/commitlore.mjs` and set `"cwd": "."`, and both of
those resolve against the *session's* working directory rather than the
plugin's install directory. The plugin MCP server therefore died at launch
with MODULE_NOT_FOUND in every session whose cwd was not a built commitlore
checkout. Capture is MCP-only, so those sessions committed no records, and the
only visible symptom was one line about a cached connection failure. The one
cwd where the defect cannot appear is this repository, which is where every
existing check ran.
The entry point is now `${CLAUDE_PLUGIN_ROOT:-.}/dist/commitlore.mjs` and there
is no `cwd` — the form ADR-0026 and the F14 ticket already documented. The
default is what keeps this repository's own registration working when a host
loads it as an ordinary project file, where nothing sets that variable.
Readers of a registration now expand `${VAR}` and `${VAR:-default}` the way a
host expands them before it spawns. Without that, doctor's unattended-initiator
probe launched the literal `${...}` as a path and reported a working
registration unhealthy — a report that sends an operator to repair the one
thing that is not broken. An unset placeholder with no default is left as
written: a host refuses that registration outright, and expanding it to nothing
would turn the refusal into a plausible-looking path whose failure names a file
nobody wrote.
The manifest checks now launch from a directory that is not a checkout, and one
of them drives the server to an MCP initialize — the launch the old
configuration could not complete and the old check never attempted.
Closes #870
Claude-Session: https://claude.ai/code/session_01USc9G3aJ1s8pnhWy5K5hLr
Co-Authored-By: Claude Opus 5
---
.mcp.json | 5 ++-
docs/COMPATIBILITY.md | 4 +--
src/core/mcp-registration.ts | 38 ++++++++++++++++++--
test/codex-plugin.test.ts | 8 +++--
test/doctor.test.ts | 39 +++++++++++++++++++++
test/manifest.test.ts | 67 ++++++++++++++++++++++++++++++++----
6 files changed, 144 insertions(+), 17 deletions(-)
diff --git a/.mcp.json b/.mcp.json
index e759f6cb..75ffbcae 100644
--- a/.mcp.json
+++ b/.mcp.json
@@ -3,10 +3,9 @@
"commitlore": {
"command": "node",
"args": [
- "./dist/commitlore.mjs",
+ "${CLAUDE_PLUGIN_ROOT:-.}/dist/commitlore.mjs",
"mcp"
- ],
- "cwd": "."
+ ]
}
}
}
diff --git a/docs/COMPATIBILITY.md b/docs/COMPATIBILITY.md
index eda083e0..786475f0 100644
--- a/docs/COMPATIBILITY.md
+++ b/docs/COMPATIBILITY.md
@@ -200,7 +200,7 @@ skill and MCP server.
| Capability | Provided by | Value |
|---|---|---|
-| MCP server | `.mcp.json` | `node ./dist/commitlore.mjs mcp` with plugin-root `cwd` |
+| MCP server | `.mcp.json` | `node ${CLAUDE_PLUGIN_ROOT:-.}/dist/commitlore.mjs mcp` |
| capture skill | `skills/commitlore-codex/SKILL.md` | transcript-backed capture; claims lacking support are dropped, never cited by invention |
| plugin identity | `.codex-plugin/plugin.json` | `commitlore` at the `package.json` version |
@@ -211,7 +211,7 @@ named in the middle column rather than one it assumed.
| Capability | Provided by | Value |
|---|---|---|
-| MCP server | `.mcp.json` | `node ./dist/commitlore.mjs mcp` |
+| MCP server | `.mcp.json` | `node ${CLAUDE_PLUGIN_ROOT:-.}/dist/commitlore.mjs mcp` |
| pre-edit context hook | `hooks/hooks.json` | `PreToolUse` on `Read\|Edit\|Write\|MultiEdit\|NotebookEdit` |
| skills | `skills/` | `commitlore-commits`, `commitlore-codex`, `commitlore-query`, `commitlore-setup` |
| plugin identity | `.claude-plugin/plugin.json` | `commitlore` at the `package.json` version |
diff --git a/src/core/mcp-registration.ts b/src/core/mcp-registration.ts
index 40210d58..0b5e40f1 100644
--- a/src/core/mcp-registration.ts
+++ b/src/core/mcp-registration.ts
@@ -61,6 +61,34 @@ const messageOf = (error: unknown): string => (error instanceof Error ? error.me
const isLaunchableEntry = (value: unknown): boolean =>
isJsonObject(value) && typeof value['command'] === 'string' && value['command'].trim() !== '';
+/**
+ * `${VAR}` and `${VAR:-default}`, expanded the way a host expands them before
+ * it launches the server.
+ *
+ * A registration is a launch instruction for a host, and the hosts that read
+ * this file substitute environment placeholders in `command` and `args` first —
+ * which is what lets one committed file name a path that only the host knows,
+ * `${CLAUDE_PLUGIN_ROOT}` being the one this repository's own registration uses
+ * (#870). Every reader here answers questions about that launch: what command a
+ * host will run, whether it is ours, and — in doctor's unattended-initiator
+ * check — whether it actually answers an MCP initialize. Reading the raw text
+ * answered those questions about a command no host ever runs, and the probe
+ * spawned the literal `${...}` as a path.
+ *
+ * An unset placeholder with no default is left as written rather than expanded
+ * to nothing. A host refuses that registration outright, and `""/dist/x.mjs`
+ * would turn the refusal into a plausible-looking path whose failure names a
+ * file nobody wrote.
+ */
+const expandHostPlaceholders = (value: string): string =>
+ value.replace(/\$\{([A-Za-z_][A-Za-z0-9_]*)(?::-([^}]*))?\}/g, (whole, name: string, fallback: string | undefined) => {
+ const set = process.env[name];
+ // `:-` is shell semantics, which the syntax is borrowed from: an empty
+ // value takes the default, because an empty path is not a path.
+ if (set !== undefined && set !== '') return set;
+ return fallback ?? whole;
+ });
+
/**
* The command a registration under our key names, or null when there is none a
* host could launch.
@@ -74,7 +102,10 @@ export const registeredMcpCommand = (cwd: string): string | null => {
return launch?.command ?? null;
};
-/** The complete launch command a host will use, when its argv is parseable. */
+/**
+ * The complete launch command a host will use, when its argv is parseable, with
+ * `${VAR}` placeholders expanded as the host would expand them.
+ */
export const registeredMcpLaunch = (cwd: string): { command: string; args: string[] } | null => {
const path = mcpRegistrationPath(cwd);
if (path === null) return null;
@@ -91,7 +122,10 @@ export const registeredMcpLaunch = (cwd: string): { command: string; args: strin
if (!isLaunchableEntry(entry)) return null;
const args = (entry as JsonObject)['args'];
if (args !== undefined && (!Array.isArray(args) || !args.every((arg) => typeof arg === 'string'))) return null;
- return { command: String((entry as JsonObject)['command']), args: (args ?? []) as string[] };
+ return {
+ command: expandHostPlaceholders(String((entry as JsonObject)['command'])),
+ args: ((args ?? []) as string[]).map(expandHostPlaceholders),
+ };
};
/**
diff --git a/test/codex-plugin.test.ts b/test/codex-plugin.test.ts
index d585499d..77fa7592 100644
--- a/test/codex-plugin.test.ts
+++ b/test/codex-plugin.test.ts
@@ -253,7 +253,7 @@ describe('Codex plugin package', () => {
mcpServers: string;
};
const mcp = JSON.parse(readFileSync(join(ROOT, '.mcp.json'), 'utf8')) as {
- mcpServers: { commitlore: { command: string; args: string[]; cwd: string } };
+ mcpServers: { commitlore: { command: string; args: string[] } };
};
expect(manifest).toMatchObject({
@@ -262,10 +262,12 @@ describe('Codex plugin package', () => {
skills: './skills/',
mcpServers: './.mcp.json',
});
+ // #870: the entry point is bound to the plugin root. A relative path, or a
+ // `cwd`, resolves against whatever directory the session was started in —
+ // so the server died at launch everywhere but a built checkout.
expect(mcp.mcpServers.commitlore).toEqual({
command: 'node',
- args: ['./dist/commitlore.mjs', 'mcp'],
- cwd: '.',
+ args: ['${CLAUDE_PLUGIN_ROOT:-.}/dist/commitlore.mjs', 'mcp'],
});
});
diff --git a/test/doctor.test.ts b/test/doctor.test.ts
index 4ef0630a..ad80e0e2 100644
--- a/test/doctor.test.ts
+++ b/test/doctor.test.ts
@@ -1376,6 +1376,45 @@ describe('#527 unattended capture initiator', () => {
});
}
+ /**
+ * #870: this repository's own registration names its entry point as
+ * `${CLAUDE_PLUGIN_ROOT:-.}/dist/commitlore.mjs`, because the hosts that read
+ * `.mcp.json` expand placeholders before they spawn anything. The reader
+ * returned the raw text, so the probe launched a literal `${...}` as a path
+ * and reported a working registration unhealthy — a report that sends an
+ * operator to repair the one thing that is not broken.
+ */
+ it('probes the launch a host would run, with ${VAR} placeholders expanded', () => {
+ const repo = initRepo('unattended-placeholder');
+ enableUnattended(repo);
+ const command = mcpWrapper(repo, 'commitlore');
+ // A default rather than a set variable: the expansion is what is under
+ // test, and a test that exports the answer first proves less.
+ registerMcp(repo, `\${COMMITLORE_TEST_UNSET:-${command}}`);
+
+ const check = runDoctor({ cwd: repo }).checks.find((entry) => entry.id === 'unattended-initiator');
+
+ expect(check?.status).toBe('ok');
+ expect(check?.evidence?.['initiator']).toBe('capture-tools-advertised');
+ });
+
+ /**
+ * The other half of the same rule. An unset placeholder with no default is
+ * left as written, because a host refuses that registration outright and
+ * expanding it to nothing would turn the refusal into a plausible-looking
+ * path whose failure names a file nobody wrote.
+ */
+ it('leaves an unset placeholder with no default as written', () => {
+ const repo = initRepo('unattended-placeholder-unset');
+ enableUnattended(repo);
+ registerMcp(repo, '${COMMITLORE_TEST_UNSET}/dist/commitlore.mjs');
+
+ const check = runDoctor({ cwd: repo }).checks.find((entry) => entry.id === 'unattended-initiator');
+
+ expect(check?.status).toBe('warn');
+ expect(check?.detail).toContain('${COMMITLORE_TEST_UNSET}');
+ });
+
it.each([
['a dead command', (repo: string) => join(repo, 'missing'), 'command-not-found'],
['a command that is a directory', (repo: string) => repo, 'command-is-directory'],
diff --git a/test/manifest.test.ts b/test/manifest.test.ts
index 2b2b4ee0..c77fd8a5 100644
--- a/test/manifest.test.ts
+++ b/test/manifest.test.ts
@@ -50,6 +50,7 @@ import { afterAll, beforeAll, describe, expect, it } from 'vitest';
import { execGit } from '../src/core/git.js';
import { createTestRepo } from './git-fixtures.js';
+import { startStub } from './mcp-client.js';
const REPO_ROOT = fileURLToPath(new URL('..', import.meta.url));
@@ -171,20 +172,72 @@ describe('plugin manifest: entry points are runnable from a clean clone', () =>
expect(run.stdout.trim()).toBe(manifest.version);
});
- it('the Codex MCP declaration resolves the plugin-local bundle', () => {
- const manifest = readJson(clonePath('.codex-plugin/plugin.json')) as PluginManifest;
+ /**
+ * #870: the declaration named `./dist/commitlore.mjs` and set `"cwd": "."`,
+ * and both of those resolve against the *session's* working directory, never
+ * the plugin's. So the plugin's MCP server died at launch with
+ * `MODULE_NOT_FOUND` in every session whose cwd was not a built commitlore
+ * checkout — which is every real use, and the one cwd where the defect cannot
+ * appear is this repository, where the old check ran.
+ *
+ * Everything below therefore launches from a directory that is not a
+ * checkout, with the placeholder expanded the way a host expands it before
+ * spawning. Reverting `.mcp.json` fails these and passes the old one.
+ */
+ const pluginLaunch = (): { entry: string; args: string[] } => {
const mcp = readJson(clonePath('.mcp.json')) as {
- mcpServers: { commitlore: { command: string; args: string[]; cwd: string } };
+ mcpServers: { commitlore: { command: string; args: string[]; cwd?: string } };
};
const server = mcp.mcpServers.commitlore;
- const run = spawnSync(server.command, [server.args[0]!, '--version'], {
- cwd: clonePath(server.cwd),
+ expect(
+ server.cwd,
+ 'a "cwd" here is resolved against the session, not the plugin (#870)',
+ ).toBeUndefined();
+ expect(
+ server.args[0],
+ 'the entry point must be bound to the plugin root, not the session cwd (#870)',
+ ).toContain('${CLAUDE_PLUGIN_ROOT');
+ const expand = (arg: string): string =>
+ arg.replace(/\$\{CLAUDE_PLUGIN_ROOT(?::-[^}]*)?\}/g, cloneDir);
+ return { entry: expand(server.args[0]!), args: server.args.slice(1).map(expand) };
+ };
+
+ it('the MCP declaration resolves the bundle against the plugin root, not the session cwd', () => {
+ const manifest = readJson(clonePath('.claude-plugin/plugin.json')) as PluginManifest;
+ const codex = readJson(clonePath('.codex-plugin/plugin.json')) as PluginManifest;
+ const { entry } = pluginLaunch();
+ const run = spawnSync(process.execPath, [entry, '--version'], {
+ // Deliberately not the clone: this is the cwd a real session has.
+ cwd: tempDir('foreign-cwd'),
encoding: 'utf8',
});
- expect(run.status).toBe(0);
+ expect(run.status, run.stderr).toBe(0);
expect(run.stdout.trim()).toBe(manifest.version);
- expect(manifest.mcpServers).toBe('./.mcp.json');
+ expect(codex.mcpServers).toBe('./.mcp.json');
+ });
+
+ it('that launch reaches an MCP initialize from a cwd that is not a checkout', async () => {
+ // `--version` proves the module resolves; this proves the server the host
+ // actually asked for comes up and answers. The old configuration exited
+ // before a byte was exchanged, and the only visible symptom was one line
+ // about a cached connection failure.
+ const { entry, args } = pluginLaunch();
+ const stub = startStub(tempDir('foreign-session'), entry, args);
+ try {
+ const initialized = await stub.request('initialize', {
+ protocolVersion: '2024-11-05',
+ capabilities: {},
+ clientInfo: { name: 'manifest', version: '1' },
+ });
+ expect(
+ initialized.error,
+ `initialize failed: ${JSON.stringify(initialized.error)}; stderr: ${stub.stderr()}`,
+ ).toBeUndefined();
+ expect(initialized.result?.['serverInfo']).toMatchObject({ name: 'commitlore' });
+ } finally {
+ await stub.close();
+ }
});
it('scripts/commitlore-run.sh resolves the plugin entry point via CLAUDE_PLUGIN_ROOT', () => {
From 6647cf024a47a9b3c7f49955e93b4692eeb46317 Mon Sep 17 00:00:00 2001
From: Claude
Date: Tue, 8 Sep 2026 03:16:49 +0000
Subject: [PATCH 2/3] release: 1.2.2
Version fields, install pins and the changelog entry for 1.2.2.
The release carries one fix: the plugin's MCP server resolved its entry point
against the session's working directory, so it died at launch with
MODULE_NOT_FOUND in every session that was not a built commitlore checkout
(#870). Capture is MCP-only, so those sessions recorded nothing.
The install pins move; the field-report paragraph in each README keeps saying
v1.2.1, because that is the version the run it describes was made on and a
measurement does not follow the version number.
`dist/` is deliberately not in this branch. `canonical-merge.yml` rebuilds the
bundle from the merged tree and refuses a pull request that touches it, so the
committed bundle matches the source it lands with.
Claude-Session: https://claude.ai/code/session_01USc9G3aJ1s8pnhWy5K5hLr
Co-Authored-By: Claude Opus 5
---
.claude-plugin/plugin.json | 2 +-
.codex-plugin/plugin.json | 2 +-
CHANGELOG.md | 50 ++++++++++++++++++++++++++++++++++++++
README.ja.md | 12 ++++-----
README.ko.md | 12 ++++-----
README.md | 12 ++++-----
README.zh-CN.md | 12 ++++-----
install.ps1 | 4 +--
install.sh | 4 +--
package-lock.json | 4 +--
package.json | 2 +-
server.json | 6 ++---
12 files changed, 86 insertions(+), 36 deletions(-)
diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json
index 58c9000f..1a1701b0 100644
--- a/.claude-plugin/plugin.json
+++ b/.claude-plugin/plugin.json
@@ -1,7 +1,7 @@
{
"name": "commitlore",
"displayName": "CommitLore",
- "version": "1.2.1",
+ "version": "1.2.2",
"description": "Recorded decisions from git history, delivered to the agent before it edits. Constraints, alternatives already ruled out, and warnings left by whoever was here last.",
"author": {
"name": "MongLong0214",
diff --git a/.codex-plugin/plugin.json b/.codex-plugin/plugin.json
index 7470e9e7..1a79f028 100644
--- a/.codex-plugin/plugin.json
+++ b/.codex-plugin/plugin.json
@@ -1,6 +1,6 @@
{
"name": "commitlore",
- "version": "1.2.1",
+ "version": "1.2.2",
"description": "Decision memory from Git history, with verified capture for coding sessions.",
"author": {
"name": "MongLong0214",
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9a816821..51d244d1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,56 @@ Release notes for 1.0.0, 1.0.1 and 1.0.2 are on the
[GitHub releases page](https://github.com/MongLong0214/commitlore/releases); they
were not written here.
+## 1.2.2
+
+One line of configuration, and the plugin's MCP server had never started for
+anybody.
+
+**The plugin's MCP server died at launch everywhere but a commitlore checkout
+(#870).** `.mcp.json` named the entry point as `./dist/commitlore.mjs` and set
+`"cwd": "."`, and both of those resolve against the *session's* working
+directory rather than the plugin's install directory. So node was asked for
+`/dist/commitlore.mjs`, which does not exist, and the server exited
+in under 60ms with `MODULE_NOT_FOUND`. Capture is MCP-only, so a session with
+the plugin installed made commits carrying no records at all, and the only
+visible symptom was one line saying a connection failure had been cached. It was
+identical in the `0.8.0` and `1.2.0` plugin caches, so no release ever shipped a
+working one. The entry point is now
+`${CLAUDE_PLUGIN_ROOT:-.}/dist/commitlore.mjs` with no `cwd` — the form
+[ADR-0026](docs/adr/ADR-0026-node-only-distribution.md) and the F14 ticket had
+both documented while the file said otherwise.
+
+**The defect was invisible to every check because they all ran in the one place
+it cannot appear.** A checkout is the one cwd where a session-relative path is
+also the plugin's path, and that is where the suite, the release gate and the
+maintainers all work. The manifest checks now launch from a directory that is
+not a checkout, and one of them drives the server to an MCP `initialize` rather
+than stopping at "something resolved" — the same distinction #483 forced on the
+plugin entry point two releases ago.
+
+**A registration is read the way a host reads it.** `.mcp.json` is a launch
+instruction for a host, and hosts expand `${VAR}` and `${VAR:-default}` before
+they spawn anything; the readers here returned the raw text. Doctor's
+unattended-initiator probe therefore launched a literal `${...}` as a path and
+would have called this repository's own registration unhealthy — sending an
+operator to repair the one thing that is not broken. An unset placeholder with
+no default is left as written on purpose: a host refuses that registration
+outright, and expanding it to nothing would turn the refusal into a
+plausible-looking path whose failure names a file nobody wrote.
+
+**The default is what keeps this repository working on itself.** `:-.` is not
+decoration. This repository's `.mcp.json` is also an ordinary project file here,
+loaded by a host that sets no plugin root, and without the fallback the
+dogfooding install would break in exchange for fixing the plugin.
+
+**Not verified.** Codex reads the same `.mcp.json`, declared by
+`.codex-plugin/plugin.json`, and whether Codex performs the same placeholder
+expansion was not measured — no Codex install was available to this change. What
+is measured is that the Claude Code plugin path now launches from a foreign cwd
+and answers `initialize`. If Codex does not expand, its launch is no worse than
+the relative path it had before, and that is a claim about the shape of the
+change, not a test result.
+
## 1.2.1
A security release, and one line that had been asserting something nobody checked.
diff --git a/README.ja.md b/README.ja.md
index 54a57d98..b443698a 100644
--- a/README.ja.md
+++ b/README.ja.md
@@ -47,18 +47,18 @@
```bash
-curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.1/install.sh | sh -s v1.2.1
+curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.2/install.sh | sh -s v1.2.2
```
先にインストーラーを読みたいですか?
```bash
-curl -fsSLO https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.1/install.sh
-sh install.sh v1.2.1
+curl -fsSLO https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.2/install.sh
+sh install.sh v1.2.2
# あるいはスクリプトを使わずに。スクリプトが作るチェックアウトは自分でも作れます。
-git clone --depth 1 --branch v1.2.1 https://github.com/MongLong0214/commitlore
+git clone --depth 1 --branch v1.2.2 https://github.com/MongLong0214/commitlore
node commitlore/dist/commitlore.mjs --version
```
@@ -107,13 +107,13 @@ CommitLore はその判断をコードのそばに残します。
macOS と Linux:
```bash
-curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.1/install.sh | sh -s v1.2.1
+curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.2/install.sh | sh -s v1.2.2
```
Windows:
```powershell
-& ([scriptblock]::Create((irm https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.1/install.ps1))) v1.2.1
+& ([scriptblock]::Create((irm https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.2/install.ps1))) v1.2.2
```
Node.js 22.23.2+ と Git が必要です。スクリプトは何かを書き込む前に両方を確認します。
diff --git a/README.ko.md b/README.ko.md
index 4a31cdaa..396becd9 100644
--- a/README.ko.md
+++ b/README.ko.md
@@ -47,18 +47,18 @@
```bash
-curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.1/install.sh | sh -s v1.2.1
+curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.2/install.sh | sh -s v1.2.2
```
먼저 설치기를 읽어 보고 싶나요?
```bash
-curl -fsSLO https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.1/install.sh
-sh install.sh v1.2.1
+curl -fsSLO https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.2/install.sh
+sh install.sh v1.2.2
# 또는 스크립트를 건너뜁니다. 스크립트가 만드는 체크아웃은 직접 만들 수 있습니다.
-git clone --depth 1 --branch v1.2.1 https://github.com/MongLong0214/commitlore
+git clone --depth 1 --branch v1.2.2 https://github.com/MongLong0214/commitlore
node commitlore/dist/commitlore.mjs --version
```
@@ -107,13 +107,13 @@ CommitLore는 그 판단을 코드 곁에 보관합니다.
macOS와 Linux:
```bash
-curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.1/install.sh | sh -s v1.2.1
+curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.2/install.sh | sh -s v1.2.2
```
Windows:
```powershell
-& ([scriptblock]::Create((irm https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.1/install.ps1))) v1.2.1
+& ([scriptblock]::Create((irm https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.2/install.ps1))) v1.2.2
```
Node.js 22.23.2+와 Git이 필요합니다. 스크립트는 무엇이든 쓰기 전에 둘을 확인합니다.
diff --git a/README.md b/README.md
index e3ad22b1..ce9331e3 100644
--- a/README.md
+++ b/README.md
@@ -48,18 +48,18 @@
```bash
-curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.1/install.sh | sh -s v1.2.1
+curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.2/install.sh | sh -s v1.2.2
```
Prefer to read the installer first?
```bash
-curl -fsSLO https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.1/install.sh
-sh install.sh v1.2.1
+curl -fsSLO https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.2/install.sh
+sh install.sh v1.2.2
# Or skip the script: the checkout it makes is one you can make yourself.
-git clone --depth 1 --branch v1.2.1 https://github.com/MongLong0214/commitlore
+git clone --depth 1 --branch v1.2.2 https://github.com/MongLong0214/commitlore
node commitlore/dist/commitlore.mjs --version
```
@@ -109,13 +109,13 @@ preserve, not for narrating every change.
macOS and Linux:
```bash
-curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.1/install.sh | sh -s v1.2.1
+curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.2/install.sh | sh -s v1.2.2
```
Windows:
```powershell
-& ([scriptblock]::Create((irm https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.1/install.ps1))) v1.2.1
+& ([scriptblock]::Create((irm https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.2/install.ps1))) v1.2.2
```
Requires Node.js 22.23.2+ and Git. The script checks both before it writes anything.
diff --git a/README.zh-CN.md b/README.zh-CN.md
index fb2f22b6..8448a86b 100644
--- a/README.zh-CN.md
+++ b/README.zh-CN.md
@@ -47,18 +47,18 @@
```bash
-curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.1/install.sh | sh -s v1.2.1
+curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.2/install.sh | sh -s v1.2.2
```
想先阅读安装器吗?
```bash
-curl -fsSLO https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.1/install.sh
-sh install.sh v1.2.1
+curl -fsSLO https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.2/install.sh
+sh install.sh v1.2.2
# 或者跳过脚本:它创建的检出,你自己也能创建。
-git clone --depth 1 --branch v1.2.1 https://github.com/MongLong0214/commitlore
+git clone --depth 1 --branch v1.2.2 https://github.com/MongLong0214/commitlore
node commitlore/dist/commitlore.mjs --version
```
@@ -105,13 +105,13 @@ CommitLore 把那份判断留在代码旁边。
macOS 和 Linux:
```bash
-curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.1/install.sh | sh -s v1.2.1
+curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.2/install.sh | sh -s v1.2.2
```
Windows:
```powershell
-& ([scriptblock]::Create((irm https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.1/install.ps1))) v1.2.1
+& ([scriptblock]::Create((irm https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.2/install.ps1))) v1.2.2
```
需要 Node.js 22.23.2+ 和 Git。脚本会在写入任何内容前检查两者。
diff --git a/install.ps1 b/install.ps1
index 30b85c06..0e7bc0fd 100644
--- a/install.ps1
+++ b/install.ps1
@@ -1,8 +1,8 @@
<#
Installs commitlore from source on Windows, for any agent that is not Claude Code.
- irm https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.1/install.ps1 | iex
- & ([scriptblock]::Create((irm https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.1/install.ps1))) v1.2.1
+ irm https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.2/install.ps1 | iex
+ & ([scriptblock]::Create((irm https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.2/install.ps1))) v1.2.2
Claude Code users do not need this script. The repository is itself a plugin
marketplace (ADR-0011), so two /plugin commands register the MCP server, the
diff --git a/install.sh b/install.sh
index d279dd53..c05ff382 100755
--- a/install.sh
+++ b/install.sh
@@ -1,8 +1,8 @@
#!/bin/sh
# Installs commitlore from source, for any agent that is not Claude Code.
#
-# curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.1/install.sh | sh
-# curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.1/install.sh | sh -s v1.2.1
+# curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.2/install.sh | sh
+# curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.2/install.sh | sh -s v1.2.2
#
# **Claude Code users do not need this script.** The repository is itself a
# plugin marketplace (ADR-0011), so two `/plugin` commands register the MCP
diff --git a/package-lock.json b/package-lock.json
index 99a685e8..24b1d386 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "commitlore",
- "version": "1.2.1",
+ "version": "1.2.2",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "commitlore",
- "version": "1.2.1",
+ "version": "1.2.2",
"license": "MIT",
"dependencies": {
"@modelcontextprotocol/sdk": "^1.30.0",
diff --git a/package.json b/package.json
index f5f49075..b2e96388 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "commitlore",
- "version": "1.2.1",
+ "version": "1.2.2",
"description": "Git-native, lifecycle-aware decision memory for coding agents",
"license": "MIT",
"private": true,
diff --git a/server.json b/server.json
index a3bdc2cf..f597fef4 100644
--- a/server.json
+++ b/server.json
@@ -8,7 +8,7 @@
"source": "github"
},
"websiteUrl": "https://github.com/MongLong0214/commitlore#readme",
- "version": "1.2.1",
+ "version": "1.2.2",
"_meta": {
"io.modelcontextprotocol.registry/publisher-provided": {
"registryFit": "Distribution is a tagged git checkout plus a Claude Code plugin marketplace (ADR-0011 registry-free git distribution, ADR-0026 no compiled executables and no uploaded release asset), so no official package type applies and this record relies on websiteUrl plus publisher metadata.",
@@ -18,8 +18,8 @@
"/plugin marketplace add MongLong0214/commitlore",
"/plugin install commitlore@commitlore"
],
- "installer": "curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.1/install.sh | sh -s v1.2.1",
- "release": "https://github.com/MongLong0214/commitlore/releases/tag/v1.2.1"
+ "installer": "curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.2/install.sh | sh -s v1.2.2",
+ "release": "https://github.com/MongLong0214/commitlore/releases/tag/v1.2.2"
},
"runtime": {
"transport": "stdio",
From dcc1f6beb33733f60ed80e9a23206df91d5c4c2f Mon Sep 17 00:00:00 2001
From: "commitlore-canonical-build[bot]"
<317873099+commitlore-canonical-build[bot]@users.noreply.github.com>
Date: Tue, 8 Sep 2026 03:27:07 +0000
Subject: [PATCH 3/3] Rebuild the canonical bundle for #871
`build:canonical` on the merged tree, so the commit that lands matches the source it lands with. The pull request carried source only, which is what a contributor on a host that cannot run a linux/amd64 Docker build can produce (#720).
Limit: this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for
Blast: system
Undo: easy
Certainty: firm
Record-Id: r-canonmerge871
Provenance: authored
Verified: artifact:verify passed against the regenerated manifest in the same job, before any credential was available to it
CommitLore-Version: 2.0.0
---
dist/commitlore.mjs | 10 ++++++++-
dist/core/mcp-registration.d.ts | 5 ++++-
dist/core/mcp-registration.js | 37 +++++++++++++++++++++++++++++--
dist/core/mcp-registration.js.map | 2 +-
installer/canonical-artifact.json | 12 +++++-----
5 files changed, 55 insertions(+), 11 deletions(-)
diff --git a/dist/commitlore.mjs b/dist/commitlore.mjs
index d08ae869..036633b0 100755
--- a/dist/commitlore.mjs
+++ b/dist/commitlore.mjs
@@ -20339,6 +20339,11 @@ var MCP_SERVER_ARGS = ["mcp"];
var isJsonObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
var messageOf4 = (error2) => error2 instanceof Error ? error2.message : String(error2);
var isLaunchableEntry = (value) => isJsonObject(value) && typeof value["command"] === "string" && value["command"].trim() !== "";
+var expandHostPlaceholders = (value) => value.replace(/\$\{([A-Za-z_][A-Za-z0-9_]*)(?::-([^}]*))?\}/g, (whole, name, fallback) => {
+ const set = process.env[name];
+ if (set !== void 0 && set !== "") return set;
+ return fallback ?? whole;
+});
var registeredMcpCommand = (cwd) => {
const launch = registeredMcpLaunch(cwd);
return launch?.command ?? null;
@@ -20359,7 +20364,10 @@ var registeredMcpLaunch = (cwd) => {
if (!isLaunchableEntry(entry)) return null;
const args = entry["args"];
if (args !== void 0 && (!Array.isArray(args) || !args.every((arg) => typeof arg === "string"))) return null;
- return { command: String(entry["command"]), args: args ?? [] };
+ return {
+ command: expandHostPlaceholders(String(entry["command"])),
+ args: (args ?? []).map(expandHostPlaceholders)
+ };
};
var registrationIsOurs = (cwd) => registeredMcpCommand(cwd) === MCP_SERVER_COMMAND;
var holdsLaunchableRegistration = (servers) => isJsonObject(servers) && Object.hasOwn(servers, MCP_SERVER_KEY) && isLaunchableEntry(servers[MCP_SERVER_KEY]);
diff --git a/dist/core/mcp-registration.d.ts b/dist/core/mcp-registration.d.ts
index ecb0e48c..153faf0c 100644
--- a/dist/core/mcp-registration.d.ts
+++ b/dist/core/mcp-registration.d.ts
@@ -26,7 +26,10 @@ export declare const MCP_SERVER_ARGS: readonly ["mcp"];
* second: `{"command": "false"}` read as a working capture server.
*/
export declare const registeredMcpCommand: (cwd: string) => string | null;
-/** The complete launch command a host will use, when its argv is parseable. */
+/**
+ * The complete launch command a host will use, when its argv is parseable, with
+ * `${VAR}` placeholders expanded as the host would expand them.
+ */
export declare const registeredMcpLaunch: (cwd: string) => {
command: string;
args: string[];
diff --git a/dist/core/mcp-registration.js b/dist/core/mcp-registration.js
index 2fb238ab..76677d73 100644
--- a/dist/core/mcp-registration.js
+++ b/dist/core/mcp-registration.js
@@ -41,6 +41,33 @@ const messageOf = (error) => (error instanceof Error ? error.message : String(er
* can start, which nobody chooses on purpose.
*/
const isLaunchableEntry = (value) => isJsonObject(value) && typeof value['command'] === 'string' && value['command'].trim() !== '';
+/**
+ * `${VAR}` and `${VAR:-default}`, expanded the way a host expands them before
+ * it launches the server.
+ *
+ * A registration is a launch instruction for a host, and the hosts that read
+ * this file substitute environment placeholders in `command` and `args` first —
+ * which is what lets one committed file name a path that only the host knows,
+ * `${CLAUDE_PLUGIN_ROOT}` being the one this repository's own registration uses
+ * (#870). Every reader here answers questions about that launch: what command a
+ * host will run, whether it is ours, and — in doctor's unattended-initiator
+ * check — whether it actually answers an MCP initialize. Reading the raw text
+ * answered those questions about a command no host ever runs, and the probe
+ * spawned the literal `${...}` as a path.
+ *
+ * An unset placeholder with no default is left as written rather than expanded
+ * to nothing. A host refuses that registration outright, and `""/dist/x.mjs`
+ * would turn the refusal into a plausible-looking path whose failure names a
+ * file nobody wrote.
+ */
+const expandHostPlaceholders = (value) => value.replace(/\$\{([A-Za-z_][A-Za-z0-9_]*)(?::-([^}]*))?\}/g, (whole, name, fallback) => {
+ const set = process.env[name];
+ // `:-` is shell semantics, which the syntax is borrowed from: an empty
+ // value takes the default, because an empty path is not a path.
+ if (set !== undefined && set !== '')
+ return set;
+ return fallback ?? whole;
+});
/**
* The command a registration under our key names, or null when there is none a
* host could launch.
@@ -53,7 +80,10 @@ export const registeredMcpCommand = (cwd) => {
const launch = registeredMcpLaunch(cwd);
return launch?.command ?? null;
};
-/** The complete launch command a host will use, when its argv is parseable. */
+/**
+ * The complete launch command a host will use, when its argv is parseable, with
+ * `${VAR}` placeholders expanded as the host would expand them.
+ */
export const registeredMcpLaunch = (cwd) => {
const path = mcpRegistrationPath(cwd);
if (path === null)
@@ -76,7 +106,10 @@ export const registeredMcpLaunch = (cwd) => {
const args = entry['args'];
if (args !== undefined && (!Array.isArray(args) || !args.every((arg) => typeof arg === 'string')))
return null;
- return { command: String(entry['command']), args: (args ?? []) };
+ return {
+ command: expandHostPlaceholders(String(entry['command'])),
+ args: (args ?? []).map(expandHostPlaceholders),
+ };
};
/**
* Whether the registered command is the one `init` writes.
diff --git a/dist/core/mcp-registration.js.map b/dist/core/mcp-registration.js.map
index 836a1f44..e647aea8 100644
--- a/dist/core/mcp-registration.js.map
+++ b/dist/core/mcp-registration.js.map
@@ -1 +1 @@
-{"version":3,"file":"mcp-registration.js","sourceRoot":"","sources":["../../src/core/mcp-registration.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"mcp-registration.js","sourceRoot":"","sources":["../../src/core/mcp-registration.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/installer/canonical-artifact.json b/installer/canonical-artifact.json
index 175e527b..070eb95c 100644
--- a/installer/canonical-artifact.json
+++ b/installer/canonical-artifact.json
@@ -15,10 +15,10 @@
"tsconfig.json",
"src"
],
- "sha256": "5af161de2542ca2e07d5566a1a2dbd66ed51e9bf4ad9c9d8c3f64609fd9b1d4a"
+ "sha256": "45e30addd45df3174eaa17f131a907b4edb090cf50ef0a87737819da5b138a0d"
},
"artifact": {
- "sha256": "26e55355619ad81dae04eed5f36be60cb7223378fca290974bcfd16a602616b1",
+ "sha256": "00306399c5cbb24b9c1ed0a6b6429cb54e81f71faef61a7cecd82dc6d5bb44ed",
"files": [
{
"path": "dist/cli.d.ts",
@@ -622,7 +622,7 @@
},
{
"path": "dist/commitlore.mjs",
- "sha256": "9932c059f0d4ce8a4cab17ce674a4089ec74bd099b3cf26dc13bbed557e92f02"
+ "sha256": "6af330ff5dedf4b7b4202ad193b1cdf780c6333fd6bf94d3679293198400bbf8"
},
{
"path": "dist/core/agent-configs.d.ts",
@@ -890,15 +890,15 @@
},
{
"path": "dist/core/mcp-registration.d.ts",
- "sha256": "0f4100ae9ab0b6762b1cdd29d10c6333a85606d93598521465a778cf3b0d55fd"
+ "sha256": "3c0a60a283d20c95ec903cf574bf3b67953ed3707ad655f5509260241017421d"
},
{
"path": "dist/core/mcp-registration.js",
- "sha256": "5f271b7e159691b26f0b0fe13298ccd19ee643c14be872e0fad1dc4725dfc139"
+ "sha256": "e0ea86d46326ccbdb6c275c474822d833778a39f1606652e0194568dec3f2e1c"
},
{
"path": "dist/core/mcp-registration.js.map",
- "sha256": "81626fd1c88c788e5fe6d716cc429af3bd1fe9eed83d6b0b1a1942436bb6b351"
+ "sha256": "75a77d424951193402de59f61a5b1d07f025096982d5fc061bbba3bec1477b72"
},
{
"path": "dist/core/notes.d.ts",