From 30482b5a49cf8de1e993a6b2c2ecfa22061ac355 Mon Sep 17 00:00:00 2001 From: operator Date: Tue, 8 Sep 2026 21:48:21 +0900 Subject: [PATCH 1/4] fix(capture): bound the guard to the window the prompt already carries MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `capture` died on a 74,173,844-byte session with `Fatal JavaScript invalid size error 134217728`, exit 133, and no JSON at all. Not a refusal — an engine abort. The command reports outcomes structurally so a caller branches on `staged` / `empty` / `rejected` rather than on the exit code, and this escaped that contract entirely: a wrapper careful enough to read the outcome had nothing to read. Reproduced on 1.2.3 too, so it was a standing limit and not something the last release introduced. 1.2.3 bounded the prompt (#873) and did not bound the guard beside it. `prepareValues` passed the whole transcript to `computeGuardAdvisory` on one line and windowed it to 256 KiB on the next. `guard` normalises its proposal through `normalizeForMatch`, and its `\p{Script=Latin}\p{M}*` global replace collects one match per letter into a single array; past roughly 69 MB that array crosses V8's 2^27 FixedArray ceiling. The frame that dies was measured, not inferred. A static read of this path nominates the `mapped += char` accumulator two lines below, which is the more obvious suspect and is not what fails. The native stack is unambiguous: Builtins_StringPrototypeReplace Builtins_RegExpReplace Runtime_RegExpExecMultiple FixedArrayBuilder::EnsureCapacity NewFixedArrayWithHoles(134217728) A preload wrapping `String.prototype.replace` confirms it from the other side: the last subject over 1 MB before the abort is the whole transcript under `/\p{Script=Latin}\p{M}*/gu`, reached through `tokenize` from `guard`. `computeGuardAdvisory` documents that it never throws and degrades any failure to a recorded gap. That contract could not hold while the input was unbounded, because a fatal engine abort is not catchable — so the input stopped being unbounded rather than the catch growing. The guard now reads the same window the prompt carries. That narrows what the advisory sees, and it is also the more honest alignment: the advisory is rendered beside the prompt, so computing it over a whole session could warn about a decision the prompt does not contain. The window is computed once and handed to both, so a large transcript is split once rather than twice. A truncated scan must not read as a complete one, so the advisory carries a new `proposal-windowed` gap whenever the window dropped part of the session. An empty `matches` array then says something about the window rather than about the transcript. Not fixed here, and deliberate: verification still reads the whole transcript, so a quote from outside the window still verifies, and `scan()` builds per-character structures over the whole file to do it. That survives 74 MB and would fail somewhere past ~134 M characters. Bounding it would break the guarantee that a locator names a line of the file it is checked against, which is the property #873 went out of its way to keep. Verified on a generated transcript matched to the report's profile — 74,450,108 bytes, 49,881 lines, 1,493 bytes/line against the reporter's 74,173,844 / 49,549 / ~1,497. Before: exit 133, zero bytes of stdout. After: exit 0, `outcome: empty` with a nonce in prompt-only mode and `outcome: staged` with a draft, 0.7 s end to end. The new tests assert by where a reviving phrase sits rather than by any byte count, because a size-only test would pass against the old code; the negative control restores `proposal: transcript` and fails the one case that proves the binding while the other three still pass. Closes #884 Record-Id: r-guardwindow884 Provenance: authored Ruled-out: chunk normalizeForMatch so the whole session is still scanned | it is the anti-injection normaliser -- NFKC, invisibles, confusables -- and a fold straddling a chunk boundary is a security regression traded for a performance fix Ruled-out: refuse above a transcript size and report it as a rejection | the reporter offered this as strictly better than a crash and it is, but it leaves large sessions with no advisory at all when a bounded one is available Ruled-out: bound guard() itself against any oversized proposal | the MCP route can hand it text with no ARG_MAX ceiling, so the class is real, but no caller has reported reaching it and the fix belongs where the unbounded input is produced Limit: verification is still unbounded by design and its per-character scan would fail past ~134 M characters; this moves the ceiling for capture, it does not remove it Limit: a decision raised early in a long session is no longer matched at all, because neither the guard nor the model can see it Warn: the advisory and the prompt must keep reading the same bytes; passing a different window to either reintroduces an advisory that describes text the model was never shown Blast: module Undo: easy Certainty: firm Verified: 14/14 in test/capture-prompt-budget.test.ts, full suite 3205 passed 4 skipped 0 failed, tsc exit 0 Verified: the reporter's repro shape run against the built CLI before and after -- exit 133 with 0 bytes, then exit 0 staging a record from the same 74 MB file Unverified: the exact byte threshold between the 69 MB that worked and the 74 MB that did not; it depends on letter density rather than size alone and was not narrowed Co-Authored-By: Claude --- src/core/capture-prepare.ts | 35 ++++++++-- src/core/harvest.ts | 9 ++- src/core/pending.ts | 14 +++- test/capture-prompt-budget.test.ts | 107 +++++++++++++++++++++++++++++ 4 files changed, 157 insertions(+), 8 deletions(-) diff --git a/src/core/capture-prepare.ts b/src/core/capture-prepare.ts index 6045de63..32e4f9ef 100644 --- a/src/core/capture-prepare.ts +++ b/src/core/capture-prepare.ts @@ -10,7 +10,7 @@ import { createHash, randomBytes } from 'node:crypto'; import { markCaptureError } from './capture-outcome.js'; import { execGitOrThrow } from './git.js'; import { guard, renderGuardMatch, type GuardResult } from './guard.js'; -import { buildHarvestPromptWithWindow, type TranscriptWindow } from './harvest.js'; +import { windowTranscript, buildHarvestPromptWithWindow, type TranscriptWindow } from './harvest.js'; import { policySourceLabel, resolvePolicy } from './capture-policy.js'; import { createPending, @@ -59,9 +59,24 @@ const deriveGuardGaps = (result: GuardResult): GuardGap[] => { /** * Compute the guard advisory for a capture. Never throws — any error becomes * a recorded gap. The capture must always succeed regardless of guard outcome. + * + * "Never throws" was not enough (#884). This was handed the *whole* transcript + * while the prompt beside it was already windowed, and `guard` normalises its + * proposal through `normalizeForMatch` — whose `\p{Script=Latin}\p{M}*` global + * replace collects one match per letter. On a 74 MB session that array passed + * V8's 2^27 FixedArray ceiling and the process died inside + * `Runtime_RegExpExecMultiple` with `invalid size error 134217728`, exit 133, + * before a byte of JSON was written. A fatal engine abort is not catchable, so + * the try/catch below could not honour its own contract; the input had to stop + * being unbounded instead. + * + * `proposalTruncated` records that the advisory saw the window rather than the + * session, so an empty `matches` array is never mistaken for a clean scan of + * the whole transcript. */ const computeGuardAdvisory = (opts: { proposal: string; + proposalTruncated: boolean; paths: readonly string[]; cwd: string; readOnly?: boolean; @@ -81,16 +96,20 @@ const computeGuardAdvisory = (opts: { ? {} : { trustedSignerFingerprints: opts.trustedSignerFingerprints }), }); + const gaps = deriveGuardGaps(result); + if (opts.proposalTruncated) gaps.push('proposal-windowed'); return { matches: result.matches.map(renderGuardMatch), - gaps: deriveGuardGaps(result), + gaps, disclosure: GUARD_DISCLOSURE, }; } catch { // Guard failure degrades to a recorded gap — never a capture failure return { matches: [], - gaps: ['history-unavailable'], + gaps: opts.proposalTruncated + ? ['history-unavailable', 'proposal-windowed'] + : ['history-unavailable'], disclosure: GUARD_DISCLOSURE, }; } @@ -242,10 +261,16 @@ const prepareValues = (opts: { } const diffPaths = extractPathsFromDiff(diff); + // Windowed once, then used for both the advisory and the prompt. The guard + // reads the same bytes the model is shown: an advisory computed over the + // whole session could warn about a decision that is not in the prompt at all, + // and reading the whole session is what killed the process in #884. + const windowed = windowTranscript(transcript); const advisory = opts.skipGuard === true ? null : computeGuardAdvisory({ - proposal: transcript, + proposal: windowed.text, + proposalTruncated: windowed.window.truncated, paths: diffPaths, cwd, ...(opts.readOnly ? { readOnly: true } : {}), @@ -256,7 +281,7 @@ const prepareValues = (opts: { : { trustedSignerFingerprints: opts.trustedSignerFingerprints }), }); - const harvest = buildHarvestPromptWithWindow({ transcript, diff }); + const harvest = buildHarvestPromptWithWindow({ transcript, diff }, windowed); return { base_head: baseHead, diff --git a/src/core/harvest.ts b/src/core/harvest.ts index b07552d6..d23b1a06 100644 --- a/src/core/harvest.ts +++ b/src/core/harvest.ts @@ -565,10 +565,17 @@ export const buildHarvestContract = (): string => { */ export const buildHarvestPromptWithWindow = ( input: HarvestInput, + /** + * A window the caller already computed. `windowTranscript` splits the whole + * transcript to find its tail, so a caller that needs the window for its own + * reasons — capture hands the same bytes to the guard (#884) — passes it back + * rather than paying for a second split of a session that can be tens of MB. + */ + precomputed?: { text: string; window: TranscriptWindow }, ): { prompt: string; window: TranscriptWindow } => { const entries = loadVocabulary().filter((entry) => entry.key !== 'Verified'); const diff = input.diff.trim() === '' ? '(no diff)' : input.diff.replace(/\n+$/, ''); - const { text, window } = windowTranscript(input.transcript); + const { text, window } = precomputed ?? windowTranscript(input.transcript); const prompt = [ '# CommitLore harvest', diff --git a/src/core/pending.ts b/src/core/pending.ts index 0d6b0be0..bb5a0d57 100644 --- a/src/core/pending.ts +++ b/src/core/pending.ts @@ -20,8 +20,18 @@ import { isFullObjectId } from './types.js'; // Types // --------------------------------------------------------------------------- -/** The three verification gaps, in canonical order (T-1024's closed vocabulary). */ -export type GuardGap = 'history-unavailable' | 'shallow-history' | 'notes-unfetched'; +/** + * The verification gaps, in canonical order (T-1024's closed vocabulary). + * + * `proposal-windowed` (#884) says the advisory read the same bounded window the + * prompt carries rather than the whole session, so an empty `matches` array is + * silence about the window and not about the transcript. + */ +export type GuardGap = + | 'history-unavailable' + | 'shallow-history' + | 'notes-unfetched' + | 'proposal-windowed'; export interface GuardAdvisory { matches: RenderedGuardMatch[]; diff --git a/test/capture-prompt-budget.test.ts b/test/capture-prompt-budget.test.ts index 87c69d50..167bd042 100644 --- a/test/capture-prompt-budget.test.ts +++ b/test/capture-prompt-budget.test.ts @@ -228,3 +228,110 @@ describe('#873 capture returns a prompt a model can read, and says what it is', expect(verified.accepted).toHaveLength(1); }); }); + +/** + * #884: the prompt was bounded and the guard beside it was not. + * + * `prepareValues` handed `computeGuardAdvisory` the *whole* transcript while + * `buildHarvestPromptWithWindow` on the next line took a 256 KiB window of it. + * `guard` normalises its proposal through `normalizeForMatch`, whose + * `\p{Script=Latin}\p{M}*` global replace collects one match per letter into a + * single array; on a 74,173,844-byte session that array crossed V8's 2^27 + * FixedArray ceiling and the process aborted with + * `Fatal JavaScript invalid size error 134217728`, exit 133, before a byte of + * JSON was written. Measured on both 1.2.5 and 1.2.3, so it was a standing + * limit rather than a regression, and the native stack named + * `Runtime_RegExpExecMultiple` as the frame that died. + * + * `computeGuardAdvisory` documents that it never throws and degrades to a gap. + * A fatal engine abort is not catchable, so that contract could not hold while + * the input was unbounded — the input had to stop being unbounded. + * + * The two properties below are what hold it: + * + * 1. The guard reads the window, not the session. Asserted by where a reviving + * phrase sits rather than by any size, because a test that only counted + * bytes would pass against the old code too. + * 2. It says so. Silence about a window must not read as a clean scan of the + * whole transcript. + */ +describe('#884 the guard advisory reads the same window the prompt carries', () => { + const RULED_OUT = 'Use shared Redis cache for sessions'; + const REVIVES = 'We should use a shared Redis cache for sessions to share state across replicas.'; + + /** A repo whose history rules out an alternative the transcript can revive. */ + const makeRepoWithRuledOut = (): string => { + const dir = mkdtempSync(join(tmpdir(), 'capture-guard-window-')); + scratch.push(dir); + execSync('git init --quiet --initial-branch=main', { cwd: dir }); + execSync('git config user.name "Test"', { cwd: dir }); + execSync('git config user.email "test@test.com"', { cwd: dir }); + execSync('git config commit.gpgsign false', { cwd: dir }); + writeFileSync(join(dir, 'a.txt'), 'hello\n'); + execSync('git add a.txt', { cwd: dir }); + execSync( + `git commit -m "feat: sessions\n\nRuled-out: ${RULED_OUT} | race condition under failover\nRecord-Id: r-window884" --no-verify --quiet`, + { cwd: dir }, + ); + writeFileSync(join(dir, 'a.txt'), 'hello\nworld\n'); + execSync('git add a.txt', { cwd: dir }); + return dir; + }; + + const withBudget = (bytes: string, body: () => T): T => { + const previous = process.env['COMMITLORE_TRANSCRIPT_BUDGET_BYTES']; + process.env['COMMITLORE_TRANSCRIPT_BUDGET_BYTES'] = bytes; + try { + return body(); + } finally { + if (previous === undefined) delete process.env['COMMITLORE_TRANSCRIPT_BUDGET_BYTES']; + else process.env['COMMITLORE_TRANSCRIPT_BUDGET_BYTES'] = previous; + } + }; + + it('does not match a ruled-out alternative that only appears outside the window', () => { + const cwd = makeRepoWithRuledOut(); + // The reviving sentence is line 1, and the window keeps only the tail. + const transcript = `${REVIVES}\n${transcriptOf(4000)}`; + + const prepared = withBudget('2048', () => prepareCaptureContext({ cwd, transcript })); + + expect(prepared.transcript_window.truncated).toBe(true); + expect(prepared.transcript_window.first_line).toBeGreaterThan(1); + // Reading the whole transcript is what this used to do, and it is what + // killed the process. Matching here means the guard saw line 1. + expect(prepared.guard_advisory!.matches).toHaveLength(0); + }); + + it('still matches the same alternative when it appears inside the window', () => { + const cwd = makeRepoWithRuledOut(); + // Same repo, same phrase, same budget — only its position changes. Without + // this the fix could be "the guard never matches anything" and pass above. + const transcript = `${transcriptOf(4000)}\n${REVIVES}`; + + const prepared = withBudget('2048', () => prepareCaptureContext({ cwd, transcript })); + + expect(prepared.transcript_window.truncated).toBe(true); + expect(prepared.guard_advisory!.matches.length).toBeGreaterThanOrEqual(1); + }); + + it('records proposal-windowed so an empty match list is not read as a clean scan', () => { + const cwd = makeRepoWithRuledOut(); + const transcript = `${REVIVES}\n${transcriptOf(4000)}`; + + const prepared = withBudget('2048', () => prepareCaptureContext({ cwd, transcript })); + + expect(prepared.guard_advisory!.gaps).toContain('proposal-windowed'); + }); + + it('does not claim a gap when the whole session fitted', () => { + const cwd = makeRepoWithRuledOut(); + + const prepared = prepareCaptureContext({ cwd, transcript: REVIVES }); + + expect(prepared.transcript_window.truncated).toBe(false); + expect(prepared.guard_advisory!.gaps).not.toContain('proposal-windowed'); + // And the advisory still works on the unwindowed path. + expect(prepared.guard_advisory!.matches.length).toBeGreaterThanOrEqual(1); + }); +}); From 0261b5f3e4d01b917cc81c469e283f9643b4ad06 Mon Sep 17 00:00:00 2001 From: operator Date: Tue, 8 Sep 2026 21:48:53 +0900 Subject: [PATCH 2/4] fix(doctor,upgrade): name the pids still writing, and stop reporting a stale latest MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `doctor` reported three distinct live CommitLore runtimes answering MCP on a machine where every registration was correct. It was right. The old runtimes were live processes that outlived an upgrade: a host resolves the launcher once at session start and holds that runtime for the life of the session, and the sessions there ran for days. Those runtimes write. Records captured by a session started two days earlier come from the build that session started on, while the operator believes the repository is on the release they installed, and nothing on the commit says which produced it. The row named three versions and stopped, so an operator could not tell whether that was cosmetic or whether half their records came from old code. The scan already knew all five process ids and dropped them on the way to a deduplicated identity string, so the reporter ran `ps` themselves to find the processes behind the names. The row now groups pids by identity and names every one, states that each runtime keeps writing records with the build it started on, and offers an action aimed at the actual remedy: restart the host sessions that own those pids, because an upgrade cannot reach a process that is already running. Reinstalling is not the fix and the row no longer implies it is. It deliberately does not label any runtime the stale one. r-liveruntime660 ruled that out — a copied or stale install can report the same version as a current one, so a version comparison here proves nothing about identity — and a test asserts the row and its action say no such thing. Severity stays `warn` and `needsAttention` stays false: this observes the machine, not the checkout, and #750 is what happens when a repository command fails over another process. `upgrade` had a smaller version of the same blindness. On a machine running 1.2.5 it reported `latest v1.2.3` and added "this is the newest release". The lookup was never wrong: the answer is cached for a day in `~/.cache/commitlore/latest-release.json`, and only `upgrade` acting calls `forgetCachedRelease`, so a release installed any other way — install.sh, the plugin marketplace, a manual checkout — leaves the previous answer standing and the command reports a tag older than the binary printing it. A `latest` older than the version already running cannot be the latest. That case now drops the cache and re-asks. Equality is left alone deliberately: "you are up to date" is the answer the cache exists to hold, and re-asking there would make it decorative. Not addressed, and left for its own decision: #885 also asks that the producing runtime be recorded on the record itself, so a mixed-version repository is legible after the fact rather than only while the processes are alive. That cannot use `CommitLore-Version:` — SPEC §8 defines it as the protocol version a record targets, and every fixture carries 2.0.0, unrelated to the v1.2.x build. It needs a new trailer, which is a protocol surface that would appear on every future record and is a wider decision than this makes. Closes #885 Record-Id: r-runtimevis885 Provenance: authored Ruled-out: stamp the producing runtime on the record now | it needs a new trailer rather than CommitLore-Version, and a permanent addition to what a record looks like should not ride along with a diagnostic fix Ruled-out: name the newest runtime and call the others stale | r-liveruntime660 ruled that out because a copied or stale install can report the same version as a current one, so the ranking would be a guess presented as a fact Ruled-out: raise the row to fail, or have it claim attention | it observes the machine rather than the checkout, and #750 is the measured cost of letting another process decide a repository command's exit code Ruled-out: re-ask whenever the cached latest is not newer than the running version | that includes the equal case, which is every up-to-date machine, and would spawn git ls-remote on every upgrade Limit: only `upgrade` re-asks a provably stale cache; `latestReleaseSync` and its other callers still serve the day-long answer Limit: the row names the processes but cannot restart them, and doctor --fix does not act on this check Warn: the fix text is rendered with newlines collapsed, so it must stay one sentence Blast: module Undo: easy Certainty: firm Verified: 7/7 in test/runtime-identity-action.test.ts, 10/10 in test/update-command.test.ts, 4/4 in test/init-machine-scope.test.ts, full suite 3205 passed 4 skipped 0 failed, tsc exit 0 Verified: negative controls -- dropping the pids from the row fails the pid case, and removing the stale-cache re-ask fails the cache case, each while the rest still pass Unverified: whether a host that respawns the launcher picks up a new runtime, which is #885's third suggestion; the reported symptom is sessions that never respawn, so it was not measured Co-Authored-By: Claude --- .../checks/delivery-mcp-runtime-identity.ts | 42 ++++++- src/commands/update.ts | 27 +++- test/runtime-identity-action.test.ts | 118 ++++++++++++++++++ test/update-command.test.ts | 59 +++++++++ 4 files changed, 242 insertions(+), 4 deletions(-) create mode 100644 test/runtime-identity-action.test.ts diff --git a/src/commands/doctor/checks/delivery-mcp-runtime-identity.ts b/src/commands/doctor/checks/delivery-mcp-runtime-identity.ts index 81800c3c..ed43c4b2 100644 --- a/src/commands/doctor/checks/delivery-mcp-runtime-identity.ts +++ b/src/commands/doctor/checks/delivery-mcp-runtime-identity.ts @@ -22,6 +22,28 @@ import { check, type Category, type DoctorCheck, type DoctorContext } from '../m const identityOf = (runtime: LiveMcpRuntime): string => `${runtime.entrypointRealpath} (root ${runtime.packageRoot})`; +/** + * Group the scan by identity, keeping every pid rather than the first (#885). + * + * The scan already knows each process id and this row used to drop all of them + * on the way to a deduplicated identity string. That left an operator told three + * runtimes were answering and given nothing to act on — the reporter had to run + * `ps` themselves to find the five processes behind those three names. + */ +const pidsByIdentity = (runtimes: readonly LiveMcpRuntime[]): Map => { + const grouped = new Map(); + for (const runtime of runtimes) { + const key = identityOf(runtime); + const pids = grouped.get(key); + if (pids === undefined) grouped.set(key, [runtime.pid]); + else pids.push(runtime.pid); + } + return grouped; +}; + +const withPids = (identity: string, pids: readonly number[]): string => + `${identity} pid ${pids.join(', ')}`; + const missingAssets = (runtime: LiveMcpRuntime): string[] => [ ...(runtime.bundlePresent ? [] : ['dist/commitlore.mjs']), ...(runtime.specPresent ? [] : ['spec/SPEC.md']), @@ -86,14 +108,29 @@ export const checkMcpRuntimeIdentity = (ctx: DoctorContext): DoctorCheck => { const identities = [...new Map(scan.runtimes.map((runtime) => [identityOf(runtime), runtime])).values()]; if (identities.length > 1) { + const grouped = pidsByIdentity(scan.runtimes); + const allPids = scan.runtimes.map((runtime) => runtime.pid); return check( id, category, title, 'warn', `${identities.length} distinct live CommitLore runtimes are answering MCP — runtime mismatch: ` + - identities.map(identityOf).join('; '), - null, + identities + .map((runtime) => withPids(identityOf(runtime), grouped.get(identityOf(runtime)) ?? [])) + .join('; ') + + // #885: the row named versions and stopped, so an operator could not tell + // whether it was cosmetic. These runtimes write. Each answers with the + // build it started on, so records committed in one repository on one day + // can come from more than one of them, and nothing on the commit says + // which. Deliberately does not name one of them as the stale one: + // r-liveruntime660 ruled that out, because a copied or stale install can + // report the same version as a current one. + '. Each keeps writing records with the build it started on, so this' + + ' repository can receive records from more than one of them', + 'restart the host sessions that own these pids so every session answers from one install' + + ` (${allPids.join(', ')}) — a host resolves the launcher once at session start and holds` + + ' that runtime until the session ends, so an upgrade does not reach a session already running', false, // Machine state, not this repository's -- see the note above. false, @@ -103,6 +140,7 @@ export const checkMcpRuntimeIdentity = (ctx: DoctorContext): DoctorCheck => { runtime_count: String(scan.runtimes.length), distinct_identities: String(identities.length), package_roots: identities.map((runtime) => runtime.packageRoot).join(', '), + pids: allPids.join(', '), }, }, ); diff --git a/src/commands/update.ts b/src/commands/update.ts index f3fee887..a914addb 100644 --- a/src/commands/update.ts +++ b/src/commands/update.ts @@ -32,7 +32,12 @@ import { join } from 'node:path'; import type { Command } from 'commander'; -import { latestRelease, sourceUrl, type CheckOutcome } from '../core/latest-release.js'; +import { + forgetCachedRelease, + latestRelease, + sourceUrl, + type CheckOutcome, +} from '../core/latest-release.js'; import { packageVersion, readInstalledFile } from '../core/paths.js'; import { isNewerRelease } from '../core/release-version.js'; @@ -87,7 +92,25 @@ export const buildReport = async ( env: NodeJS.ProcessEnv = process.env, ): Promise => { const current = packageVersion(); - const { outcome, checkedAt } = await latestRelease({ env }); + let result = await latestRelease({ env }); + // A "latest" older than the version already running cannot be the latest + // (#885). The answer is cached for a day and only `upgrade` acting clears it, + // so a release installed any other way -- install.sh, the plugin marketplace, + // a manual checkout -- leaves the previous answer standing, and `upgrade` + // then reports an older tag as `latest` and says "this is the newest + // release". Reported against 1.2.5 while the cache still held v1.2.3. + // + // Only strictly-older re-asks. Equal is the ordinary up-to-date answer and + // must stay cached, or the cache would never serve the case it exists for. + if ( + result.cached && + result.outcome.kind === 'resolved' && + isNewerRelease(`v${current}`, result.outcome.tag) + ) { + forgetCachedRelease(env['HOME']); + result = await latestRelease({ env }); + } + const { outcome, checkedAt } = result; const latest = outcome.kind === 'resolved' ? outcome.tag : null; const unknown = describe(outcome); return { diff --git a/test/runtime-identity-action.test.ts b/test/runtime-identity-action.test.ts new file mode 100644 index 00000000..73e8b099 --- /dev/null +++ b/test/runtime-identity-action.test.ts @@ -0,0 +1,118 @@ +/** + * #885: the row named versions and stopped there. + * + * `doctor` reported three distinct live runtimes answering MCP. It was right, + * and every registration on the machine was correct — the old runtimes were + * live processes that outlived the upgrade, because a host resolves the + * launcher once at session start and holds that runtime for as long as the + * session lives. Agent sessions there ran for days. + * + * What made it costly is that these runtimes *write*. Records captured by a + * session started two days earlier are produced by the build that session + * started on, while the operator believes the repository is on the release they + * installed, and nothing on the commit says which runtime produced it. The row + * named three versions, offered no action, and gave an operator no way to tell + * whether that was cosmetic or whether half their records came from old code. + * + * The scan already knew the pids and dropped them on the way to a deduplicated + * identity string, so the reporter had to run `ps` themselves to find the five + * processes behind the three names. + * + * What this must NOT do: name one runtime as the stale one. r-liveruntime660 + * ruled that out — a copied or stale install can report the same version as a + * current one, so a version comparison here proves nothing about identity. + */ + +import { describe, expect, it } from 'vitest'; + +import { checkMcpRuntimeIdentity } from '../src/commands/doctor/checks/delivery-mcp-runtime-identity.js'; +import type { DoctorContext } from '../src/commands/doctor/model.js'; +import type { LiveMcpRuntime, LiveMcpScan } from '../src/core/mcp-probe.js'; + +const runtime = (root: string, pid: number): LiveMcpRuntime => ({ + pid, + entrypointRealpath: `${root}/dist/commitlore.mjs`, + packageRoot: root, + bundlePresent: true, + specPresent: true, +}); + +const contextWith = (scan: LiveMcpScan): DoctorContext => + ({ liveMcpRuntimes: () => scan }) as unknown as DoctorContext; + +/** The reporter's machine: five processes, three distinct runtimes. */ +const reported = (): LiveMcpScan => ({ + available: true, + detail: 'process list', + runtimes: [ + runtime('/data/v1.2.5', 13359), + runtime('/data/v1.2.3', 19075), + runtime('/data/v1.2.3', 23251), + runtime('/data/v1.2.0', 47396), + runtime('/data/v1.2.0', 4869), + ], +}); + +describe('#885 the runtime-mismatch row carries the pids and an action', () => { + it('names every pid, including two processes sharing one identity', () => { + const row = checkMcpRuntimeIdentity(contextWith(reported())); + + expect(row.status).toBe('warn'); + for (const pid of [13359, 19075, 23251, 47396, 4869]) { + expect(row.detail, `pid ${pid} is not in the row`).toContain(String(pid)); + } + // Three identities behind five processes -- the count must still describe + // distinct runtimes, not the process total, or "3 distinct" becomes a lie. + expect(row.detail).toMatch(/^3 distinct live CommitLore runtimes/); + }); + + it('says plainly that the older runtimes are still writing records', () => { + const row = checkMcpRuntimeIdentity(contextWith(reported())); + + // The operator's actual question was whether this is cosmetic. + expect(row.detail).toMatch(/writing records/); + }); + + it('offers an action naming the pids to restart', () => { + const row = checkMcpRuntimeIdentity(contextWith(reported())); + + expect(row.fix, 'the row offered no action at all').not.toBeNull(); + expect(row.fix).toContain('13359'); + // Why restarting is the action and reinstalling is not: the upgrade already + // happened, and it cannot reach a process that is already running. + expect(row.fix).toMatch(/session/); + }); + + it('puts the pids in evidence, where a machine reader can use them', () => { + const row = checkMcpRuntimeIdentity(contextWith(reported())); + + expect(row.evidence['pids']).toBe('13359, 19075, 23251, 47396, 4869'); + expect(row.evidence['distinct_identities']).toBe('3'); + expect(row.evidence['runtime_count']).toBe('5'); + }); + + it('does not declare which runtime is the stale one', () => { + const row = checkMcpRuntimeIdentity(contextWith(reported())); + + // r-liveruntime660: a copied or stale install can report the same version + // as a current one. The row reports what is running; it does not rank them. + expect(`${row.detail} ${row.fix ?? ''}`).not.toMatch(/\b(stale|outdated|obsolete)\b/i); + }); + + it('still does not claim attention — this is the machine, not the checkout', () => { + const row = checkMcpRuntimeIdentity(contextWith(reported())); + + // #750: `init` treats a check needing attention as a step that did not + // complete, and a leftover server on a developer's machine is not that. + expect(row.needsAttention).toBe(false); + }); + + it('says nothing about pids or restarting when one runtime answers', () => { + const row = checkMcpRuntimeIdentity( + contextWith({ available: true, detail: 'process list', runtimes: [runtime('/data/v1.2.5', 13359)] }), + ); + + expect(row.status).toBe('ok'); + expect(row.fix).toBeNull(); + }); +}); diff --git a/test/update-command.test.ts b/test/update-command.test.ts index 2b75e2bf..70240808 100644 --- a/test/update-command.test.ts +++ b/test/update-command.test.ts @@ -16,6 +16,7 @@ import { fileURLToPath } from 'node:url'; import { describe, expect, it } from 'vitest'; import { buildReport, installCommand } from '../src/commands/update.js'; +import { packageVersion } from '../src/core/paths.js'; const PACKAGE_ROOT = resolve(dirname(fileURLToPath(import.meta.url)), '..'); const scratch = (label: string): string => mkdtempSync(join(tmpdir(), `cl-upgrade-${label}-`)); @@ -147,3 +148,61 @@ describe('T-1603 ADR-0037 is enforced, not described', () => { for (const call of calls) expect(call.startsWith('ls-remote')).toBe(true); }); }); + +/** + * #885 (incidental): `upgrade` reported `latest v1.2.3` on a machine running + * 1.2.5, and added "this is the newest release". + * + * The answer is cached in `~/.cache/commitlore/latest-release.json` for a day, + * and only `upgrade` acting calls `forgetCachedRelease`. A release installed any + * other way — `install.sh`, the plugin marketplace, a manual checkout — leaves + * yesterday's answer standing, and the command then reports a tag older than the + * binary printing it. Nothing was wrong with the lookup; the cache had simply + * outlived the fact. + * + * A `latest` older than the version already running cannot be the latest, and + * that is the whole rule. Equality still serves from the cache, or the cache + * would never serve the case it exists for. + */ +describe('#885 a cached latest older than the running version is re-asked', () => { + it('re-asks rather than reporting a tag older than the binary printing it', async () => { + const home = scratch('home-stale'); + + // Yesterday: the newest tag really was older than what is installed now. + const primed = await buildReport({ + COMMITLORE_INSTALL_SOURCE: remoteWithTags(['v0.0.1']), + HOME: home, + }); + expect(primed.latest, 'the cache was not primed').toBe('v0.0.1'); + + // Today: a newer release exists, and the day-long cache still holds v0.0.1. + const report = await buildReport({ + COMMITLORE_INSTALL_SOURCE: remoteWithTags(['v0.0.1', 'v99.0.0']), + HOME: home, + }); + + expect(report.latest).toBe('v99.0.0'); + expect(report.updateAvailable).toBe(true); + }); + + it('still serves the cache when it agrees with the running version', async () => { + const home = scratch('home-current'); + const current = `v${packageVersion()}`; + + const primed = await buildReport({ + COMMITLORE_INSTALL_SOURCE: remoteWithTags([current]), + HOME: home, + }); + expect(primed.latest).toBe(current); + + // The remote has moved, but "up to date" is exactly the answer the cache + // exists to hold. Re-asking here would make the cache decorative. + const report = await buildReport({ + COMMITLORE_INSTALL_SOURCE: remoteWithTags([current, 'v99.0.0']), + HOME: home, + }); + + expect(report.latest).toBe(current); + expect(report.updateAvailable).toBe(false); + }); +}); From 55e8d79fa85c6b21e5a7a159e17297b12c5cc0f1 Mon Sep 17 00:00:00 2001 From: operator Date: Tue, 8 Sep 2026 21:49:08 +0900 Subject: [PATCH 3/4] release: 1.2.6 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A long session killed the process outright, and an upgrade nobody could see had already happened: #884, #885. Thirty-six version pins across eleven files, bumped by parsing the JSON manifests rather than replacing text. The dependency that a text replacement would have corrupted moved since the last release — 1.2.4 had `rolldown` at `~1.2.4`, and 1.2.5 has `get-intrinsic` at `^1.2.5`, twice — which is the reason the rule is to parse rather than to remember which dependency to avoid. The script re-reads every file it touched and reports each remaining occurrence of the old version, so the two that are supposed to remain were seen rather than assumed. Record-Id: r-release126 Provenance: authored Ruled-out: text-replacing the version across the manifests | it also matches dependencies genuinely at that version, and which dependency that is changes from release to release Ruled-out: bumping every v1.2.5 in the READMEs | the install shapes are the only pins; README.md's release-boundary prose is a historical statement no test guards Limit: dist/ and installer/canonical-artifact.json are absent by design, so artifact:verify fails on this tree -- canonical-merge.yml rebuilds them on linux/amd64, where a macOS esbuild output would not match Blast: system Undo: easy Certainty: firm Verified: 109/109 across manifest, readme, release-version and check-release-version tests Verified: the only remaining 1.2.5 strings in the eleven touched files are package-lock.json's two get-intrinsic constraints Unverified: the install one-liners cannot be exercised until the tag exists, because install.sh clones a pinned tag Co-Authored-By: Claude --- .claude-plugin/plugin.json | 2 +- .codex-plugin/plugin.json | 2 +- CHANGELOG.md | 79 ++++++++++++++++++++++++++++++++++++++ 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, 115 insertions(+), 36 deletions(-) diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index 53c5ca90..0a28a4c1 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "commitlore", "displayName": "CommitLore", - "version": "1.2.5", + "version": "1.2.6", "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 268d8063..4f72e395 100644 --- a/.codex-plugin/plugin.json +++ b/.codex-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "commitlore", - "version": "1.2.5", + "version": "1.2.6", "description": "Decision memory from Git history, with verified capture for coding sessions.", "author": { "name": "MongLong0214", diff --git a/CHANGELOG.md b/CHANGELOG.md index e668d61e..46294571 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,85 @@ 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.6 + +A long session killed the process outright, and an upgrade nobody could see had +already happened. + +**`capture` died with a fatal V8 error on a large transcript (#884).** On a +74,173,844-byte session it exited 133 having written no JSON at all: + +``` +# Fatal error in , line 0 +# Fatal JavaScript invalid size error 134217728 +``` + +Not a graceful refusal — an engine abort. `capture` reports outcomes +structurally so a caller can branch on `staged` / `empty` / `rejected` rather +than on the exit code, and this escaped that contract entirely: a wrapper that +had been careful to read the outcome had nothing to read. Reproduced on 1.2.3 as +well, so it was a standing limit rather than a regression the last release +introduced. + +1.2.3 bounded the *prompt* (#873). It did not bound the guard beside it. +`prepareCaptureContext` handed the whole transcript to the guard advisory on one +line and took a 256 KiB window of it on the next. The guard normalises its +proposal through the anti-injection normaliser, whose `\p{Script=Latin}\p{M}*` +global replace collects one match per letter into a single array; past roughly +69 MB that array crosses V8's 2^27 `FixedArray` ceiling and the process dies +inside `Runtime_RegExpExecMultiple`. + +**The guard now reads the same window the prompt carries.** That is a narrowing, +and it is also the more honest alignment: the advisory is shown beside the +prompt, so an advisory computed over a whole session could warn about a decision +the prompt does not contain. Measured on a 74,450,108-byte transcript: exit 0, +`outcome: staged`, 0.7 s end to end, where before the process aborted. + +**It says when it did so.** A truncated scan must never read as a complete one, +so the advisory carries a `proposal-windowed` gap whenever the window dropped +part of the session — an empty `matches` array is then silence about the window, +not a clean scan of the transcript. + +A note on what is *not* fixed: verification still reads the whole transcript on +purpose, so a quote from outside the window still verifies, and its scan builds +per-character structures over the whole file. That survives 74 MB and would fail +somewhere past ~134 M characters. Bounding it would break the guarantee that a +locator names a line of the file it is checked against. + +**`doctor`'s runtime-mismatch row named versions and stopped (#885).** It +reported three distinct live CommitLore runtimes answering MCP while every +registration on the machine was correct — the old runtimes were live processes +that outlived an upgrade, because a host resolves the launcher once at session +start and holds that runtime for the life of the session. Agent sessions there +ran for days. + +Those runtimes write. Records captured by a session started two days earlier +come from the build that session started on, and nothing on the commit says +which. The row gave an operator no way to tell whether that was cosmetic, and +the scan already knew the process ids and discarded them, so the reporter had to +run `ps` themselves to find the five processes behind the three names. + +The row now names every pid, says plainly that each runtime keeps writing +records with the build it started on, and offers an action: restart the host +sessions that own those pids, because an upgrade cannot reach a process that is +already running. It deliberately does not label any runtime the stale one — a +copied or stale install can report the same version as a current one. + +**`upgrade` reported a release older than the binary printing it (#885, not +separately filed).** On a machine running 1.2.5 it said `latest v1.2.3` and +"this is the newest release". The lookup was fine; the answer is cached for a +day in `~/.cache/commitlore/latest-release.json` and only `upgrade` acting +clears it, so a release installed any other way — `install.sh`, the plugin +marketplace, a manual checkout — leaves yesterday's answer standing. A `latest` +older than the version already running cannot be the latest, and that case now +re-asks. Equality still serves from the cache, or the cache would never serve +the case it exists for. + +Not addressed, and left for its own decision: #885 also asks that the producing +runtime be recorded on the record itself. `CommitLore-Version:` is not that +field — SPEC §8 defines it as the protocol version a record targets — so this +needs a new trailer and a wider decision than a patch release should make. + ## 1.2.5 Two flags on `capture` did nothing and said nothing; a third refusal knew the diff --git a/README.ja.md b/README.ja.md index 1977f407..bc6d10d1 100644 --- a/README.ja.md +++ b/README.ja.md @@ -47,18 +47,18 @@

```bash -curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.5/install.sh | sh -s v1.2.5 +curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.6/install.sh | sh -s v1.2.6 ```
先にインストーラーを読みたいですか? ```bash -curl -fsSLO https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.5/install.sh -sh install.sh v1.2.5 +curl -fsSLO https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.6/install.sh +sh install.sh v1.2.6 # あるいはスクリプトを使わずに。スクリプトが作るチェックアウトは自分でも作れます。 -git clone --depth 1 --branch v1.2.5 https://github.com/MongLong0214/commitlore +git clone --depth 1 --branch v1.2.6 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.5/install.sh | sh -s v1.2.5 +curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.6/install.sh | sh -s v1.2.6 ``` Windows: ```powershell -& ([scriptblock]::Create((irm https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.5/install.ps1))) v1.2.5 +& ([scriptblock]::Create((irm https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.6/install.ps1))) v1.2.6 ``` Node.js 22.23.2+ と Git が必要です。スクリプトは何かを書き込む前に両方を確認します。 diff --git a/README.ko.md b/README.ko.md index 6b39adb0..95a6dcc5 100644 --- a/README.ko.md +++ b/README.ko.md @@ -47,18 +47,18 @@

```bash -curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.5/install.sh | sh -s v1.2.5 +curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.6/install.sh | sh -s v1.2.6 ```
먼저 설치기를 읽어 보고 싶나요? ```bash -curl -fsSLO https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.5/install.sh -sh install.sh v1.2.5 +curl -fsSLO https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.6/install.sh +sh install.sh v1.2.6 # 또는 스크립트를 건너뜁니다. 스크립트가 만드는 체크아웃은 직접 만들 수 있습니다. -git clone --depth 1 --branch v1.2.5 https://github.com/MongLong0214/commitlore +git clone --depth 1 --branch v1.2.6 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.5/install.sh | sh -s v1.2.5 +curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.6/install.sh | sh -s v1.2.6 ``` Windows: ```powershell -& ([scriptblock]::Create((irm https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.5/install.ps1))) v1.2.5 +& ([scriptblock]::Create((irm https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.6/install.ps1))) v1.2.6 ``` Node.js 22.23.2+와 Git이 필요합니다. 스크립트는 무엇이든 쓰기 전에 둘을 확인합니다. diff --git a/README.md b/README.md index 3a242739..326c7468 100644 --- a/README.md +++ b/README.md @@ -48,18 +48,18 @@

```bash -curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.5/install.sh | sh -s v1.2.5 +curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.6/install.sh | sh -s v1.2.6 ```
Prefer to read the installer first? ```bash -curl -fsSLO https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.5/install.sh -sh install.sh v1.2.5 +curl -fsSLO https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.6/install.sh +sh install.sh v1.2.6 # Or skip the script: the checkout it makes is one you can make yourself. -git clone --depth 1 --branch v1.2.5 https://github.com/MongLong0214/commitlore +git clone --depth 1 --branch v1.2.6 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.5/install.sh | sh -s v1.2.5 +curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.6/install.sh | sh -s v1.2.6 ``` Windows: ```powershell -& ([scriptblock]::Create((irm https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.5/install.ps1))) v1.2.5 +& ([scriptblock]::Create((irm https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.6/install.ps1))) v1.2.6 ``` 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 df475c1a..052bc311 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.5/install.sh | sh -s v1.2.5 +curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.6/install.sh | sh -s v1.2.6 ```
想先阅读安装器吗? ```bash -curl -fsSLO https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.5/install.sh -sh install.sh v1.2.5 +curl -fsSLO https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.6/install.sh +sh install.sh v1.2.6 # 或者跳过脚本:它创建的检出,你自己也能创建。 -git clone --depth 1 --branch v1.2.5 https://github.com/MongLong0214/commitlore +git clone --depth 1 --branch v1.2.6 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.5/install.sh | sh -s v1.2.5 +curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.6/install.sh | sh -s v1.2.6 ``` Windows: ```powershell -& ([scriptblock]::Create((irm https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.5/install.ps1))) v1.2.5 +& ([scriptblock]::Create((irm https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.6/install.ps1))) v1.2.6 ``` 需要 Node.js 22.23.2+ 和 Git。脚本会在写入任何内容前检查两者。 diff --git a/install.ps1 b/install.ps1 index 7d38ee6f..6adf1d27 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.5/install.ps1 | iex - & ([scriptblock]::Create((irm https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.5/install.ps1))) v1.2.5 + irm https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.6/install.ps1 | iex + & ([scriptblock]::Create((irm https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.6/install.ps1))) v1.2.6 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 c1d78dce..b2949f8a 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.5/install.sh | sh -# curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.5/install.sh | sh -s v1.2.5 +# curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.6/install.sh | sh +# curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.6/install.sh | sh -s v1.2.6 # # **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 afc2d547..8ad5d222 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "commitlore", - "version": "1.2.5", + "version": "1.2.6", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "commitlore", - "version": "1.2.5", + "version": "1.2.6", "license": "MIT", "dependencies": { "@modelcontextprotocol/sdk": "^1.30.0", diff --git a/package.json b/package.json index aaccc9ff..4725b8b1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "commitlore", - "version": "1.2.5", + "version": "1.2.6", "description": "Git-native, lifecycle-aware decision memory for coding agents", "license": "MIT", "private": true, diff --git a/server.json b/server.json index 19048891..8582477b 100644 --- a/server.json +++ b/server.json @@ -8,7 +8,7 @@ "source": "github" }, "websiteUrl": "https://github.com/MongLong0214/commitlore#readme", - "version": "1.2.5", + "version": "1.2.6", "_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.5/install.sh | sh -s v1.2.5", - "release": "https://github.com/MongLong0214/commitlore/releases/tag/v1.2.5" + "installer": "curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.6/install.sh | sh -s v1.2.6", + "release": "https://github.com/MongLong0214/commitlore/releases/tag/v1.2.6" }, "runtime": { "transport": "stdio", From 369e2e6554b8616d62ad59c305902dc3394dc177 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 12:51:52 +0000 Subject: [PATCH 4/4] Rebuild the canonical bundle for #886 `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-canonmerge886 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 --- .../checks/delivery-mcp-runtime-identity.js | 39 ++++++++++++- .../delivery-mcp-runtime-identity.js.map | 2 +- dist/commands/update.js | 20 ++++++- dist/commands/update.js.map | 2 +- dist/commitlore.mjs | 56 +++++++++++++++---- dist/core/capture-prepare.js | 35 ++++++++++-- dist/core/capture-prepare.js.map | 2 +- dist/core/harvest.d.ts | 12 +++- dist/core/harvest.js | 11 +++- dist/core/harvest.js.map | 2 +- dist/core/pending.d.ts | 10 +++- dist/core/pending.js.map | 2 +- installer/canonical-artifact.json | 28 +++++----- 13 files changed, 179 insertions(+), 42 deletions(-) diff --git a/dist/commands/doctor/checks/delivery-mcp-runtime-identity.js b/dist/commands/doctor/checks/delivery-mcp-runtime-identity.js index e8df13a2..08bf7967 100644 --- a/dist/commands/doctor/checks/delivery-mcp-runtime-identity.js +++ b/dist/commands/doctor/checks/delivery-mcp-runtime-identity.js @@ -17,6 +17,27 @@ import { check } from '../model.js'; * information (#750). */ const identityOf = (runtime) => `${runtime.entrypointRealpath} (root ${runtime.packageRoot})`; +/** + * Group the scan by identity, keeping every pid rather than the first (#885). + * + * The scan already knows each process id and this row used to drop all of them + * on the way to a deduplicated identity string. That left an operator told three + * runtimes were answering and given nothing to act on — the reporter had to run + * `ps` themselves to find the five processes behind those three names. + */ +const pidsByIdentity = (runtimes) => { + const grouped = new Map(); + for (const runtime of runtimes) { + const key = identityOf(runtime); + const pids = grouped.get(key); + if (pids === undefined) + grouped.set(key, [runtime.pid]); + else + pids.push(runtime.pid); + } + return grouped; +}; +const withPids = (identity, pids) => `${identity} pid ${pids.join(', ')}`; const missingAssets = (runtime) => [ ...(runtime.bundlePresent ? [] : ['dist/commitlore.mjs']), ...(runtime.specPresent ? [] : ['spec/SPEC.md']), @@ -59,8 +80,23 @@ export const checkMcpRuntimeIdentity = (ctx) => { } const identities = [...new Map(scan.runtimes.map((runtime) => [identityOf(runtime), runtime])).values()]; if (identities.length > 1) { + const grouped = pidsByIdentity(scan.runtimes); + const allPids = scan.runtimes.map((runtime) => runtime.pid); return check(id, category, title, 'warn', `${identities.length} distinct live CommitLore runtimes are answering MCP — runtime mismatch: ` + - identities.map(identityOf).join('; '), null, false, + identities + .map((runtime) => withPids(identityOf(runtime), grouped.get(identityOf(runtime)) ?? [])) + .join('; ') + + // #885: the row named versions and stopped, so an operator could not tell + // whether it was cosmetic. These runtimes write. Each answers with the + // build it started on, so records committed in one repository on one day + // can come from more than one of them, and nothing on the commit says + // which. Deliberately does not name one of them as the stale one: + // r-liveruntime660 ruled that out, because a copied or stale install can + // report the same version as a current one. + '. Each keeps writing records with the build it started on, so this' + + ' repository can receive records from more than one of them', 'restart the host sessions that own these pids so every session answers from one install' + + ` (${allPids.join(', ')}) — a host resolves the launcher once at session start and holds` + + ' that runtime until the session ends, so an upgrade does not reach a session already running', false, // Machine state, not this repository's -- see the note above. false, { evidence: { @@ -68,6 +104,7 @@ export const checkMcpRuntimeIdentity = (ctx) => { runtime_count: String(scan.runtimes.length), distinct_identities: String(identities.length), package_roots: identities.map((runtime) => runtime.packageRoot).join(', '), + pids: allPids.join(', '), }, }); } diff --git a/dist/commands/doctor/checks/delivery-mcp-runtime-identity.js.map b/dist/commands/doctor/checks/delivery-mcp-runtime-identity.js.map index 30a66dc6..be438f89 100644 --- a/dist/commands/doctor/checks/delivery-mcp-runtime-identity.js.map +++ b/dist/commands/doctor/checks/delivery-mcp-runtime-identity.js.map @@ -1 +1 @@ -{"version":3,"file":"delivery-mcp-runtime-identity.js","sourceRoot":"","sources":["../../../../src/commands/doctor/checks/delivery-mcp-runtime-identity.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAGhE,OAAO,EAAE,KAAK,EAAuD,MAAM,aAAa,CAAC;AAEzF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,GAAG,CAAC,OAAuB,EAAU,EAAE,CACrD,GAAG,OAAO,CAAC,kBAAkB,UAAU,OAAO,CAAC,WAAW,GAAG,CAAC;AAEhE,MAAM,aAAa,GAAG,CAAC,OAAuB,EAAY,EAAE,CAAC;IAC3D,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;IACzD,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;CACjD,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,GAAkB,EAAe,EAAE;IACzE,MAAM,EAAE,GAAG,sBAAsB,CAAC;IAClC,MAAM,KAAK,GAAG,2BAA2B,CAAC;IAC1C,MAAM,QAAQ,GAAa,UAAU,CAAC;IACtC,MAAM,IAAI,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;IAEnC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QACpB,OAAO,KAAK,CACV,EAAE,EACF,QAAQ,EACR,KAAK,EACL,MAAM,EACN,qDAAqD,IAAI,CAAC,MAAM,EAAE,EAClE,IAAI,EACJ,KAAK;QACL,8DAA8D;QAC9D,KAAK,EACL,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAChE,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,QAAQ;aACpB,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,WAAW,eAAe,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;aAC7F,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,kEAAkE;QAClE,wEAAwE;QACxE,yEAAyE;QACzE,uEAAuE;QACvE,0EAA0E;QAC1E,6CAA6C;QAC7C,OAAO,KAAK,CACV,EAAE,EACF,QAAQ,EACR,KAAK,EACL,MAAM,EACN,GAAG,QAAQ,CAAC,MAAM,iDAAiD,MAAM,EAAE,EAC3E,IAAI,EACJ,KAAK;QACL,8DAA8D;QAC9D,KAAK,EACL;YACE,QAAQ,EAAE;gBACR,SAAS,EAAE,IAAI,CAAC,MAAM;gBACtB,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC3C,cAAc,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;aAC1E;SACF,CACF,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACzG,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CACV,EAAE,EACF,QAAQ,EACR,KAAK,EACL,MAAM,EACN,GAAG,UAAU,CAAC,MAAM,2EAA2E;YAC7F,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EACvC,IAAI,EACJ,KAAK;QACL,8DAA8D;QAC9D,KAAK,EACL;YACE,QAAQ,EAAE;gBACR,SAAS,EAAE,IAAI,CAAC,MAAM;gBACtB,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC3C,mBAAmB,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;gBAC9C,aAAa,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;aAC3E;SACF,CACF,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CACV,EAAE,EACF,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,UAAU,CAAC,MAAM,KAAK,CAAC;QACrB,CAAC,CAAC,0CAA0C;QAC5C,CAAC,CAAC,qDAAqD,UAAU,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,EAAE,EACrF,IAAI,EACJ,KAAK,EACL,SAAS,EACT;QACE,QAAQ,EAAE;YACR,SAAS,EAAE,IAAI,CAAC,MAAM;YACtB,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC3C,mBAAmB,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;SAC/C;KACF,CACF,CAAC;AACJ,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"delivery-mcp-runtime-identity.js","sourceRoot":"","sources":["../../../../src/commands/doctor/checks/delivery-mcp-runtime-identity.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/commands/update.js b/dist/commands/update.js index 1379a0dc..a5bee61b 100644 --- a/dist/commands/update.js +++ b/dist/commands/update.js @@ -28,7 +28,7 @@ import { spawnSync } from 'node:child_process'; import { readFileSync, realpathSync } from 'node:fs'; import { homedir } from 'node:os'; import { join } from 'node:path'; -import { latestRelease, sourceUrl } from '../core/latest-release.js'; +import { forgetCachedRelease, latestRelease, sourceUrl, } from '../core/latest-release.js'; import { packageVersion, readInstalledFile } from '../core/paths.js'; import { isNewerRelease } from '../core/release-version.js'; /** @@ -68,7 +68,23 @@ const describe = (outcome) => { }; export const buildReport = async (env = process.env) => { const current = packageVersion(); - const { outcome, checkedAt } = await latestRelease({ env }); + let result = await latestRelease({ env }); + // A "latest" older than the version already running cannot be the latest + // (#885). The answer is cached for a day and only `upgrade` acting clears it, + // so a release installed any other way -- install.sh, the plugin marketplace, + // a manual checkout -- leaves the previous answer standing, and `upgrade` + // then reports an older tag as `latest` and says "this is the newest + // release". Reported against 1.2.5 while the cache still held v1.2.3. + // + // Only strictly-older re-asks. Equal is the ordinary up-to-date answer and + // must stay cached, or the cache would never serve the case it exists for. + if (result.cached && + result.outcome.kind === 'resolved' && + isNewerRelease(`v${current}`, result.outcome.tag)) { + forgetCachedRelease(env['HOME']); + result = await latestRelease({ env }); + } + const { outcome, checkedAt } = result; const latest = outcome.kind === 'resolved' ? outcome.tag : null; const unknown = describe(outcome); return { diff --git a/dist/commands/update.js.map b/dist/commands/update.js.map index 251fd146..909133d5 100644 --- a/dist/commands/update.js.map +++ b/dist/commands/update.js.map @@ -1 +1 @@ -{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/commitlore.mjs b/dist/commitlore.mjs index dbc2b9e7..c858977e 100755 --- a/dist/commitlore.mjs +++ b/dist/commitlore.mjs @@ -12274,10 +12274,10 @@ var buildHarvestContract = () => { "" ].join("\n"); }; -var buildHarvestPromptWithWindow = (input) => { +var buildHarvestPromptWithWindow = (input, precomputed) => { const entries = loadVocabulary().filter((entry) => entry.key !== "Verified"); const diff = input.diff.trim() === "" ? "(no diff)" : input.diff.replace(/\n+$/, ""); - const { text, window } = windowTranscript(input.transcript); + const { text, window } = precomputed ?? windowTranscript(input.transcript); const prompt = [ "# CommitLore harvest", "", @@ -16973,15 +16973,17 @@ var computeGuardAdvisory = (opts) => { ...opts.requireSignedDirective === true ? { requireSignedDirective: true } : {}, ...opts.trustedSignerFingerprints === void 0 ? {} : { trustedSignerFingerprints: opts.trustedSignerFingerprints } }); + const gaps = deriveGuardGaps(result); + if (opts.proposalTruncated) gaps.push("proposal-windowed"); return { matches: result.matches.map(renderGuardMatch), - gaps: deriveGuardGaps(result), + gaps, disclosure: GUARD_DISCLOSURE }; } catch { return { matches: [], - gaps: ["history-unavailable"], + gaps: opts.proposalTruncated ? ["history-unavailable", "proposal-windowed"] : ["history-unavailable"], disclosure: GUARD_DISCLOSURE }; } @@ -17026,8 +17028,10 @@ var prepareValues = (opts) => { ); } const diffPaths = extractPathsFromDiff(diff); + const windowed = windowTranscript(transcript); const advisory = opts.skipGuard === true ? null : computeGuardAdvisory({ - proposal: transcript, + proposal: windowed.text, + proposalTruncated: windowed.window.truncated, paths: diffPaths, cwd, ...opts.readOnly ? { readOnly: true } : {}, @@ -17035,7 +17039,7 @@ var prepareValues = (opts) => { ...opts.requireSignedDirective === true ? { requireSignedDirective: true } : {}, ...opts.trustedSignerFingerprints === void 0 ? {} : { trustedSignerFingerprints: opts.trustedSignerFingerprints } }); - const harvest2 = buildHarvestPromptWithWindow({ transcript, diff }); + const harvest2 = buildHarvestPromptWithWindow({ transcript, diff }, windowed); return { base_head: baseHead, staged_diff_hash: stagedDiffHash, @@ -21269,6 +21273,17 @@ var checkMcpLifecycle = (ctx) => { // src/commands/doctor/checks/delivery-mcp-runtime-identity.ts var identityOf2 = (runtime) => `${runtime.entrypointRealpath} (root ${runtime.packageRoot})`; +var pidsByIdentity = (runtimes) => { + const grouped = /* @__PURE__ */ new Map(); + for (const runtime of runtimes) { + const key = identityOf2(runtime); + const pids = grouped.get(key); + if (pids === void 0) grouped.set(key, [runtime.pid]); + else pids.push(runtime.pid); + } + return grouped; +}; +var withPids = (identity, pids) => `${identity} pid ${pids.join(", ")}`; var missingAssets = (runtime) => [ ...runtime.bundlePresent ? [] : ["dist/commitlore.mjs"], ...runtime.specPresent ? [] : ["spec/SPEC.md"] @@ -21316,13 +21331,22 @@ var checkMcpRuntimeIdentity = (ctx) => { } const identities = [...new Map(scan2.runtimes.map((runtime) => [identityOf2(runtime), runtime])).values()]; if (identities.length > 1) { + const grouped = pidsByIdentity(scan2.runtimes); + const allPids = scan2.runtimes.map((runtime) => runtime.pid); return check( id2, category2, title2, "warn", - `${identities.length} distinct live CommitLore runtimes are answering MCP \u2014 runtime mismatch: ` + identities.map(identityOf2).join("; "), - null, + `${identities.length} distinct live CommitLore runtimes are answering MCP \u2014 runtime mismatch: ` + identities.map((runtime) => withPids(identityOf2(runtime), grouped.get(identityOf2(runtime)) ?? [])).join("; ") + // #885: the row named versions and stopped, so an operator could not tell + // whether it was cosmetic. These runtimes write. Each answers with the + // build it started on, so records committed in one repository on one day + // can come from more than one of them, and nothing on the commit says + // which. Deliberately does not name one of them as the stale one: + // r-liveruntime660 ruled that out, because a copied or stale install can + // report the same version as a current one. + ". Each keeps writing records with the build it started on, so this repository can receive records from more than one of them", + `restart the host sessions that own these pids so every session answers from one install (${allPids.join(", ")}) \u2014 a host resolves the launcher once at session start and holds that runtime until the session ends, so an upgrade does not reach a session already running`, false, // Machine state, not this repository's -- see the note above. false, @@ -21331,7 +21355,8 @@ var checkMcpRuntimeIdentity = (ctx) => { discovery: scan2.detail, runtime_count: String(scan2.runtimes.length), distinct_identities: String(identities.length), - package_roots: identities.map((runtime) => runtime.packageRoot).join(", ") + package_roots: identities.map((runtime) => runtime.packageRoot).join(", "), + pids: allPids.join(", ") } } ); @@ -22292,6 +22317,12 @@ var latestRelease = async (opts = {}) => { } return { outcome, cached: false, checkedAt }; }; +var forgetCachedRelease = (home) => { + try { + rmSync3(cachePath(home), { force: true }); + } catch { + } +}; var latestReleaseSync = (opts = {}) => { const env = opts.env ?? process.env; const now = opts.now ?? Date.now; @@ -23883,7 +23914,12 @@ var describe = (outcome) => { }; var buildReport2 = async (env = process.env) => { const current = packageVersion(); - const { outcome, checkedAt } = await latestRelease({ env }); + let result = await latestRelease({ env }); + if (result.cached && result.outcome.kind === "resolved" && isNewerRelease(`v${current}`, result.outcome.tag)) { + forgetCachedRelease(env["HOME"]); + result = await latestRelease({ env }); + } + const { outcome, checkedAt } = result; const latest2 = outcome.kind === "resolved" ? outcome.tag : null; const unknown2 = describe(outcome); return { diff --git a/dist/core/capture-prepare.js b/dist/core/capture-prepare.js index 64361834..3587a408 100644 --- a/dist/core/capture-prepare.js +++ b/dist/core/capture-prepare.js @@ -9,7 +9,7 @@ import { createHash, randomBytes } from 'node:crypto'; import { markCaptureError } from './capture-outcome.js'; import { execGitOrThrow } from './git.js'; import { guard, renderGuardMatch } from './guard.js'; -import { buildHarvestPromptWithWindow } from './harvest.js'; +import { windowTranscript, buildHarvestPromptWithWindow } from './harvest.js'; import { policySourceLabel, resolvePolicy } from './capture-policy.js'; import { createPending, makePreparedPending, } from './pending.js'; import { isFullObjectId } from './types.js'; @@ -49,6 +49,20 @@ const deriveGuardGaps = (result) => { /** * Compute the guard advisory for a capture. Never throws — any error becomes * a recorded gap. The capture must always succeed regardless of guard outcome. + * + * "Never throws" was not enough (#884). This was handed the *whole* transcript + * while the prompt beside it was already windowed, and `guard` normalises its + * proposal through `normalizeForMatch` — whose `\p{Script=Latin}\p{M}*` global + * replace collects one match per letter. On a 74 MB session that array passed + * V8's 2^27 FixedArray ceiling and the process died inside + * `Runtime_RegExpExecMultiple` with `invalid size error 134217728`, exit 133, + * before a byte of JSON was written. A fatal engine abort is not catchable, so + * the try/catch below could not honour its own contract; the input had to stop + * being unbounded instead. + * + * `proposalTruncated` records that the advisory saw the window rather than the + * session, so an empty `matches` array is never mistaken for a clean scan of + * the whole transcript. */ const computeGuardAdvisory = (opts) => { try { @@ -63,9 +77,12 @@ const computeGuardAdvisory = (opts) => { ? {} : { trustedSignerFingerprints: opts.trustedSignerFingerprints }), }); + const gaps = deriveGuardGaps(result); + if (opts.proposalTruncated) + gaps.push('proposal-windowed'); return { matches: result.matches.map(renderGuardMatch), - gaps: deriveGuardGaps(result), + gaps, disclosure: GUARD_DISCLOSURE, }; } @@ -73,7 +90,9 @@ const computeGuardAdvisory = (opts) => { // Guard failure degrades to a recorded gap — never a capture failure return { matches: [], - gaps: ['history-unavailable'], + gaps: opts.proposalTruncated + ? ['history-unavailable', 'proposal-windowed'] + : ['history-unavailable'], disclosure: GUARD_DISCLOSURE, }; } @@ -114,10 +133,16 @@ const prepareValues = (opts) => { throw markCaptureError(new Error(`unattended capture is off for this repository (${policySourceLabel(policy)}: "unattended": true with mode "auto" opts in) — nothing was prepared`), 'rejected'); } const diffPaths = extractPathsFromDiff(diff); + // Windowed once, then used for both the advisory and the prompt. The guard + // reads the same bytes the model is shown: an advisory computed over the + // whole session could warn about a decision that is not in the prompt at all, + // and reading the whole session is what killed the process in #884. + const windowed = windowTranscript(transcript); const advisory = opts.skipGuard === true ? null : computeGuardAdvisory({ - proposal: transcript, + proposal: windowed.text, + proposalTruncated: windowed.window.truncated, paths: diffPaths, cwd, ...(opts.readOnly ? { readOnly: true } : {}), @@ -127,7 +152,7 @@ const prepareValues = (opts) => { ? {} : { trustedSignerFingerprints: opts.trustedSignerFingerprints }), }); - const harvest = buildHarvestPromptWithWindow({ transcript, diff }); + const harvest = buildHarvestPromptWithWindow({ transcript, diff }, windowed); return { base_head: baseHead, staged_diff_hash: stagedDiffHash, diff --git a/dist/core/capture-prepare.js.map b/dist/core/capture-prepare.js.map index 5a5db6e6..9a116688 100644 --- a/dist/core/capture-prepare.js.map +++ b/dist/core/capture-prepare.js.map @@ -1 +1 @@ -{"version":3,"file":"capture-prepare.js","sourceRoot":"","sources":["../../src/core/capture-prepare.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"capture-prepare.js","sourceRoot":"","sources":["../../src/core/capture-prepare.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/core/harvest.d.ts b/dist/core/harvest.d.ts index 0e7df6af..487ee0fc 100644 --- a/dist/core/harvest.d.ts +++ b/dist/core/harvest.d.ts @@ -136,7 +136,17 @@ export declare const buildHarvestContract: () => string; * randomness, no model — so the same transcript, diff and budget always produce * the same bytes. */ -export declare const buildHarvestPromptWithWindow: (input: HarvestInput) => { +export declare const buildHarvestPromptWithWindow: (input: HarvestInput, +/** + * A window the caller already computed. `windowTranscript` splits the whole + * transcript to find its tail, so a caller that needs the window for its own + * reasons — capture hands the same bytes to the guard (#884) — passes it back + * rather than paying for a second split of a session that can be tens of MB. + */ +precomputed?: { + text: string; + window: TranscriptWindow; +}) => { prompt: string; window: TranscriptWindow; }; diff --git a/dist/core/harvest.js b/dist/core/harvest.js index eb3fdb13..9275b48e 100644 --- a/dist/core/harvest.js +++ b/dist/core/harvest.js @@ -420,10 +420,17 @@ export const buildHarvestContract = () => { * randomness, no model — so the same transcript, diff and budget always produce * the same bytes. */ -export const buildHarvestPromptWithWindow = (input) => { +export const buildHarvestPromptWithWindow = (input, +/** + * A window the caller already computed. `windowTranscript` splits the whole + * transcript to find its tail, so a caller that needs the window for its own + * reasons — capture hands the same bytes to the guard (#884) — passes it back + * rather than paying for a second split of a session that can be tens of MB. + */ +precomputed) => { const entries = loadVocabulary().filter((entry) => entry.key !== 'Verified'); const diff = input.diff.trim() === '' ? '(no diff)' : input.diff.replace(/\n+$/, ''); - const { text, window } = windowTranscript(input.transcript); + const { text, window } = precomputed ?? windowTranscript(input.transcript); const prompt = [ '# CommitLore harvest', '', diff --git a/dist/core/harvest.js.map b/dist/core/harvest.js.map index 5ddbf8b0..f0d93a36 100644 --- a/dist/core/harvest.js.map +++ b/dist/core/harvest.js.map @@ -1 +1 @@ -{"version":3,"file":"harvest.js","sourceRoot":"","sources":["../../src/core/harvest.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"harvest.js","sourceRoot":"","sources":["../../src/core/harvest.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/core/pending.d.ts b/dist/core/pending.d.ts index 9e3061cb..deb2d49c 100644 --- a/dist/core/pending.d.ts +++ b/dist/core/pending.d.ts @@ -8,8 +8,14 @@ * it does not make a read-modify-write exclusive. */ import type { RenderedGuardMatch } from './guard.js'; -/** The three verification gaps, in canonical order (T-1024's closed vocabulary). */ -export type GuardGap = 'history-unavailable' | 'shallow-history' | 'notes-unfetched'; +/** + * The verification gaps, in canonical order (T-1024's closed vocabulary). + * + * `proposal-windowed` (#884) says the advisory read the same bounded window the + * prompt carries rather than the whole session, so an empty `matches` array is + * silence about the window and not about the transcript. + */ +export type GuardGap = 'history-unavailable' | 'shallow-history' | 'notes-unfetched' | 'proposal-windowed'; export interface GuardAdvisory { matches: RenderedGuardMatch[]; gaps: GuardGap[]; diff --git a/dist/core/pending.js.map b/dist/core/pending.js.map index 42bc6b49..9fbb73f8 100644 --- a/dist/core/pending.js.map +++ b/dist/core/pending.js.map @@ -1 +1 @@ -{"version":3,"file":"pending.js","sourceRoot":"","sources":["../../src/core/pending.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"pending.js","sourceRoot":"","sources":["../../src/core/pending.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 ac428bdc..33a3b505 100644 --- a/installer/canonical-artifact.json +++ b/installer/canonical-artifact.json @@ -15,10 +15,10 @@ "tsconfig.json", "src" ], - "sha256": "a9983e1d679fb5ac209c43b7b3e67c5c14fa540d7153a40421194cae60e96310" + "sha256": "c59faab78dff7c40886adfe086d62f6f558f8187ba66675fe3e4f492330465ed" }, "artifact": { - "sha256": "33af8c43e7d90253bcdfecee3baede439188ef1a57ff179f0e0268ccaa933d81", + "sha256": "097bf2a837cf30f59bad6bbeb0727e005803f9233e256881b2996b00411ba682", "files": [ { "path": "dist/cli.d.ts", @@ -206,11 +206,11 @@ }, { "path": "dist/commands/doctor/checks/delivery-mcp-runtime-identity.js", - "sha256": "6038899e6b1e95ef69c6768d84f2696d0eb7543b3ce4f314f3ea990699d71d25" + "sha256": "4333840dcd848966df31297dbfdc93afb0237b7d2797cec814e54ca667a3b23f" }, { "path": "dist/commands/doctor/checks/delivery-mcp-runtime-identity.js.map", - "sha256": "b611a531784f09d7e88553d51d68253cb6e74efa10b161d3a77f5c5143dd030a" + "sha256": "64c663124806428166cd109054021ec9cc58eff885b273fe6fb51cd89ab5f434" }, { "path": "dist/commands/doctor/checks/history-history-depth.d.ts", @@ -602,11 +602,11 @@ }, { "path": "dist/commands/update.js", - "sha256": "ccb26bd71499b36d27ef8e94f358896e593bb21ee111d8021528b0eff97266b1" + "sha256": "738f9bb29dd9fd86b57fa0f672d01307b83c17adf4670bbc0f2ffcbc00e69b61" }, { "path": "dist/commands/update.js.map", - "sha256": "753c3619e3cc58cbc01415a6931a6f8415d4d06affa5de97ded2c054477ae860" + "sha256": "658910611ceed64bdbcadc16c10d94f321b94170eb4a796ebacf760c2b20c3b8" }, { "path": "dist/commands/validate.d.ts", @@ -622,7 +622,7 @@ }, { "path": "dist/commitlore.mjs", - "sha256": "e5c54a1bcada00b43660db4b1de9e30c08b475f013eb6de34b2225e1777625ba" + "sha256": "a6f7cd5532fd0c0967637a176b1217cb09a3136090e2bcb38d5ff29e2131274b" }, { "path": "dist/core/agent-configs.d.ts", @@ -702,11 +702,11 @@ }, { "path": "dist/core/capture-prepare.js", - "sha256": "dbfd507ae6b20f19d6aab3edc776f815279e2f2d631c4c37a866be2ca7b94297" + "sha256": "3e52098c3f2b1525d0a6df264a358dc8a21759ac0b18654109e2bef7d45da637" }, { "path": "dist/core/capture-prepare.js.map", - "sha256": "9e3ba12b2a7dceea12de96c417235a95e3409febaeb7d3cd606724ca35379ad1" + "sha256": "58580a32c31fd4a28b0f0bc6a175995e2f18bde25287e736f6082f3ea7ad3924" }, { "path": "dist/core/capture-shadow.d.ts", @@ -806,15 +806,15 @@ }, { "path": "dist/core/harvest.d.ts", - "sha256": "3acccd3fd069dcd81636aa8262c9c425604731fab47eaf9e75b817d57916823c" + "sha256": "0dc07b9032e3fb831f849d56f86a02bbc931f1a73730bd8a2db6284bc90b88fc" }, { "path": "dist/core/harvest.js", - "sha256": "47dd78f3dfe82757b7d71d2c2e96a3d8fef69d42a49e6611a6463352b139baea" + "sha256": "3b26739f987ee5af1d1c6a0299db60b2b640297de2cde365a87597a1a4362e2c" }, { "path": "dist/core/harvest.js.map", - "sha256": "27166b15d3c43f9949ec5650d490286f68c34e753845e928189c2b809917957c" + "sha256": "1c82a6d89ed5215144cc6009b71edf13bff6f3f32282d13d824a8d859d7f570f" }, { "path": "dist/core/hermes-config.d.ts", @@ -950,7 +950,7 @@ }, { "path": "dist/core/pending.d.ts", - "sha256": "e59a5ef0a1f371f5db10bf07f0abc61a23982e82694918012e2b84e9d9ba6a06" + "sha256": "9c3ec73fd052c96f1ba85ac167f27ce4571d8c098405b80c5e1e14b5ecf8bfcf" }, { "path": "dist/core/pending.js", @@ -958,7 +958,7 @@ }, { "path": "dist/core/pending.js.map", - "sha256": "ea9effb2e216cc6da4c7b9b019eac47f1e41150ab838fbafbd9cd70db30052e0" + "sha256": "ed2ba9bbbdbe4116f0415c3eb79892f6c6e2caa91f970c2c835e7c90340d5fa1" }, { "path": "dist/core/query.d.ts",