diff --git a/dist/commands/doctor.js b/dist/commands/doctor.js
index 7952ef72..d29857e7 100644
--- a/dist/commands/doctor.js
+++ b/dist/commands/doctor.js
@@ -37,6 +37,7 @@ import { collectRange } from '../core/squash.js';
import { parseCommitMessage } from '../core/trailers.js';
import { CLAUDE_HOOK_COMMAND, CLAUDE_HOOK_MARKER, claudeSettingsPath, readClaudeHookStatus, } from '../hooks/claude-settings.js';
import { HOOK_MARKER, commitMsgStub } from '../hooks/commit-msg.js';
+import { unfinishedRuns } from '../mcp/lifecycle.js';
/** Probe message for the git capability check — one trailer of each shape. */
const PROBE_MESSAGE = 'commitlore doctor probe\n\nLimit: probe\nBlast: local\n';
const EXACT_NOTES_REFSPEC = `+${NOTES_REF}:${NOTES_REF}`;
@@ -505,6 +506,34 @@ const checkInjectVersion = (opts) => {
}
return check(id, title, 'warn', `the agent's hook runs ${theirs} but this CLI is ${mine} — every edit is graded by ${theirs}'s rules, not this one's`, 'update the installation the hook resolves to (for the plugin: /plugin marketplace update commitlore), then rerun: commitlore doctor');
};
+/**
+ * MCP servers that started here and never recorded an exit (#424).
+ *
+ * A session lost all seven commitlore tools mid-conversation while
+ * `claude mcp list` still reported the server connected and no process was
+ * running. Nothing on disk could say whether it had ever come up, because the
+ * client was not started with `--debug` and the server's stderr went to a pipe.
+ *
+ * `mcp/lifecycle.ts` now leaves a start and an exit line. A start with neither
+ * an exit beside it nor a live process is a server that was killed rather than
+ * one that closed its session — which is the observation nobody could make.
+ *
+ * A `warn`, and only about the past: it says what happened, not that anything
+ * is wrong now. Nothing here can restore a lost registration.
+ */
+const checkMcpLifecycle = (opts) => {
+ const title = 'MCP server sessions';
+ const id = 'mcp-lifecycle';
+ const cwd = opts.cwd ?? process.cwd();
+ const unfinished = unfinishedRuns(cwd);
+ if (unfinished.length === 0) {
+ return check(id, title, 'ok', 'every recorded MCP session ended cleanly, or is still running');
+ }
+ const last = unfinished[unfinished.length - 1];
+ return check(id, title, 'warn', `${unfinished.length} MCP server session(s) started here and never recorded an exit — ` +
+ `most recently pid ${String(last?.pid ?? 0)} at ${last?.at ?? 'unknown'}. ` +
+ 'A killed server loses its tool registration in the client, which reports the same as a tool that never existed (#424)', 'restart the client session; if this repeats, capture it with a client started under --debug');
+};
const checkIndex = (opts) => {
const cwd = opts.cwd ?? process.cwd();
let handle;
@@ -679,6 +708,7 @@ export const runDoctor = (opts = {}) => {
hookRuntime,
checkInjectRuntime(opts),
checkInjectVersion(opts),
+ checkMcpLifecycle(opts),
checkGit(opts),
checkHistoryDepth(opts),
checkIndex(opts),
diff --git a/dist/commands/doctor.js.map b/dist/commands/doctor.js.map
index 9449cc19..3a39804c 100644
--- a/dist/commands/doctor.js.map
+++ b/dist/commands/doctor.js.map
@@ -1 +1 @@
-{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/commitlore.mjs b/dist/commitlore.mjs
index dfcaebdf..a2656f71 100755
--- a/dist/commitlore.mjs
+++ b/dist/commitlore.mjs
@@ -7720,7 +7720,7 @@ var require_dist = __commonJS({
});
// src/cli.ts
-import { readFileSync as readFileSync21 } from "node:fs";
+import { readFileSync as readFileSync22 } from "node:fs";
// node_modules/commander/lib/error.js
var CommanderError = class extends Error {
@@ -8897,7 +8897,7 @@ var Command = class _Command extends EventEmitter {
this._outputConfiguration = {
writeOut: (str) => process2.stdout.write(str),
writeErr: (str) => process2.stderr.write(str),
- outputError: (str, write) => write(str),
+ outputError: (str, write2) => write2(str),
getOutHelpWidth: () => process2.stdout.isTTY ? process2.stdout.columns : void 0,
getErrHelpWidth: () => process2.stderr.isTTY ? process2.stderr.columns : void 0,
getOutHasColors: () => useColor() ?? (process2.stdout.isTTY && process2.stdout.hasColors?.()),
@@ -10882,11 +10882,11 @@ Expecting one of '${allowedValues.join("', '")}'`);
hasColors = this._outputConfiguration.getOutHasColors();
helpWidth = this._outputConfiguration.getOutHelpWidth();
}
- const write = (str) => {
+ const write2 = (str) => {
if (!hasColors) str = this._outputConfiguration.stripColor(str);
return baseWrite(str);
};
- return { error: error2, write, hasColors, helpWidth };
+ return { error: error2, write: write2, hasColors, helpWidth };
}
/**
* Output help information for this command.
@@ -14156,8 +14156,8 @@ var decodedCandidates = (text) => {
]) {
for (const match of text.matchAll(scanner)) {
const token = match[0].replace(/\s+/g, "").replace(/=+$/, "");
- for (let trim = 0; trim <= 3 && token.length - trim >= 16; trim += 1) {
- const candidate = token.slice(0, trim === 0 ? void 0 : -trim);
+ for (let trim2 = 0; trim2 <= 3 && token.length - trim2 >= 16; trim2 += 1) {
+ const candidate = token.slice(0, trim2 === 0 ? void 0 : -trim2);
if (candidate.length % 4 !== 1) {
addDecoded(decoded, Buffer2.from(candidate, "base64"));
}
@@ -16179,9 +16179,9 @@ var register2 = (program3) => {
// src/commands/demo.ts
import { execFileSync } from "node:child_process";
-import { mkdtempSync, rmSync as rmSync3, writeFileSync as writeFileSync9, mkdirSync as mkdirSync8 } from "node:fs";
+import { mkdtempSync, rmSync as rmSync3, writeFileSync as writeFileSync10, mkdirSync as mkdirSync9 } from "node:fs";
import { tmpdir } from "node:os";
-import { dirname as dirname5, join as join7, resolve as resolve11 } from "node:path";
+import { dirname as dirname6, join as join8, resolve as resolve11 } from "node:path";
// src/demo/fixture.ts
var targetPath = "src/services/cache.ts";
@@ -16219,9 +16219,9 @@ CommitLore-Version: 2.0.0
// src/commands/doctor.ts
import { spawnSync as spawnSync3 } from "node:child_process";
-import { existsSync as existsSync7, readFileSync as readFileSync9, rmSync as rmSync2, writeFileSync as writeFileSync4 } from "node:fs";
+import { existsSync as existsSync7, readFileSync as readFileSync10, rmSync as rmSync2, writeFileSync as writeFileSync5 } from "node:fs";
import { tmpdir as tmpdirPath } from "node:os";
-import { join as join5, resolve as resolve6 } from "node:path";
+import { join as join6, resolve as resolve6 } from "node:path";
// src/core/hook-target.ts
import { lstatSync, readFileSync as readFileSync7, realpathSync, statSync } from "node:fs";
@@ -16967,6 +16967,93 @@ var stubText = (unresolved) => [
var commitMsgStub = () => stubText(UNRESOLVED_GATE);
var captureHookStub = () => stubText(UNRESOLVED_CAPTURE);
+// src/mcp/lifecycle.ts
+import { appendFileSync, mkdirSync as mkdirSync4, readFileSync as readFileSync9, writeFileSync as writeFileSync4, statSync as statSync3 } from "node:fs";
+import { dirname as dirname5, join as join5 } from "node:path";
+var MAX_BYTES = 64 * 1024;
+var LIFECYCLE_FILE = "mcp-lifecycle.log";
+var lifecyclePath = (cwd = process.cwd()) => {
+ const result = execGit(["rev-parse", "--git-path", join5("commitlore", LIFECYCLE_FILE)], { cwd });
+ if (result.code !== 0) return null;
+ const path2 = result.stdout.trim();
+ return path2 === "" ? null : join5(cwd, path2);
+};
+var trim = (path2) => {
+ try {
+ if (statSync3(path2).size <= MAX_BYTES) return;
+ const lines = readFileSync9(path2, "utf8").split("\n");
+ writeFileSync4(path2, `${lines.slice(Math.floor(lines.length / 2)).join("\n")}`);
+ } catch {
+ }
+};
+var write = (cwd, line2) => {
+ try {
+ const path2 = lifecyclePath(cwd);
+ if (path2 === null) return;
+ mkdirSync4(dirname5(path2), { recursive: true });
+ appendFileSync(path2, `${line2}
+`);
+ trim(path2);
+ } catch {
+ }
+};
+var stamp = (at) => `${at.toISOString().slice(0, 19)}Z`;
+var recordServerStart = (cwd = process.cwd(), at = /* @__PURE__ */ new Date()) => {
+ const entry = process.argv[1] ?? "unknown";
+ write(cwd, `started ${stamp(at)} pid ${String(process.pid)} ${packageVersion()} ${entry}`);
+ let done = false;
+ const exit = (how) => {
+ if (done) return;
+ done = true;
+ write(cwd, `exited ${stamp(/* @__PURE__ */ new Date())} pid ${String(process.pid)} ${how}`);
+ };
+ process.once("exit", () => {
+ exit("clean");
+ });
+ process.stdin.once("end", () => {
+ exit("stdin closed");
+ });
+ for (const signal of ["SIGINT", "SIGTERM", "SIGHUP"]) {
+ process.once(signal, () => {
+ exit(signal);
+ process.exit(0);
+ });
+ }
+};
+var readLifecycle = (cwd = process.cwd()) => {
+ try {
+ const path2 = lifecyclePath(cwd);
+ if (path2 === null) return [];
+ return readFileSync9(path2, "utf8").split("\n").flatMap((line2) => {
+ const match = /^(started|exited)\s+(\S+)\s+pid\s+(\d+)\s*(.*)$/.exec(line2.trim());
+ if (match === null) return [];
+ return [
+ {
+ kind: match[1],
+ at: match[2] ?? "",
+ pid: Number(match[3]),
+ detail: (match[4] ?? "").trim()
+ }
+ ];
+ });
+ } catch {
+ return [];
+ }
+};
+var unfinishedRuns = (cwd = process.cwd()) => {
+ const entries = readLifecycle(cwd);
+ const exited = new Set(entries.filter((e) => e.kind === "exited").map((e) => e.pid));
+ return entries.filter((entry) => {
+ if (entry.kind !== "started" || exited.has(entry.pid)) return false;
+ try {
+ process.kill(entry.pid, 0);
+ return false;
+ } catch {
+ return true;
+ }
+ });
+};
+
// src/commands/doctor.ts
var PROBE_MESSAGE = "commitlore doctor probe\n\nLimit: probe\nBlast: local\n";
var EXACT_NOTES_REFSPEC = `+${NOTES_REF}:${NOTES_REF}`;
@@ -17109,7 +17196,7 @@ var checkHook = (opts, runtime) => {
if (!existsSync7(path2)) {
return check(id, title, "warn", `no commit-msg hook at ${path2}; ${targetDetail}`, install);
}
- const contents = readFileSync9(path2, "utf8");
+ const contents = readFileSync10(path2, "utf8");
if (!contents.includes(HOOK_MARKER)) {
return check(
id,
@@ -17200,9 +17287,9 @@ var checkHookRuntime = (opts) => {
if (located.code !== 0) return check(id, title, "warn", "not inside a git repository", fix);
const hook = resolve6(cwd, located.stdout.trim());
if (!existsSync7(hook)) return check(id, title, "ok", "no hook installed \u2014 nothing to run");
- const probe = join5(tmpdirPath(), `commitlore-doctor-${String(process.pid)}.txt`);
+ const probe = join6(tmpdirPath(), `commitlore-doctor-${String(process.pid)}.txt`);
try {
- writeFileSync4(probe, PROBE_MESSAGE);
+ writeFileSync5(probe, PROBE_MESSAGE);
const run = spawnSync3("/bin/sh", [hook, probe], {
shell: false,
encoding: "utf8",
@@ -17385,6 +17472,23 @@ var checkInjectVersion = (opts) => {
"update the installation the hook resolves to (for the plugin: /plugin marketplace update commitlore), then rerun: commitlore doctor"
);
};
+var checkMcpLifecycle = (opts) => {
+ const title = "MCP server sessions";
+ const id = "mcp-lifecycle";
+ const cwd = opts.cwd ?? process.cwd();
+ const unfinished = unfinishedRuns(cwd);
+ if (unfinished.length === 0) {
+ return check(id, title, "ok", "every recorded MCP session ended cleanly, or is still running");
+ }
+ const last = unfinished[unfinished.length - 1];
+ return check(
+ id,
+ title,
+ "warn",
+ `${unfinished.length} MCP server session(s) started here and never recorded an exit \u2014 most recently pid ${String(last?.pid ?? 0)} at ${last?.at ?? "unknown"}. A killed server loses its tool registration in the client, which reports the same as a tool that never existed (#424)`,
+ "restart the client session; if this repeats, capture it with a client started under --debug"
+ );
+};
var checkIndex = (opts) => {
const cwd = opts.cwd ?? process.cwd();
let handle;
@@ -17540,6 +17644,7 @@ var runDoctor = (opts = {}) => {
hookRuntime,
checkInjectRuntime(opts),
checkInjectVersion(opts),
+ checkMcpLifecycle(opts),
checkGit(opts),
checkHistoryDepth(opts),
checkIndex(opts),
@@ -17577,19 +17682,19 @@ import { randomBytes as randomBytes7 } from "node:crypto";
import {
chmodSync as chmodSync4,
existsSync as existsSync11,
- mkdirSync as mkdirSync7,
- readFileSync as readFileSync13,
+ mkdirSync as mkdirSync8,
+ readFileSync as readFileSync14,
realpathSync as realpathSync2,
renameSync as renameSync6,
- statSync as statSync3,
+ statSync as statSync4,
unlinkSync as unlinkSync4,
- writeFileSync as writeFileSync8
+ writeFileSync as writeFileSync9
} from "node:fs";
-import { join as join6, resolve as resolve10 } from "node:path";
+import { join as join7, resolve as resolve10 } from "node:path";
// src/hooks/post-commit.ts
import { createHash as createHash5, randomBytes as randomBytes4 } from "node:crypto";
-import { chmodSync, existsSync as existsSync8, mkdirSync as mkdirSync4, readFileSync as readFileSync10, readdirSync as readdirSync3, renameSync as renameSync3, writeFileSync as writeFileSync5 } from "node:fs";
+import { chmodSync, existsSync as existsSync8, mkdirSync as mkdirSync5, readFileSync as readFileSync11, readdirSync as readdirSync3, renameSync as renameSync3, writeFileSync as writeFileSync6 } from "node:fs";
import { resolve as resolve7 } from "node:path";
var POST_COMMIT_HOOK_MARKER = "# commitlore:post-commit:v1";
var POST_COMMIT_HOOK_NAME = "post-commit";
@@ -17601,7 +17706,7 @@ var hookFailure = (line2) => ({ code: 2, stdout: "", stderr: `commitlore: ${line
var postCommitStub = () => captureHookStub().replaceAll("commit-msg", POST_COMMIT_HOOK_NAME).replaceAll('validate --message-file "$1"', "post-commit");
var writePostCommitHook = (path2) => {
const temporary = `${path2}.tmp-${process.pid}-${randomBytes4(4).toString("hex")}`;
- writeFileSync5(temporary, postCommitStub(), { mode: HOOK_MODE });
+ writeFileSync6(temporary, postCommitStub(), { mode: HOOK_MODE });
chmodSync(temporary, HOOK_MODE);
renameSync3(temporary, path2);
};
@@ -17611,13 +17716,13 @@ var installPostCommitHook = (cwd = process.cwd()) => {
const result = execGit(["rev-parse", "--git-path", `hooks/${POST_COMMIT_HOOK_NAME}`], { cwd });
if (result.code !== 0) return hookFailure(result.stderr.trim() || "not a git repository");
hookPath = resolve7(cwd, result.stdout.trim());
- mkdirSync4(resolve7(hookPath, ".."), { recursive: true });
+ mkdirSync5(resolve7(hookPath, ".."), { recursive: true });
} catch (error2) {
return hookFailure(error2 instanceof Error ? error2.message : String(error2));
}
try {
if (existsSync8(hookPath)) {
- const current = readFileSync10(hookPath, "utf8");
+ const current = readFileSync11(hookPath, "utf8");
if (!current.includes(POST_COMMIT_HOOK_MARKER)) {
return hookFailure(`${hookPath} is not a commitlore hook \u2014 left in place`);
}
@@ -17642,7 +17747,7 @@ var resolvePendingDir2 = (cwd) => {
};
var readPendingFile = (filePath) => {
try {
- const content = readFileSync10(filePath, "utf8");
+ const content = readFileSync11(filePath, "utf8");
const parsed = JSON.parse(content);
if (parsed["version"] !== 1) return null;
return parsed;
@@ -17739,7 +17844,7 @@ var register4 = (program3) => {
// src/hooks/pre-push.ts
import { randomBytes as randomBytes5 } from "node:crypto";
-import { chmodSync as chmodSync2, existsSync as existsSync9, mkdirSync as mkdirSync5, readFileSync as readFileSync11, renameSync as renameSync4, writeFileSync as writeFileSync6 } from "node:fs";
+import { chmodSync as chmodSync2, existsSync as existsSync9, mkdirSync as mkdirSync6, readFileSync as readFileSync12, renameSync as renameSync4, writeFileSync as writeFileSync7 } from "node:fs";
import { resolve as resolve8 } from "node:path";
// src/core/sync.ts
@@ -17835,7 +17940,7 @@ var hookFailure2 = (line2) => ({ code: 2, stdout: "", stderr: `commitlore: ${lin
var prePushStub = () => captureHookStub().replaceAll("commit-msg", PRE_PUSH_HOOK_NAME).replaceAll('validate --message-file "$1"', 'pre-push "$@"');
var writePrePushHook = (path2) => {
const temporary = `${path2}.tmp-${process.pid}-${randomBytes5(4).toString("hex")}`;
- writeFileSync6(temporary, prePushStub(), { mode: HOOK_MODE });
+ writeFileSync7(temporary, prePushStub(), { mode: HOOK_MODE });
chmodSync2(temporary, HOOK_MODE);
renameSync4(temporary, path2);
};
@@ -17845,13 +17950,13 @@ var installPrePushHook = (cwd = process.cwd()) => {
const result = execGit(["rev-parse", "--git-path", `hooks/${PRE_PUSH_HOOK_NAME}`], { cwd });
if (result.code !== 0) return hookFailure2(result.stderr.trim() || "not a git repository");
hookPath = resolve8(cwd, result.stdout.trim());
- mkdirSync5(resolve8(hookPath, ".."), { recursive: true });
+ mkdirSync6(resolve8(hookPath, ".."), { recursive: true });
} catch (error2) {
return hookFailure2(error2 instanceof Error ? error2.message : String(error2));
}
try {
if (existsSync9(hookPath)) {
- const current = readFileSync11(hookPath, "utf8");
+ const current = readFileSync12(hookPath, "utf8");
if (!current.includes(PRE_PUSH_HOOK_MARKER)) {
return hookFailure2(`${hookPath} is not a commitlore hook \u2014 left in place`);
}
@@ -17887,7 +17992,7 @@ var register5 = (program3) => {
// src/hooks/prepare-commit-msg.ts
import { createHash as createHash6, randomBytes as randomBytes6 } from "node:crypto";
-import { chmodSync as chmodSync3, existsSync as existsSync10, mkdirSync as mkdirSync6, readFileSync as readFileSync12, readdirSync as readdirSync4, renameSync as renameSync5, writeFileSync as writeFileSync7 } from "node:fs";
+import { chmodSync as chmodSync3, existsSync as existsSync10, mkdirSync as mkdirSync7, readFileSync as readFileSync13, readdirSync as readdirSync4, renameSync as renameSync5, writeFileSync as writeFileSync8 } from "node:fs";
import { resolve as resolve9 } from "node:path";
var PREPARE_COMMIT_MSG_HOOK_MARKER = "# commitlore:prepare-commit-msg:v1";
var PREPARE_COMMIT_MSG_HOOK_NAME = "prepare-commit-msg";
@@ -17922,12 +18027,12 @@ var recordsFromSquashMessage = (cwd, message) => {
var preserveSquashRecords = (messageFile, cwd = process.cwd()) => {
const squashPath = squashMessagePath(cwd);
if (squashPath === null || !existsSync10(squashPath)) return false;
- const draft = readFileSync12(messageFile, "utf8");
+ const draft = readFileSync13(messageFile, "utf8");
if (parseRecordBlocks(draft).some(isRecordBlock)) return false;
- const blocks = recordsFromSquashMessage(cwd, readFileSync12(squashPath, "utf8"));
+ const blocks = recordsFromSquashMessage(cwd, readFileSync13(squashPath, "utf8"));
if (blocks.length === 0) return false;
const separator = draft.endsWith("\n\n") ? "" : draft.endsWith("\n") ? "\n" : "\n\n";
- writeFileSync7(messageFile, `${draft}${separator}${blocks.map((block) => serializeTrailers([...block])).join("\n")}`);
+ writeFileSync8(messageFile, `${draft}${separator}${blocks.map((block) => serializeTrailers([...block])).join("\n")}`);
return true;
};
var prepareHookPath = (cwd) => {
@@ -17941,7 +18046,7 @@ var hookFailure3 = (line2) => ({ code: 2, stdout: "", stderr: `commitlore: ${lin
` });
var writePrepareHook = (path2) => {
const temporary = `${path2}.tmp-${process.pid}-${randomBytes6(4).toString("hex")}`;
- writeFileSync7(temporary, prepareCommitMsgStub(), { mode: HOOK_MODE });
+ writeFileSync8(temporary, prepareCommitMsgStub(), { mode: HOOK_MODE });
chmodSync3(temporary, HOOK_MODE);
renameSync5(temporary, path2);
};
@@ -17949,13 +18054,13 @@ var installPrepareCommitMsgHook = (cwd = process.cwd()) => {
let path2;
try {
path2 = prepareHookPath(cwd);
- mkdirSync6(resolve9(path2, ".."), { recursive: true });
+ mkdirSync7(resolve9(path2, ".."), { recursive: true });
} catch (error2) {
return hookFailure3(error2 instanceof Error ? error2.message : String(error2));
}
try {
if (existsSync10(path2)) {
- const current = readFileSync12(path2, "utf8");
+ const current = readFileSync13(path2, "utf8");
if (!current.includes(PREPARE_COMMIT_MSG_HOOK_MARKER)) {
return hookFailure3(`${path2} is not a commitlore hook \u2014 left in place`);
}
@@ -17978,7 +18083,7 @@ var resolvePendingDir3 = (cwd) => {
};
var readPendingFile2 = (filePath) => {
try {
- const content = readFileSync12(filePath, "utf8");
+ const content = readFileSync13(filePath, "utf8");
const parsed = JSON.parse(content);
if (parsed["version"] !== 1) return null;
return parsed;
@@ -18031,7 +18136,7 @@ var applyCaptureRecord = (messageFile, cwd) => {
const now = Date.now();
let currentMessage;
try {
- currentMessage = readFileSync12(messageFile, "utf8");
+ currentMessage = readFileSync13(messageFile, "utf8");
} catch {
return;
}
@@ -18050,7 +18155,7 @@ var applyCaptureRecord = (messageFile, cwd) => {
const trailerBlock = buildTrailerBlock(pending.records);
if (!trailerBlock) return;
const separator = currentMessage.endsWith("\n\n") ? "" : currentMessage.endsWith("\n") ? "\n" : "\n\n";
- writeFileSync7(messageFile, `${currentMessage}${separator}${trailerBlock}`);
+ writeFileSync8(messageFile, `${currentMessage}${separator}${trailerBlock}`);
const recordHash = createHash6("sha256").update(trailerBlock).digest("hex");
try {
markApplied(pending.nonce, recordHash, { cwd });
@@ -18098,7 +18203,7 @@ var resolveHooksDir = (cwd) => {
};
var isExecutable = (path2) => {
try {
- return (statSync3(path2).mode & 73) !== 0;
+ return (statSync4(path2).mode & 73) !== 0;
} catch {
return false;
}
@@ -18107,7 +18212,7 @@ var readHookState = (hookPath) => {
if (!existsSync11(hookPath)) return "absent";
let contents;
try {
- contents = readFileSync13(hookPath, "utf8");
+ contents = readFileSync14(hookPath, "utf8");
} catch {
return "foreign";
}
@@ -18116,8 +18221,8 @@ var readHookState = (hookPath) => {
};
var readHookStatus = (cwd = process.cwd()) => {
const hooksDir = resolveHooksDir(cwd);
- const hookPath = join6(hooksDir, HOOK_NAME);
- const chainedPath = join6(hooksDir, CHAINED_HOOK_NAME);
+ const hookPath = join7(hooksDir, HOOK_NAME);
+ const chainedPath = join7(hooksDir, CHAINED_HOOK_NAME);
return {
hooksDir,
hookPath,
@@ -18130,7 +18235,7 @@ var readHookStatus = (cwd = process.cwd()) => {
};
var writeStub = (hookPath) => {
const temporary = `${hookPath}.tmp-${process.pid}-${randomBytes7(4).toString("hex")}`;
- writeFileSync8(temporary, commitMsgStub(), { mode: HOOK_MODE });
+ writeFileSync9(temporary, commitMsgStub(), { mode: HOOK_MODE });
chmodSync4(temporary, HOOK_MODE);
renameSync6(temporary, hookPath);
};
@@ -18138,7 +18243,7 @@ var resolveEntryForRecord = (entry, cwd) => {
if (entry === void 0 || entry === "") return null;
const existingFile = (candidate) => {
try {
- return statSync3(candidate).isFile() ? candidate : null;
+ return statSync4(candidate).isFile() ? candidate : null;
} catch {
return null;
}
@@ -18170,7 +18275,7 @@ var installHook = (input = {}) => {
const cwd = input.cwd ?? process.cwd();
let before;
try {
- mkdirSync7(resolveHooksDir(cwd), { recursive: true });
+ mkdirSync8(resolveHooksDir(cwd), { recursive: true });
before = readHookStatus(cwd);
} catch (error2) {
return failure3(messageOf3(error2));
@@ -18218,12 +18323,12 @@ var CAPTURE_HOOKS = [
}
];
var removeCaptureHook = (hooksDir, hook) => {
- const hookPath = join6(hooksDir, hook.name);
- const chainedPath = join6(hooksDir, hook.chainedName);
+ const hookPath = join7(hooksDir, hook.name);
+ const chainedPath = join7(hooksDir, hook.chainedName);
if (!existsSync11(hookPath)) return [`no ${hook.name} hook to remove: ${hookPath}`];
let contents;
try {
- contents = readFileSync13(hookPath, "utf8");
+ contents = readFileSync14(hookPath, "utf8");
} catch {
return [`${hookPath} was not installed by commitlore \u2014 left in place`];
}
@@ -18535,25 +18640,25 @@ var runDemo = async (opts = {}) => {
process.prependOnceListener("SIGINT", onSignal);
process.prependOnceListener("SIGTERM", onSignal);
try {
- tmpDir = mkdtempSync(join7(opts.tmpRoot ?? tmpdir(), "commitlore-demo-"));
+ tmpDir = mkdtempSync(join8(opts.tmpRoot ?? tmpdir(), "commitlore-demo-"));
const userCwd = resolve11(opts.cwd ?? process.cwd());
const tmpResolved = resolve11(tmpDir);
if (tmpResolved === userCwd || tmpResolved.startsWith(userCwd + "/") || userCwd.startsWith(tmpResolved + "/")) {
throw new Error("demo: temporary directory overlaps with user repository \u2014 aborting");
}
- git(["init", "--quiet", "--template=", "--initial-branch=main", tmpDir], dirname5(tmpDir));
+ git(["init", "--quiet", "--template=", "--initial-branch=main", tmpDir], dirname6(tmpDir));
git(["config", "user.name", "CommitLore Demo"], tmpDir);
git(["config", "user.email", "demo@commitlore.example"], tmpDir);
git(["config", "commit.gpgsign", "false"], tmpDir);
- const targetFullPath = join7(tmpDir, targetPath);
- mkdirSync8(dirname5(targetFullPath), { recursive: true });
- writeFileSync9(targetFullPath, "// session cache module\n");
+ const targetFullPath = join8(tmpDir, targetPath);
+ mkdirSync9(dirname6(targetFullPath), { recursive: true });
+ writeFileSync10(targetFullPath, "// session cache module\n");
git(["add", "."], tmpDir);
git(["commit", "-m", predecessorCommitMessage], tmpDir);
if (opts.crashTest === true) {
throw new Error("demo: simulated crash for testing cleanup");
}
- writeFileSync9(targetFullPath, "// session cache module \u2014 now using SQLite\n");
+ writeFileSync10(targetFullPath, "// session cache module \u2014 now using SQLite\n");
git(["add", "."], tmpDir);
git(["commit", "-m", successorCommitMessage], tmpDir);
runInit({ cwd: tmpDir });
@@ -18610,7 +18715,7 @@ var register9 = (program3) => {
};
// src/commands/harvest.ts
-import { readFileSync as readFileSync14, writeFileSync as writeFileSync10 } from "node:fs";
+import { readFileSync as readFileSync15, writeFileSync as writeFileSync11 } from "node:fs";
var PREFIX2 = "commitlore:";
var USAGE_EXIT_CODE = 2;
var skip2 = (reason) => ({
@@ -18621,7 +18726,7 @@ var skip2 = (reason) => ({
});
var readTextFile = (path2, label) => {
try {
- return readFileSync14(path2, "utf8");
+ return readFileSync15(path2, "utf8");
} catch (error2) {
const detail = error2 instanceof Error ? error2.message : String(error2);
throw new Error(`cannot read ${label}: ${detail}`);
@@ -18630,7 +18735,7 @@ var readTextFile = (path2, label) => {
var emit2 = (payload, out) => {
if (out === void 0) return { stdout: payload, stderr: "", exitCode: 0 };
try {
- writeFileSync10(out, payload);
+ writeFileSync11(out, payload);
} catch (error2) {
const detail = error2 instanceof Error ? error2.message : String(error2);
throw new Error(`cannot write --out: ${detail}`);
@@ -18706,7 +18811,7 @@ var register10 = (program3) => {
};
// src/commands/guard.ts
-import { readFileSync as readFileSync15 } from "node:fs";
+import { readFileSync as readFileSync16 } from "node:fs";
var FLAGGED_EXIT_CODE = 1;
var USAGE_EXIT_CODE2 = 2;
var INCOMPLETE_EXIT_CODE = 3;
@@ -18714,8 +18819,8 @@ var STDIN_FD = 0;
var readProposal = (raw) => {
if (!raw.startsWith("@")) return raw;
const path2 = raw.slice(1);
- if (path2 === "-") return readFileSync15(STDIN_FD, "utf8");
- return readFileSync15(path2, "utf8");
+ if (path2 === "-") return readFileSync16(STDIN_FD, "utf8");
+ return readFileSync16(path2, "utf8");
};
var matchThreshold = (raw) => {
if (raw === void 0) return void 0;
@@ -18906,12 +19011,12 @@ var register11 = (program3) => {
};
// src/commands/harvest-verify.ts
-import { readFileSync as readFileSync16, writeFileSync as writeFileSync11 } from "node:fs";
+import { readFileSync as readFileSync17, writeFileSync as writeFileSync12 } from "node:fs";
var PREFIX3 = "commitlore:";
var BAD_INPUT = 2;
var readTextFile2 = (path2, label) => {
try {
- return readFileSync16(path2, "utf8");
+ return readFileSync17(path2, "utf8");
} catch (error2) {
const detail = error2 instanceof Error ? error2.message : String(error2);
throw new Error(`cannot read ${label}: ${detail}`);
@@ -18948,7 +19053,7 @@ var recordsPayload = (records) => `${JSON.stringify({ records }, null, 2)}
var emit3 = (payload, out) => {
if (out === void 0) return payload;
try {
- writeFileSync11(out, payload);
+ writeFileSync12(out, payload);
} catch (error2) {
const detail = error2 instanceof Error ? error2.message : String(error2);
throw new Error(`cannot write --out: ${detail}`);
@@ -19098,8 +19203,8 @@ var register13 = (program3) => {
};
// src/commands/inject.ts
-import { readFileSync as readFileSync17, realpathSync as realpathSync3 } from "node:fs";
-import { basename as basename2, dirname as dirname6, isAbsolute as isAbsolute2, join as join8, relative as relative2, resolve as resolve12, sep as sep2 } from "node:path";
+import { readFileSync as readFileSync18, realpathSync as realpathSync3 } from "node:fs";
+import { basename as basename2, dirname as dirname7, isAbsolute as isAbsolute2, join as join9, relative as relative2, resolve as resolve12, sep as sep2 } from "node:path";
// src/core/inject.ts
import { createHash as createHash7 } from "node:crypto";
@@ -19446,7 +19551,7 @@ var MAX_PAYLOAD_PATH_LENGTH = 4096;
var isPlainObject2 = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
var readStdin = () => {
try {
- return readFileSync17(0, "utf8");
+ return readFileSync18(0, "utf8");
} catch {
return "";
}
@@ -19475,9 +19580,9 @@ var canonical = (target) => {
for (; ; ) {
try {
const real = realpathSync3(current);
- return tail.length === 0 ? real : join8(real, ...tail);
+ return tail.length === 0 ? real : join9(real, ...tail);
} catch {
- const parent = dirname6(current);
+ const parent = dirname7(current);
if (parent === current) return absolute;
tail.unshift(basename2(current));
current = parent;
@@ -29134,6 +29239,7 @@ var routeConsoleToStderr = () => {
};
var startStdioServer = async (opts = {}) => {
routeConsoleToStderr();
+ recordServerStart(opts.cwd ?? process.cwd());
const server = createServer(opts);
await server.connect(new StdioServerTransport());
return server;
@@ -29342,7 +29448,7 @@ var register18 = (program3) => {
};
// src/commands/squash-preserve.ts
-import { readFileSync as readFileSync18, writeFileSync as writeFileSync12 } from "node:fs";
+import { readFileSync as readFileSync19, writeFileSync as writeFileSync13 } from "node:fs";
var PREFIX4 = "commitlore:";
var USAGE = "usage: commitlore squash-preserve