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",