diff --git a/.agents/pm/history/pm-starter-y8hb.jsonl b/.agents/pm/history/pm-starter-y8hb.jsonl new file mode 100644 index 0000000..b9e38fc --- /dev/null +++ b/.agents/pm/history/pm-starter-y8hb.jsonl @@ -0,0 +1,2 @@ +{"ts":"2026-07-24T20:24:56.684Z","author":"claude-opus-5","op":"create","patch":[{"op":"add","path":"/metadata/id","value":"pm-starter-y8hb"},{"op":"add","path":"/metadata/title","value":"pm item reads are capped at Node's 1 MiB spawnSync default, so a mature tracker fails with no diagnosis"},{"op":"add","path":"/metadata/description","value":"readPmItems (the documented safe-read demo pattern) spawns the pm CLI to read items but passes no maxBuffer, so Node's 1 MiB spawnSync default applies. Measured against a real 443-item pm workspace, this package's exact argv returns 1054002 bytes (ENOBUFS today). Past the cap the child is killed with status null, signal SIGTERM, error.code ENOBUFS and EMPTY stderr, so the failure surfaces with nothing to diagnose; at larger sizes stdout is genuinely truncated mid-document (verified: a 100 KiB cap yields 'Unterminated string in JSON at position 130829'). Sibling packages pm-changelog, pm-context, pm-brief, pm-graph and pm-linear already cap explicitly; this package was a straggler. Fix: cap at 64 MiB and name an ENOBUFS overrun explicitly instead of reporting an unexplained failure (or, for the never-throw demo/search paths, an empty result set)."},{"op":"add","path":"/metadata/type","value":"Issue"},{"op":"add","path":"/metadata/status","value":"open"},{"op":"add","path":"/metadata/priority","value":1},{"op":"add","path":"/metadata/tags","value":["agent-ux","maxbuffer","production-readiness","real-data"]},{"op":"add","path":"/metadata/created_at","value":"2026-07-24T20:24:56.684Z"},{"op":"add","path":"/metadata/updated_at","value":"2026-07-24T20:24:56.684Z"},{"op":"add","path":"/metadata/author","value":"claude-opus-5"}],"before_hash":"3cc22dff72be7b14824654a7a64ea62b04799939b2fee54c1b5f52ca60bf6df0","after_hash":"5b53633a1ae80cf075422bbb371368b814f717911fdfa8eaccc87e083abf0c9f","message":"File the 1 MiB pm-read ceiling found by a fleet-wide audit against a real 443-item workspace"} +{"ts":"2026-07-24T20:24:57.125Z","author":"claude-opus-5","op":"close","patch":[{"op":"replace","path":"/metadata/updated_at","value":"2026-07-24T20:24:57.125Z"},{"op":"replace","path":"/metadata/status","value":"closed"},{"op":"add","path":"/metadata/closed_at","value":"2026-07-24T20:24:57.124Z"},{"op":"add","path":"/metadata/resolution","value":"Added PM_JSON_MAX_BUFFER (64 MiB) and passed it to the pm read; ENOBUFS is now reported as a buffer overrun naming the limit and the remedy."},{"op":"add","path":"/metadata/expected_result","value":"Reads of a mature tracker succeed, and any future overrun reports its real cause instead of an unexplained failure or a silent empty result."},{"op":"add","path":"/metadata/actual_result","value":"Verified with the package's exact argv against the real 443-item workspace: default cap -> status null / ENOBUFS; 64 MiB cap -> status 0 with the complete payload. Typecheck and the full test suite pass."},{"op":"add","path":"/metadata/close_reason","value":"Capped the pm read at 64 MiB and made an ENOBUFS overrun self-describing"}],"before_hash":"5b53633a1ae80cf075422bbb371368b814f717911fdfa8eaccc87e083abf0c9f","after_hash":"249ea1d37a1bf3de8899a814294893ccb95edb37de6ee238bc4fd5c2001b0f76","message":"Close after verifying the capped read against the real workspace"} diff --git a/.agents/pm/issues/pm-starter-y8hb.toon b/.agents/pm/issues/pm-starter-y8hb.toon new file mode 100644 index 0000000..1acb52f --- /dev/null +++ b/.agents/pm/issues/pm-starter-y8hb.toon @@ -0,0 +1,16 @@ +id: pm-starter-y8hb +title: "pm item reads are capped at Node's 1 MiB spawnSync default, so a mature tracker fails with no diagnosis" +description: "readPmItems (the documented safe-read demo pattern) spawns the pm CLI to read items but passes no maxBuffer, so Node's 1 MiB spawnSync default applies. Measured against a real 443-item pm workspace, this package's exact argv returns 1054002 bytes (ENOBUFS today). Past the cap the child is killed with status null, signal SIGTERM, error.code ENOBUFS and EMPTY stderr, so the failure surfaces with nothing to diagnose; at larger sizes stdout is genuinely truncated mid-document (verified: a 100 KiB cap yields 'Unterminated string in JSON at position 130829'). Sibling packages pm-changelog, pm-context, pm-brief, pm-graph and pm-linear already cap explicitly; this package was a straggler. Fix: cap at 64 MiB and name an ENOBUFS overrun explicitly instead of reporting an unexplained failure (or, for the never-throw demo/search paths, an empty result set)." +type: Issue +status: closed +priority: 1 +tags[4]: agent-ux,maxbuffer,production-readiness,real-data +created_at: "2026-07-24T20:24:56.684Z" +updated_at: "2026-07-24T20:24:57.125Z" +closed_at: "2026-07-24T20:24:57.124Z" +author: claude-opus-5 +resolution: Added PM_JSON_MAX_BUFFER (64 MiB) and passed it to the pm read; ENOBUFS is now reported as a buffer overrun naming the limit and the remedy. +expected_result: "Reads of a mature tracker succeed, and any future overrun reports its real cause instead of an unexplained failure or a silent empty result." +actual_result: "Verified with the package's exact argv against the real 443-item workspace: default cap -> status null / ENOBUFS; 64 MiB cap -> status 0 with the complete payload. Typecheck and the full test suite pass." +close_reason: Capped the pm read at 64 MiB and made an ENOBUFS overrun self-describing +body: "" diff --git a/.hound.yml b/.hound.yml new file mode 100644 index 0000000..64e219f --- /dev/null +++ b/.hound.yml @@ -0,0 +1,8 @@ +# Hound CI configuration. +# `dist/` is generated ES2022 output (committed deliberately so the package can +# be installed straight from the repo as a pm extension). Hound lints it with +# jshint's default ES5 profile, which reports every `const` and template literal +# in the generated file as an error — pure noise that buries real findings. +# Same rationale as pm-web/.hound.yml. +jshint: + enabled: false diff --git a/CHANGELOG.md b/CHANGELOG.md index 6bd0df5..212ccbd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## Unreleased + +### Fixed + +- pm item reads are capped at Node's 1 MiB spawnSync default, so a mature tracker fails with no diagnosis ([pm-starter-y8hb](https://github.com/unbraind/pm-starter/blob/main/.agents/pm/issues/pm-starter-y8hb.toon)) + ## 2026.7.23 - 2026-07-23 ### Fixed diff --git a/dist/index.d.ts.map b/dist/index.d.ts.map index c6b0a98..41ff057 100644 --- a/dist/index.d.ts.map +++ b/dist/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAqEA,eAAO,MAAM,SAAS;aACpB,eAAe,EAAE,CAAC;aAClB,KAAK,EAAE,CAAC;aACR,SAAS,EAAE,CAAC;CACJ,CAAC;AAKX,qBAAa,YAAa,SAAQ,KAAK;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAkC,EAIxE;CACF;AAMD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAK1F;AAED,wFAAwF;AACxF,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAMpG;AAED,mFAAmF;AACnF,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,QAAQ,EAAE,MAAM,EAChB,GAAG,IAAI,EAAE,MAAM,EAAE,GAChB,MAAM,CAWR;AAMD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CActE;;;;kBA8tBe,GAAG"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAqEA,eAAO,MAAM,SAAS;aACpB,eAAe,EAAE,CAAC;aAClB,KAAK,EAAE,CAAC;aACR,SAAS,EAAE,CAAC;CACJ,CAAC;AAKX,qBAAa,YAAa,SAAQ,KAAK;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAkC,EAIxE;CACF;AAMD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAK1F;AAED,wFAAwF;AACxF,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAMpG;AAED,mFAAmF;AACnF,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,QAAQ,EAAE,MAAM,EAChB,GAAG,IAAI,EAAE,MAAM,EAAE,GAChB,MAAM,CAWR;AAqCD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CA6BtE;;;;kBA8tBe,GAAG"} \ No newline at end of file diff --git a/dist/index.js b/dist/index.js index 6b9e754..5bf0ee8 100644 --- a/dist/index.js +++ b/dist/index.js @@ -117,15 +117,56 @@ export function optionPositiveInteger(options, fallback, ...keys) { function isObject(value) { return value !== null && typeof value === "object" && !Array.isArray(value); } +// Node's spawnSync defaults to a 1 MiB stdout cap, which a mature tracker's JSON +// dump passes at a few hundred items. Past that the child is killed with ENOBUFS, +// status null and EMPTY stderr, so the failure surfaces with nothing to diagnose +// (and at larger sizes stdout is genuinely truncated mid-document). +// 64 MiB matches the cap the sibling pm packages settled on. +/** Read-buffer cap for `pm` output, in bytes. 64 MiB by default; override with the + * `PM_JSON_MAX_BUFFER` env var. Resolved per call so the override takes effect + * without an import-order dependency. Invalid or non-positive values fall back to + * the default rather than silently disabling the guard. */ +function pmJsonMaxBuffer() { + // Number(), not parseInt(): parseInt("64MiB") silently yields 64, which would + // impose a 64-BYTE cap and break every ordinary read while appearing to honor + // the documented invalid-value fallback. Number() rejects the whole string. + const raw = Number(process.env.PM_JSON_MAX_BUFFER); + return Number.isSafeInteger(raw) && raw > 0 ? raw : 64 * 1024 * 1024; +} +/** Name the real cause of a failed `pm` read. A stdout overrun kills the child + * with `status: null` and EMPTY stderr, so without this the failure surfaces as + * an unexplained error (or, worse, as an empty result set). */ +function describePmReadFailure(error, limitBytes) { + const code = error.code; + if (code === "ENOBUFS") { + // This read is always the full workspace, so "narrow the operation" would be a + // dead instruction here — name only the lever the reader actually has. + return `pm output exceeded the ${limitBytes} byte read buffer. ` + + "Raise PM_JSON_MAX_BUFFER (in bytes) to increase the read limit for this workspace."; + } + return `pm read failed: ${error.message}`; +} /** * Safely read all items from the workspace by shelling out to `pm`. Returns an * empty array on any failure so demos never throw at activation/read time. * This is the SAFE read pattern every demo reuses. */ export function readPmItems(pmRoot) { - const result = spawnSync("pm", ["--path", pmRoot, "list-all", "--json", "--include-body"], { encoding: "utf-8" }); - if (result.status !== 0) + const maxBuffer = pmJsonMaxBuffer(); + const result = spawnSync("pm", ["--path", pmRoot, "list-all", "--json", "--include-body"], { encoding: "utf-8", maxBuffer }); + // Keep the never-throw contract, but do not let a read failure masquerade as an + // empty workspace — a silent [] here reads as "no items" to every demo. + if (result.error) { + console.error(`pm-starter: could not read pm items — ${describePmReadFailure(result.error, maxBuffer)}`); return []; + } + // Same reasoning for a genuine nonzero exit: an empty array is indistinguishable + // from an empty workspace, so report stderr rather than discarding it. + if (result.status !== 0) { + console.error(`pm-starter: could not read pm items (pm exited ${result.status}) — ` + + (result.stderr?.trim() || "no stderr output")); + return []; + } try { const parsed = JSON.parse(result.stdout); if (Array.isArray(parsed)) diff --git a/dist/index.js.map b/dist/index.js.map index bdb7993..58e3dcf 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/index.ts b/index.ts index 7d9c149..ed2cd41 100644 --- a/index.ts +++ b/index.ts @@ -132,18 +132,64 @@ function isObject(value: unknown): value is Record { return value !== null && typeof value === "object" && !Array.isArray(value); } +// Node's spawnSync defaults to a 1 MiB stdout cap, which a mature tracker's JSON +// dump passes at a few hundred items. Past that the child is killed with ENOBUFS, +// status null and EMPTY stderr, so the failure surfaces with nothing to diagnose +// (and at larger sizes stdout is genuinely truncated mid-document). +// 64 MiB matches the cap the sibling pm packages settled on. +/** Read-buffer cap for `pm` output, in bytes. 64 MiB by default; override with the + * `PM_JSON_MAX_BUFFER` env var. Resolved per call so the override takes effect + * without an import-order dependency. Invalid or non-positive values fall back to + * the default rather than silently disabling the guard. */ +function pmJsonMaxBuffer(): number { + // Number(), not parseInt(): parseInt("64MiB") silently yields 64, which would + // impose a 64-BYTE cap and break every ordinary read while appearing to honor + // the documented invalid-value fallback. Number() rejects the whole string. + const raw = Number(process.env.PM_JSON_MAX_BUFFER); + return Number.isSafeInteger(raw) && raw > 0 ? raw : 64 * 1024 * 1024; +} + +/** Name the real cause of a failed `pm` read. A stdout overrun kills the child + * with `status: null` and EMPTY stderr, so without this the failure surfaces as + * an unexplained error (or, worse, as an empty result set). */ +function describePmReadFailure(error: Error, limitBytes: number): string { + const code = (error as NodeJS.ErrnoException).code; + if (code === "ENOBUFS") { + // This read is always the full workspace, so "narrow the operation" would be a + // dead instruction here — name only the lever the reader actually has. + return `pm output exceeded the ${limitBytes} byte read buffer. ` + + "Raise PM_JSON_MAX_BUFFER (in bytes) to increase the read limit for this workspace."; + } + return `pm read failed: ${error.message}`; +} + /** * Safely read all items from the workspace by shelling out to `pm`. Returns an * empty array on any failure so demos never throw at activation/read time. * This is the SAFE read pattern every demo reuses. */ export function readPmItems(pmRoot: string): Array> { + const maxBuffer = pmJsonMaxBuffer(); const result = spawnSync( "pm", ["--path", pmRoot, "list-all", "--json", "--include-body"], - { encoding: "utf-8" }, + { encoding: "utf-8", maxBuffer }, ); - if (result.status !== 0) return []; + // Keep the never-throw contract, but do not let a read failure masquerade as an + // empty workspace — a silent [] here reads as "no items" to every demo. + if (result.error) { + console.error(`pm-starter: could not read pm items — ${describePmReadFailure(result.error, maxBuffer)}`); + return []; + } + // Same reasoning for a genuine nonzero exit: an empty array is indistinguishable + // from an empty workspace, so report stderr rather than discarding it. + if (result.status !== 0) { + console.error( + `pm-starter: could not read pm items (pm exited ${result.status}) — ` + + (result.stderr?.trim() || "no stderr output"), + ); + return []; + } try { const parsed = JSON.parse(result.stdout); if (Array.isArray(parsed)) return parsed; diff --git a/test/smoke.test.ts b/test/smoke.test.ts index 4e64a64..a77a1b2 100644 --- a/test/smoke.test.ts +++ b/test/smoke.test.ts @@ -143,3 +143,88 @@ test("positive integer options honor numeric and string SDK values", () => { assert.strictEqual(optionPositiveInteger({ limit: "1.5" }, 10, "limit"), 10); assert.strictEqual(optionPositiveInteger({ limit: "invalid" }, 10, "limit"), 10); }); + +// --- pm read buffer ----------------------------------------------------------- +// The 64 MiB cap and its ENOBUFS diagnostic are a failure *contract*: a read that +// outgrows the buffer must not be reported as an empty workspace. The cap is env +// configurable, which makes the branch testable for real — no spawnSync mocking. + +test("readPmItems honors PM_JSON_MAX_BUFFER and reports an overrun instead of returning a silent empty array", async (t) => { + const { mkdtempSync, rmSync } = await import("node:fs"); + const { tmpdir } = await import("node:os"); + const { join } = await import("node:path"); + const { execFileSync } = await import("node:child_process"); + const { readPmItems } = await import("../dist/index.js"); + + const dir = mkdtempSync(join(tmpdir(), "pm-starter-buffer-")); + t.after(() => rmSync(dir, { recursive: true, force: true })); + + const pmRoot = join(dir, ".agents", "pm"); + try { + execFileSync("pm", ["init", "--pm-path", pmRoot], { cwd: dir, stdio: "ignore" }); + execFileSync("pm", ["create", "--pm-path", pmRoot, "--type", "issue", "--title", "Buffer probe item", "--author", "test"], { cwd: dir, stdio: "ignore" }); + } catch { + t.skip("pm CLI unavailable"); + return; + } + + // Sanity: the default cap reads the workspace. + assert.ok(readPmItems(pmRoot).length >= 1, "default cap should read the item"); + + const messages: string[] = []; + const originalError = console.error; + const originalCap = process.env.PM_JSON_MAX_BUFFER; + console.error = (...values: unknown[]) => messages.push(values.join(" ")); + // 64 bytes cannot hold any item payload, so the read overruns deterministically. + process.env.PM_JSON_MAX_BUFFER = "64"; + try { + const items = readPmItems(pmRoot); + assert.deepEqual(items, [], "the never-throw contract must still hold"); + assert.ok( + messages.some((message) => /read buffer/.test(message)), + `overrun must be reported, not silent; saw: ${messages.join(" | ")}` + ); + } finally { + console.error = originalError; + if (originalCap === undefined) delete process.env.PM_JSON_MAX_BUFFER; + else process.env.PM_JSON_MAX_BUFFER = originalCap; + } +}); + +test("a malformed PM_JSON_MAX_BUFFER falls back to the default instead of imposing a tiny cap", async (t) => { + // parseInt("64MiB") === 64 would have imposed a 64-BYTE cap and broken every + // ordinary read while appearing to honor the documented fallback. + const { mkdtempSync, rmSync } = await import("node:fs"); + const { tmpdir } = await import("node:os"); + const { join } = await import("node:path"); + const { execFileSync } = await import("node:child_process"); + const { readPmItems } = await import("../dist/index.js"); + + const dir = mkdtempSync(join(tmpdir(), "pm-starter-badcap-")); + t.after(() => rmSync(dir, { recursive: true, force: true })); + const pmRoot = join(dir, ".agents", "pm"); + try { + execFileSync("pm", ["init", "--pm-path", pmRoot], { cwd: dir, stdio: "ignore" }); + execFileSync("pm", ["create", "--pm-path", pmRoot, "--type", "issue", "--title", "Fallback probe item", "--author", "test"], { cwd: dir, stdio: "ignore" }); + } catch { + t.skip("pm CLI unavailable"); + return; + } + + const originalCap = process.env.PM_JSON_MAX_BUFFER; + try { + for (const malformed of ["64MiB", "64 MB", "abc", "-1", "0", "6.5", ""]) { + process.env.PM_JSON_MAX_BUFFER = malformed; + assert.ok( + readPmItems(pmRoot).length >= 1, + `PM_JSON_MAX_BUFFER=${JSON.stringify(malformed)} must fall back to the default, not cap the read` + ); + } + // A valid explicit value is still honored. + process.env.PM_JSON_MAX_BUFFER = String(32 * 1024 * 1024); + assert.ok(readPmItems(pmRoot).length >= 1, "a valid explicit cap should still read the workspace"); + } finally { + if (originalCap === undefined) delete process.env.PM_JSON_MAX_BUFFER; + else process.env.PM_JSON_MAX_BUFFER = originalCap; + } +});