diff --git a/.agents/pm/chores/pm-github-w7m7.toon b/.agents/pm/chores/pm-github-w7m7.toon new file mode 100644 index 00000000..1438c307 --- /dev/null +++ b/.agents/pm/chores/pm-github-w7m7.toon @@ -0,0 +1,16 @@ +id: pm-github-w7m7 +title: Adopt --respect-item-release in changelog scripts and bump pm-changelog to 2026.7.24 +description: "pm-changelog 2026.7.24 adds --respect-item-release, which makes the single-window generation path (--since-previous-tag --until-release-tag, changelog:check, release notes) honour an item's declared release field instead of trusting closed_at. Without it, closing a tracker whose fix shipped in an earlier release dates months-old work as new, which is why shipped-but-unclosed trackers accumulate: closing them corrupts the changelog. Adopting the flag fleet-wide makes late tracker closure safe and keeps every package's generation path in agreement with --all-release-tags." +type: Chore +status: in_progress +priority: 2 +tags[3]: changelog,fleet-consistency,release-hygiene +created_at: "2026-07-24T21:30:26.518Z" +updated_at: "2026-07-24T21:42:59.772Z" +assignee: claude +author: claude +acceptance_criteria: "changelog, changelog:full, changelog:check and release:notes all pass --respect-item-release; pm-changelog devDependency is ^2026.7.24; npm run changelog:check is green; CHANGELOG.md content is unchanged by the flag for this repo (no item declares a release yet)" +notes[2]{created_at,author,text}: + "2026-07-24T21:30:27.187Z",claude,"Verified in this repo: pm-changelog 2026.7.24 installed; npm run changelog:full regenerated CHANGELOG.md with the flag active and produced a ZERO-line diff, confirming the flag is a safe no-op until an item declares a release; npm run changelog:check exits 0." + "2026-07-24T21:42:59.772Z",claude,"Greptile review finding adopted: the daily release workflow invokes pm-changelog DIRECTLY (npx pm-changelog, three times) rather than through the npm scripts, so patching only package.json left the generation path that actually produces the published CHANGELOG.md and RELEASE_NOTES.md without the flag while release:check validated with it. Added --respect-item-release to all three release.yml invocations so generation and validation agree. YAML re-validated." +body: "" diff --git a/.agents/pm/history/pm-github-w7m7.jsonl b/.agents/pm/history/pm-github-w7m7.jsonl new file mode 100644 index 00000000..366f1dda --- /dev/null +++ b/.agents/pm/history/pm-github-w7m7.jsonl @@ -0,0 +1,5 @@ +{"ts":"2026-07-24T21:30:26.518Z","author":"claude","op":"create","patch":[{"op":"add","path":"/metadata/id","value":"pm-github-w7m7"},{"op":"add","path":"/metadata/title","value":"Adopt --respect-item-release in changelog scripts and bump pm-changelog to 2026.7.24"},{"op":"add","path":"/metadata/description","value":"pm-changelog 2026.7.24 adds --respect-item-release, which makes the single-window generation path (--since-previous-tag --until-release-tag, changelog:check, release notes) honour an item's declared release field instead of trusting closed_at. Without it, closing a tracker whose fix shipped in an earlier release dates months-old work as new, which is why shipped-but-unclosed trackers accumulate: closing them corrupts the changelog. Adopting the flag fleet-wide makes late tracker closure safe and keeps every package's generation path in agreement with --all-release-tags."},{"op":"add","path":"/metadata/type","value":"Chore"},{"op":"add","path":"/metadata/status","value":"open"},{"op":"add","path":"/metadata/priority","value":2},{"op":"add","path":"/metadata/tags","value":["changelog","fleet-consistency","release-hygiene"]},{"op":"add","path":"/metadata/created_at","value":"2026-07-24T21:30:26.518Z"},{"op":"add","path":"/metadata/updated_at","value":"2026-07-24T21:30:26.518Z"},{"op":"add","path":"/metadata/author","value":"claude"},{"op":"add","path":"/metadata/acceptance_criteria","value":"changelog, changelog:full, changelog:check and release:notes all pass --respect-item-release; pm-changelog devDependency is ^2026.7.24; npm run changelog:check is green; CHANGELOG.md content is unchanged by the flag for this repo (no item declares a release yet)"}],"before_hash":"3cc22dff72be7b14824654a7a64ea62b04799939b2fee54c1b5f52ca60bf6df0","after_hash":"82d43e619830ecb0843dabcdddfa552d06ae9e421457aa2c027c8a756c568b2e","message":""} +{"ts":"2026-07-24T21:30:26.838Z","author":"claude","op":"claim","patch":[{"op":"replace","path":"/metadata/updated_at","value":"2026-07-24T21:30:26.838Z"},{"op":"add","path":"/metadata/assignee","value":"claude"}],"before_hash":"82d43e619830ecb0843dabcdddfa552d06ae9e421457aa2c027c8a756c568b2e","after_hash":"bb1bb0e43d550316b058cd96dfba018c4bf13abe4367e877d2d09f74561eccf2"} +{"ts":"2026-07-24T21:30:26.857Z","author":"claude","op":"update","patch":[{"op":"replace","path":"/metadata/updated_at","value":"2026-07-24T21:30:26.857Z"},{"op":"replace","path":"/metadata/status","value":"in_progress"}],"before_hash":"bb1bb0e43d550316b058cd96dfba018c4bf13abe4367e877d2d09f74561eccf2","after_hash":"3953df77fd26a1cd3d2d4adcdcaf2bee20f827f948b9fa4a3bcc504112a2cb62"} +{"ts":"2026-07-24T21:30:27.187Z","author":"claude","op":"note_add","patch":[{"op":"replace","path":"/metadata/updated_at","value":"2026-07-24T21:30:27.187Z"},{"op":"add","path":"/metadata/notes","value":[{"created_at":"2026-07-24T21:30:27.187Z","author":"claude","text":"Verified in this repo: pm-changelog 2026.7.24 installed; npm run changelog:full regenerated CHANGELOG.md with the flag active and produced a ZERO-line diff, confirming the flag is a safe no-op until an item declares a release; npm run changelog:check exits 0."}]}],"before_hash":"3953df77fd26a1cd3d2d4adcdcaf2bee20f827f948b9fa4a3bcc504112a2cb62","after_hash":"eeeeb2b27870732e27ea0767ba55f85e05cd59c828ffa54c81f25f74c435e968"} +{"ts":"2026-07-24T21:42:59.772Z","author":"claude","op":"note_add","patch":[{"op":"add","path":"/metadata/notes/1","value":{"created_at":"2026-07-24T21:42:59.772Z","author":"claude","text":"Greptile review finding adopted: the daily release workflow invokes pm-changelog DIRECTLY (npx pm-changelog, three times) rather than through the npm scripts, so patching only package.json left the generation path that actually produces the published CHANGELOG.md and RELEASE_NOTES.md without the flag while release:check validated with it. Added --respect-item-release to all three release.yml invocations so generation and validation agree. YAML re-validated."}},{"op":"replace","path":"/metadata/updated_at","value":"2026-07-24T21:42:59.772Z"}],"before_hash":"eeeeb2b27870732e27ea0767ba55f85e05cd59c828ffa54c81f25f74c435e968","after_hash":"d0e768b06bdcdb640252ab1aed4f4d086f138c8cf0f7035c081455aa0ed8f027"} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c544406b..7fd91f3a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -102,9 +102,9 @@ jobs: shell: bash run: | set -euo pipefail - npx pm-changelog --pm-root .agents/pm --mode prepend --output CHANGELOG.md --since-previous-tag --until-release-tag --release-version-from-package --item-url-base https://github.com/unbraind/pm-github/blob/main/.agents/pm --pm-bin ./node_modules/.bin/pm --github-step-summary - npx pm-changelog --pm-root .agents/pm --mode prepend --output CHANGELOG.md --since-previous-tag --until-release-tag --release-version-from-package --item-url-base https://github.com/unbraind/pm-github/blob/main/.agents/pm --pm-bin ./node_modules/.bin/pm --check - npx pm-changelog --pm-root .agents/pm --stdout --since-previous-tag --until-release-tag --release-version-from-package --item-url-base https://github.com/unbraind/pm-github/blob/main/.agents/pm --pm-bin ./node_modules/.bin/pm > RELEASE_NOTES.md + npx pm-changelog --pm-root .agents/pm --mode prepend --output CHANGELOG.md --since-previous-tag --until-release-tag --release-version-from-package --item-url-base https://github.com/unbraind/pm-github/blob/main/.agents/pm --respect-item-release --pm-bin ./node_modules/.bin/pm --github-step-summary + npx pm-changelog --pm-root .agents/pm --mode prepend --output CHANGELOG.md --since-previous-tag --until-release-tag --release-version-from-package --item-url-base https://github.com/unbraind/pm-github/blob/main/.agents/pm --respect-item-release --pm-bin ./node_modules/.bin/pm --check + npx pm-changelog --pm-root .agents/pm --stdout --since-previous-tag --until-release-tag --release-version-from-package --item-url-base https://github.com/unbraind/pm-github/blob/main/.agents/pm --respect-item-release --pm-bin ./node_modules/.bin/pm > RELEASE_NOTES.md - name: Run release checks if: steps.decide.outputs.should_release == 'true' diff --git a/package-lock.json b/package-lock.json index da2ad53b..19fef00e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "devDependencies": { "@types/node": "^26.1.1", "@unbrained/pm-cli": "^2026.7.22", - "pm-changelog": "^2026.7.18", + "pm-changelog": "^2026.7.24", "typescript": "^7.0.2" }, "engines": { @@ -1055,9 +1055,9 @@ } }, "node_modules/pm-changelog": { - "version": "2026.7.23", - "resolved": "https://registry.npmjs.org/pm-changelog/-/pm-changelog-2026.7.23.tgz", - "integrity": "sha512-+qUOljQkFalPE8+pfZ0l8c/+XxAxd7oPigr961tuZ2zcwpcs6n1G3ubBIWkuByZ51+z9zada7OaXWu3PK533Gg==", + "version": "2026.7.24", + "resolved": "https://registry.npmjs.org/pm-changelog/-/pm-changelog-2026.7.24.tgz", + "integrity": "sha512-3ixc8HLx//s/0NEXE9/LB5yd7MaKajC5N88u9XQtV37UJQcUNxKiPRKdoEOcBLFe7gUXgP1IFWNywjukbXmQPQ==", "dev": true, "license": "MIT", "bin": { @@ -1067,7 +1067,7 @@ "node": ">=22.18.0" }, "peerDependencies": { - "@unbrained/pm-cli": ">=2026.7.11" + "@unbrained/pm-cli": ">=2026.7.24" } }, "node_modules/proc-log": { diff --git a/package.json b/package.json index cc2a5203..b30a26c6 100644 --- a/package.json +++ b/package.json @@ -28,12 +28,12 @@ "check": "npm run typecheck", "audit:prod": "env -u npm_config_allow_scripts npm audit --omit=dev --ignore-scripts", "pack:dry-run": "npm pack --dry-run", - "changelog": "pm-changelog --pm-root .agents/pm --mode prepend --output CHANGELOG.md --release-version-from-package --since-previous-tag --until-release-tag --item-url-base https://github.com/unbraind/pm-github/blob/main/.agents/pm", - "changelog:full": "pm-changelog --pm-root .agents/pm --mode replace --output CHANGELOG.md --all-release-tags --release-version-from-package --item-url-base https://github.com/unbraind/pm-github/blob/main/.agents/pm", - "changelog:check": "pm-changelog --pm-root .agents/pm --mode prepend --output CHANGELOG.md --release-version-from-package --since-previous-tag --until-release-tag --item-url-base https://github.com/unbraind/pm-github/blob/main/.agents/pm --check", + "changelog": "pm-changelog --pm-root .agents/pm --mode prepend --output CHANGELOG.md --release-version-from-package --since-previous-tag --until-release-tag --item-url-base https://github.com/unbraind/pm-github/blob/main/.agents/pm --respect-item-release", + "changelog:full": "pm-changelog --pm-root .agents/pm --mode replace --output CHANGELOG.md --all-release-tags --release-version-from-package --item-url-base https://github.com/unbraind/pm-github/blob/main/.agents/pm --respect-item-release", + "changelog:check": "pm-changelog --pm-root .agents/pm --mode prepend --output CHANGELOG.md --release-version-from-package --since-previous-tag --until-release-tag --item-url-base https://github.com/unbraind/pm-github/blob/main/.agents/pm --respect-item-release --check", "release:check": "npm run typecheck && npm run build && npm test && npm run audit:prod && npm run pack:dry-run && npm run changelog:check", "prepublishOnly": "npm run release:check", - "release:notes": "pm-changelog --pm-root .agents/pm --stdout --since-previous-tag --until-release-tag --release-version-from-package --item-url-base https://github.com/unbraind/pm-github/blob/main/.agents/pm --pm-bin ./node_modules/.bin/pm --github-step-summary", + "release:notes": "pm-changelog --pm-root .agents/pm --stdout --since-previous-tag --until-release-tag --release-version-from-package --item-url-base https://github.com/unbraind/pm-github/blob/main/.agents/pm --respect-item-release --pm-bin ./node_modules/.bin/pm --github-step-summary", "prepare": "node scripts/prepare-merge-driver.mjs", "merge:install": "pm merge install" }, @@ -43,7 +43,7 @@ "devDependencies": { "@types/node": "^26.1.1", "@unbrained/pm-cli": "^2026.7.22", - "pm-changelog": "^2026.7.18", + "pm-changelog": "^2026.7.24", "typescript": "^7.0.2" }, "keywords": [