Repository navigation
Derive the changelog's no-tag release date from the version instead of the clock #76
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
16 commits
Select commit
Hold shift + click to select a range
c541989
fix(changelog): derive the no-tag release date from the version, not …
unbraind 7809f4f
test(changelog): prove the release-workflow path, which changelog:che…
unbraind 8a5c91c
test(changelog): prove the release-workflow path, which changelog:che…
unbraind ae40661
fix(ci): check each generator invocation on its own, and fail when th…
unbraind 056cfc7
chore(pm): drop a comment that a retried add had duplicated
unbraind 6e3ac37
ci: run the changelog-date verifier instead of only shipping it
unbraind 29fa88d
docs(pm): record the gate wiring and the review findings applied to t…
unbraind 9fa31d9
fix(ci): find the release-time generator invocations the shell verifi…
unbraind 72e4d09
test: execute the verifier's rules against fixtures, and close three …
unbraind b8405b3
fix(ci): stop three guards failing open, and stop one gate measuring …
unbraind 80ea7d6
test: follow the verifier's own contract change, and drop a duplicate…
unbraind c006af6
fix: close a continuation bypass, stop a comment satisfying a flag check
unbraind 38fac9a
fix: split on unspaced shell separators, and stop two guards at the r…
unbraind 1691f8c
test: verify the rebased changelog date contract
unbraind a6d52f9
test: remove an unused verifier import
unbraind fa05f74
fix: preserve version-derived changelog generation after rebase
unbraind File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| {"ts":"2026-08-30T15:40:57.183Z","author":"pi-agent","author_source":"asserted","agent_harness":"pi","agent_model":"gpt-5.6-sol","agent_model_source":"environment","agent_instance":"c099f1522ffea5016a460ccf","agent_provenance":{"model":{"value":"gpt-5.6-sol","source":"environment"},"effort":null,"role":{"value":"implementer","source":"argv"},"topic":null},"op":"create","patch":[{"op":"add","path":"/metadata/id","value":"pm-context-91b3"},{"op":"add","path":"/metadata/title","value":"Remove the unused changelog verifier test import"},{"op":"add","path":"/metadata/description","value":"DeepScan identified the unused main binding in the changelog verifier test; remove the dead import and re-run all gates."},{"op":"add","path":"/metadata/type","value":"Issue"},{"op":"add","path":"/metadata/status","value":"open"},{"op":"add","path":"/metadata/priority","value":2},{"op":"add","path":"/metadata/tags","value":[]},{"op":"add","path":"/metadata/created_at","value":"2026-08-30T15:40:57.183Z"},{"op":"add","path":"/metadata/updated_at","value":"2026-08-30T15:40:57.183Z"},{"op":"add","path":"/metadata/author","value":"pi-agent"}],"before_hash":"3cc22dff72be7b14824654a7a64ea62b04799939b2fee54c1b5f52ca60bf6df0","after_hash":"ac93c251d70aedd33f8084fe74531db175fb15e825ff15f060e98479fe3943dc","item_hash_version":2,"message":""} | ||
| {"ts":"2026-08-30T15:40:57.715Z","author":"pi-agent","author_source":"asserted","agent_harness":"pi","agent_model":"gpt-5.6-sol","agent_model_source":"environment","agent_instance":"c099f1522ffea5016a460ccf","agent_provenance":{"model":{"value":"gpt-5.6-sol","source":"environment"},"effort":null,"role":{"value":"implementer","source":"argv"},"topic":null},"op":"update","patch":[{"op":"replace","path":"/metadata/updated_at","value":"2026-08-30T15:40:57.715Z"},{"op":"replace","path":"/metadata/status","value":"in_progress"},{"op":"add","path":"/metadata/files","value":[{"path":"test/verify-release-changelog-date.test.ts","scope":"project","note":"Remove the unused binding"}]},{"op":"add","path":"/metadata/tests","value":[{"command":"npm test","scope":"project","provenance":{"author":"pi-agent","created_at":"2026-08-30T15:40:57.689Z","source_kind":"local_mutation","source_ref":"fix/stabilise-changelog-date-from-version"}}]}],"before_hash":"ac93c251d70aedd33f8084fe74531db175fb15e825ff15f060e98479fe3943dc","after_hash":"2cff149f3042c8c2f5222e6c95f1b052446146d861656dff975ca6a27f2398c8","item_hash_version":2,"message":"Started the DeepScan cleanup."} | ||
| {"ts":"2026-08-30T15:40:58.258Z","author":"pi-agent","author_source":"asserted","agent_harness":"pi","agent_model":"gpt-5.6-sol","agent_model_source":"environment","agent_instance":"c099f1522ffea5016a460ccf","agent_provenance":{"model":{"value":"gpt-5.6-sol","source":"environment"},"effort":null,"role":{"value":"implementer","source":"argv"},"topic":null},"op":"claim","patch":[{"op":"replace","path":"/metadata/updated_at","value":"2026-08-30T15:40:58.258Z"},{"op":"add","path":"/metadata/assignee","value":"pi-agent"},{"op":"add","path":"/metadata/claim_principal","value":"pi-agent"}],"before_hash":"2cff149f3042c8c2f5222e6c95f1b052446146d861656dff975ca6a27f2398c8","after_hash":"48d4c61847f11677134fdf894d8dbdbc37fbb596055e80455ae5ff1147c5e1af","item_hash_version":2} | ||
| {"ts":"2026-08-30T15:41:11.551Z","author":"pi-agent","author_source":"asserted","agent_harness":"pi","agent_model":"gpt-5.6-sol","agent_model_source":"environment","agent_instance":"c099f1522ffea5016a460ccf","agent_provenance":{"model":{"value":"gpt-5.6-sol","source":"environment"},"effort":null,"role":{"value":"implementer","source":"argv"},"topic":null},"op":"update","patch":[{"op":"replace","path":"/metadata/updated_at","value":"2026-08-30T15:41:11.551Z"},{"op":"add","path":"/metadata/comments","value":[{"created_at":"2026-08-30T15:41:11.534Z","author":"pi-agent","text":"Removed the unused main import identified by DeepScan. npm test passes all 319 tests."}]}],"before_hash":"48d4c61847f11677134fdf894d8dbdbc37fbb596055e80455ae5ff1147c5e1af","after_hash":"cdc5f6a3f3e63a3f0c5b9334fdc4e8dba1f5011aaa85769a92877608e1e54e9c","item_hash_version":2} | ||
| {"ts":"2026-08-30T15:41:12.008Z","author":"pi-agent","author_source":"asserted","agent_harness":"pi","agent_model":"gpt-5.6-sol","agent_model_source":"environment","agent_instance":"c099f1522ffea5016a460ccf","agent_provenance":{"model":{"value":"gpt-5.6-sol","source":"environment"},"effort":null,"role":{"value":"implementer","source":"argv"},"topic":null},"op":"close","patch":[{"op":"remove","path":"/metadata/assignee"},{"op":"replace","path":"/metadata/updated_at","value":"2026-08-30T15:41:12.008Z"},{"op":"replace","path":"/metadata/status","value":"closed"},{"op":"add","path":"/metadata/closed_at","value":"2026-08-30T15:41:11.992Z"},{"op":"add","path":"/metadata/completed_at","value":"2026-08-30T15:41:11.992Z"},{"op":"add","path":"/metadata/close_reason","value":"The test imports only executed verifier symbols and the complete suite passes."}],"before_hash":"cdc5f6a3f3e63a3f0c5b9334fdc4e8dba1f5011aaa85769a92877608e1e54e9c","after_hash":"02b45c27617a534e2a99772b2e23262cc11f8fefd3dc17ab813757ff7ba21bd0","item_hash_version":2} |
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| {"ts":"2026-08-30T15:34:39.913Z","author":"pi-agent","author_source":"asserted","agent_harness":"pi","agent_model":"gpt-5.6-sol","agent_model_source":"environment","agent_instance":"c099f1522ffea5016a460ccf","agent_provenance":{"model":{"value":"gpt-5.6-sol","source":"environment"},"effort":null,"role":{"value":"implementer","source":"argv"},"topic":null},"op":"create","patch":[{"op":"add","path":"/metadata/id","value":"pm-context-o76d"},{"op":"add","path":"/metadata/title","value":"Rebase the changelog date verifier onto the current release workflow"},{"op":"add","path":"/metadata/description","value":"Rebase PR 76 onto current main while preserving version-derived changelog dates, both release verifiers, and the current package and workflow behavior."},{"op":"add","path":"/metadata/type","value":"Issue"},{"op":"add","path":"/metadata/status","value":"open"},{"op":"add","path":"/metadata/priority","value":2},{"op":"add","path":"/metadata/tags","value":[]},{"op":"add","path":"/metadata/created_at","value":"2026-08-30T15:34:39.913Z"},{"op":"add","path":"/metadata/updated_at","value":"2026-08-30T15:34:39.913Z"},{"op":"add","path":"/metadata/author","value":"pi-agent"}],"before_hash":"3cc22dff72be7b14824654a7a64ea62b04799939b2fee54c1b5f52ca60bf6df0","after_hash":"d430f29467eb753a351acbed5680b485471f821facf9055d2f0351459a0142bf","item_hash_version":2,"message":""} | ||
| {"ts":"2026-08-30T15:34:48.879Z","author":"pi-agent","author_source":"asserted","agent_harness":"pi","agent_model":"gpt-5.6-sol","agent_model_source":"environment","agent_instance":"c099f1522ffea5016a460ccf","agent_provenance":{"model":{"value":"gpt-5.6-sol","source":"environment"},"effort":null,"role":{"value":"implementer","source":"argv"},"topic":null},"op":"update","patch":[{"op":"replace","path":"/metadata/updated_at","value":"2026-08-30T15:34:48.879Z"},{"op":"replace","path":"/metadata/status","value":"in_progress"},{"op":"add","path":"/metadata/files","value":[{"path":".gitignore","scope":"project","note":"Retain current transaction-journal ignore policy"},{"path":".github/workflows/ci.yml","scope":"project","note":"Run both release verifiers"},{"path":"package.json","scope":"project","note":"Preserve current dependencies and both release gates"},{"path":"CHANGELOG.md","scope":"project","note":"Regenerate after closing the tracking item"},{"path":"scripts/verify-release-changelog-date.ts","scope":"project","note":"Substantive verifier"},{"path":"test/verify-release-changelog-date.test.ts","scope":"project","note":"Regression coverage"}]},{"op":"add","path":"/metadata/tests","value":[{"command":"npm test","scope":"project","provenance":{"author":"pi-agent","created_at":"2026-08-30T15:34:48.855Z","source_kind":"local_mutation","source_ref":"fix/stabilise-changelog-date-from-version"}},{"command":"npm run release:check","scope":"project","provenance":{"author":"pi-agent","created_at":"2026-08-30T15:34:48.855Z","source_kind":"local_mutation","source_ref":"fix/stabilise-changelog-date-from-version"}}]}],"before_hash":"d430f29467eb753a351acbed5680b485471f821facf9055d2f0351459a0142bf","after_hash":"e1de4f39a81c57cdc3b242632fdce9eeaf504874b9b96f72e05ad4f6ee6ad84b","item_hash_version":2,"message":"Started the rebase and conflict reconciliation."} | ||
| {"ts":"2026-08-30T15:34:49.306Z","author":"pi-agent","author_source":"asserted","agent_harness":"pi","agent_model":"gpt-5.6-sol","agent_model_source":"environment","agent_instance":"c099f1522ffea5016a460ccf","agent_provenance":{"model":{"value":"gpt-5.6-sol","source":"environment"},"effort":null,"role":{"value":"implementer","source":"argv"},"topic":null},"op":"claim","patch":[{"op":"replace","path":"/metadata/updated_at","value":"2026-08-30T15:34:49.306Z"},{"op":"add","path":"/metadata/assignee","value":"pi-agent"},{"op":"add","path":"/metadata/claim_principal","value":"pi-agent"}],"before_hash":"e1de4f39a81c57cdc3b242632fdce9eeaf504874b9b96f72e05ad4f6ee6ad84b","after_hash":"0814ae7ae5109ade773a2713d8410735e2600f71e476a83774fb0bcfa1aa79e0","item_hash_version":2} | ||
| {"ts":"2026-08-30T15:36:11.609Z","author":"pi-agent","author_source":"asserted","agent_harness":"pi","agent_model":"gpt-5.6-sol","agent_model_source":"environment","agent_instance":"c099f1522ffea5016a460ccf","agent_provenance":{"model":{"value":"gpt-5.6-sol","source":"environment"},"effort":null,"role":{"value":"implementer","source":"argv"},"topic":null},"op":"update","patch":[{"op":"replace","path":"/metadata/updated_at","value":"2026-08-30T15:36:11.609Z"},{"op":"add","path":"/metadata/comments","value":[{"created_at":"2026-08-30T15:36:11.581Z","author":"pi-agent","text":"Rebased onto origin/main. Resolved .gitignore by retaining main current transaction-journal policy; resolved .github/workflows/ci.yml by retaining both release verifiers; resolved package.json by retaining main current version/dependency/release-workflow gates plus the changelog-date verifier; resolved CHANGELOG.md by taking the requested rebase side and regenerating after close. Upgraded pm-changelog to 2026.8.29 and made the executable probe use 2026.1.2-2. npm run verify:release-changelog-date, npm test, and npm run release:check pass with 100% configured coverage. Regression proofs: removing --date-from-version made the verifier fail; installing pm-changelog 2026.8.17 while retaining the suffix probe also made it fail; both restored versions pass."}]}],"before_hash":"0814ae7ae5109ade773a2713d8410735e2600f71e476a83774fb0bcfa1aa79e0","after_hash":"fa95553acf22ed8f6f0dec59508699374dc0d542a6a3b2b9f991bf51cdda406b","item_hash_version":2} | ||
| {"ts":"2026-08-30T15:36:12.228Z","author":"pi-agent","author_source":"asserted","agent_harness":"pi","agent_model":"gpt-5.6-sol","agent_model_source":"environment","agent_instance":"c099f1522ffea5016a460ccf","agent_provenance":{"model":{"value":"gpt-5.6-sol","source":"environment"},"effort":null,"role":{"value":"implementer","source":"argv"},"topic":null},"op":"close","patch":[{"op":"remove","path":"/metadata/assignee"},{"op":"replace","path":"/metadata/updated_at","value":"2026-08-30T15:36:12.228Z"},{"op":"replace","path":"/metadata/status","value":"closed"},{"op":"add","path":"/metadata/closed_at","value":"2026-08-30T15:36:12.212Z"},{"op":"add","path":"/metadata/completed_at","value":"2026-08-30T15:36:12.212Z"},{"op":"add","path":"/metadata/close_reason","value":"Rebase conflicts are resolved and both unsuffixed and suffixed changelog date paths pass all gates."}],"before_hash":"fa95553acf22ed8f6f0dec59508699374dc0d542a6a3b2b9f991bf51cdda406b","after_hash":"0cd9df18d2ba4172499aae1eac466ef66b9e6e694c76c70faaaa55e328bcec35","item_hash_version":2} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,21 @@ | ||
| id: pm-context-91b3 | ||
| title: Remove the unused changelog verifier test import | ||
| description: DeepScan identified the unused main binding in the changelog verifier test; remove the dead import and re-run all gates. | ||
| type: Issue | ||
| status: closed | ||
| priority: 2 | ||
| tags: [] | ||
| created_at: "2026-08-30T15:40:57.183Z" | ||
| updated_at: "2026-08-30T15:41:12.008Z" | ||
| closed_at: "2026-08-30T15:41:11.992Z" | ||
| completed_at: "2026-08-30T15:41:11.992Z" | ||
| claim_principal: pi-agent | ||
| author: pi-agent | ||
| comments[1]{created_at,author,text}: | ||
| "2026-08-30T15:41:11.534Z",pi-agent,Removed the unused main import identified by DeepScan. npm test passes all 319 tests. | ||
| files[1]{path,scope,note}: | ||
| test/verify-release-changelog-date.test.ts,project,Remove the unused binding | ||
| tests[1]{command,scope,provenance{author,created_at,source_kind,source_ref}}: | ||
| npm test,project,pi-agent,"2026-08-30T15:40:57.689Z",local_mutation,fix/stabilise-changelog-date-from-version | ||
| close_reason: The test imports only executed verifier symbols and the complete suite passes. | ||
| body: "" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,36 @@ | ||
| id: pm-context-a9iw | ||
| title: "The changelog gate stamps an untagged version with the current date, so its verdict flips every midnight with no commit" | ||
| description: "pm-changelog synthesises a pending release window for a version that has no matching git tag and stamps it with the current UTC date rather than anything derived from the input. The release workflow tags only after npm publish succeeds, and publish has been failing fleet wide since 2026-08-21, so this package currently carries an untagged version and is on that clock dependent path. The exposure is masked today only by a coincidence, because the package version and today's date are the same calendar day, and it fails on any later day with no commit having changed. Verified on pm-ops where the version date and today's date differ, which makes the comparison decisive: an untagged 2026.8.22 generates heading 2026.8.22 - 2026-08-24 without the flag and 2026.8.22 - 2026-08-22 with it. The remedy needs no new code because pm-changelog 2026.8.17 already ships --date-from-version, and zero of twenty packages passed it. Applied to every invocation of the generator in this package rather than only to the scripts whose names begin with changelog, because the release workflow invokes it directly and generation and check must not disagree. Site audit: package.json sites 1 flagged 1; .github/workflows/release.yml sites 2 flagged 2;" | ||
| type: Issue | ||
| status: open | ||
| priority: 1 | ||
| tags[3]: changelog,gates,release | ||
| created_at: "2026-08-24T09:39:49.769Z" | ||
| updated_at: "2026-08-27T17:19:03.018Z" | ||
| author: "harness:claude-code" | ||
| comments[2]{created_at,author,text}: | ||
| "2026-08-24T10:03:10.966Z","harness:claude-code","CodeRabbit was right that the linked test only covered the package.json invocation and never reached the direct pm-changelog commands in the release workflow. Added an executable check that does both halves. The static half enumerates every tracked file containing a generator invocation and asserts each file's flagged count is not below its site count, which fails when any single site loses the flag; verified by removing the flag from one of two release.yml sites and watching it report one of two and exit non-zero. The behavioural half runs the generator twice on the same probe version 2026.1.2, deliberately chosen so its calendar date cannot coincide with today, and asserts the heading is 2026.1.2 - 2026-01-02 with the flag and 2026.1.2 - 2026-08-24 without it, so the test states the defect rather than merely asserting the fix." | ||
| "2026-08-27T17:18:36.511Z",claude-agent,"The verifier this issue added was a file the repository shipped and nothing executed. It was absent from release:check and from every CI step, in thirteen of the fifteen repositories that carry it, so a later edit could have removed --date-from-version from the workflow and both generation and --check would have agreed on a clock-derived date without anything failing. It is now a named script, the last step of release:check, and its own CI step. Reported by CodeRabbit on unbraind/pm-graph#70.\n\nThe verifier itself gained two fixes in the same pass, also from CodeRabbit. Its static section now balances flags per line rather than per file, which closes two hiding places at once: a single line carrying several invocations where only one is flagged, and an unflagged invocation hiding behind a mention of the flag on a line that invokes nothing. Its behavioural section no longer runs the unflagged control under || true, so a control that fails to produce a heading now fails the gate instead of printing a note while the script exits zero. Both were confirmed by executing the old script against the defect and watching it exit zero." | ||
| files[4]{path,scope,note}: | ||
| .github/workflows/ci.yml,project,runs the changelog-date verifier as its own step | ||
| .github/workflows/release.yml,project,every pm-changelog invocation here now derives the no-tag release date from the calendar version | ||
| package.json,project,every pm-changelog invocation here now derives the no-tag release date from the calendar version | ||
| scripts/verify-release-changelog-date.sh,project,"executable proof for the release workflow invocations, which the package.json changelog check never reaches" | ||
| tests[3]: | ||
| - command: "npm run changelog:check" | ||
| path: package.json | ||
| scope: project | ||
| note: regenerates the changelog and compares it; without the flag the heading date is stamped from the clock and the comparison fails on any day after generation | ||
| - command: bash scripts/verify-release-changelog-date.sh | ||
| path: scripts/verify-release-changelog-date.sh | ||
| scope: project | ||
| note: "exercises the release workflow path that npm run changelog:check does not: asserts every generator invocation in every tracked file carries the flag, and shows the same probe version yielding its own calendar date with the flag and today's date without it" | ||
| - command: "npm run verify:release-changelog-date" | ||
| scope: project | ||
| timeout_seconds: 180 | ||
| provenance: | ||
| author: claude-agent | ||
| created_at: "2026-08-27T17:19:02.988Z" | ||
| source_kind: local_mutation | ||
| source_ref: fix/stabilise-changelog-date-from-version | ||
| body: "" | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,27 @@ | ||
| id: pm-context-o76d | ||
| title: Rebase the changelog date verifier onto the current release workflow | ||
| description: "Rebase PR 76 onto current main while preserving version-derived changelog dates, both release verifiers, and the current package and workflow behavior." | ||
| type: Issue | ||
| status: closed | ||
| priority: 2 | ||
| tags: [] | ||
| created_at: "2026-08-30T15:34:39.913Z" | ||
| updated_at: "2026-08-30T15:36:12.228Z" | ||
| closed_at: "2026-08-30T15:36:12.212Z" | ||
| completed_at: "2026-08-30T15:36:12.212Z" | ||
| claim_principal: pi-agent | ||
| author: pi-agent | ||
| comments[1]{created_at,author,text}: | ||
| "2026-08-30T15:36:11.581Z",pi-agent,"Rebased onto origin/main. Resolved .gitignore by retaining main current transaction-journal policy; resolved .github/workflows/ci.yml by retaining both release verifiers; resolved package.json by retaining main current version/dependency/release-workflow gates plus the changelog-date verifier; resolved CHANGELOG.md by taking the requested rebase side and regenerating after close. Upgraded pm-changelog to 2026.8.29 and made the executable probe use 2026.1.2-2. npm run verify:release-changelog-date, npm test, and npm run release:check pass with 100% configured coverage. Regression proofs: removing --date-from-version made the verifier fail; installing pm-changelog 2026.8.17 while retaining the suffix probe also made it fail; both restored versions pass." | ||
| files[6]{path,scope,note}: | ||
| .gitignore,project,Retain current transaction-journal ignore policy | ||
| .github/workflows/ci.yml,project,Run both release verifiers | ||
| package.json,project,Preserve current dependencies and both release gates | ||
| CHANGELOG.md,project,Regenerate after closing the tracking item | ||
| scripts/verify-release-changelog-date.ts,project,Substantive verifier | ||
| test/verify-release-changelog-date.test.ts,project,Regression coverage | ||
| tests[2]{command,scope,provenance{author,created_at,source_kind,source_ref}}: | ||
| npm test,project,pi-agent,"2026-08-30T15:34:48.855Z",local_mutation,fix/stabilise-changelog-date-from-version | ||
| "npm run release:check",project,pi-agent,"2026-08-30T15:34:48.855Z",local_mutation,fix/stabilise-changelog-date-from-version | ||
| close_reason: Rebase conflicts are resolved and both unsuffixed and suffixed changelog date paths pass all gates. | ||
| body: "" |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.