Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions .agents/pm/chores/pm-github-c5i4.toon
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
id: pm-github-c5i4
title: Pin the pm toolchain and assert the changelog-date flag by difference
description: "Pin @unbrained/pm-cli 2026.9.5, pm-changelog 2026.9.2, and pm-ops ^2026.9.5. pm-changelog 2026.9.2 stopped stamping the wall clock, so the unflagged control must prove --date-from-version is load-bearing by differing from the flagged heading rather than by matching a clock-derived string."
type: Chore
status: closed
priority: 2
tags: []
created_at: "2026-09-05T18:14:51.255Z"
updated_at: "2026-09-05T18:24:31.473Z"
closed_at: "2026-09-05T18:15:12.866Z"
completed_at: "2026-09-05T18:15:12.866Z"
claim_principal: pi-agent
author: pi-agent
resolution: Pinned the current pm toolchain and made the changelog-date control assert difference rather than a clock string.
expected_result: "release:check and pm health --strict-exit pass on pm-cli 2026.9.5, pm-changelog 2026.9.2, and pm-ops 2026.9.5; the unflagged heading control fails when identical to the flagged heading and passes when it differs."
actual_result: "release:check exit 0; pm health --strict-exit exit 0; identical-control script exit 1; restored script exit 0 with undated heading '## 2026.1.2'."
comments[2]{created_at,author,text}:
"2026-09-05T18:15:05.801Z",pi-agent,"Pinned @unbrained/pm-cli 2026.9.5 (exact), pm-changelog 2026.9.2 (exact), and pm-ops ^2026.9.5 (caret preserved).\n\npm-changelog 2026.9.2 no longer stamps the wall clock. An unflagged run now emits '## 2026.1.2' instead of '## 2026.1.2 - <today>'. The previous control only noted that mismatch and still exited 0, so a no-op --date-from-version would have passed.\n\nThe control now fails only when the unflagged heading is missing or identical to the flagged '## 2026.1.2 - 2026-01-02'. That is true of both the old clock-stamping generator and 2026.9.2.\n\nRevert-proof: forcing the unflagged invocation to also pass --date-from-version made the script exit 1 (identical heading '## 2026.1.2 - 2026-01-02'). Restoring the unflagged invocation made it exit 0 (undated '## 2026.1.2').\n\nnpm run release:check and pm health --strict-exit both exit 0 on this tree."
"2026-09-05T18:24:31.473Z",claude-orchestrator,"Greptile raised a valid P2 on the loosened control: asserting only that the unflagged heading differs from the flagged one means a generator emitting a malformed heading, or a heading for the wrong version, is reported as undated and passes. The control then proves the flag changed something, but not that it changed the right thing. Replaced the open-ended else with an explicit allow-list of the two shapes a correct generator can produce for the probe version: the clock-derived heading and the bare undated heading. Anything else fails and names both accepted forms alongside what was received. Verified every branch fires: a wrong-version heading fails as unrecognised, undated and clock-derived both pass, a heading identical to the flagged run fails, and an empty heading fails."
files[6]{path,scope}:
package.json,project
package-lock.json,project
scripts/verify-release-changelog-date.sh,project
CHANGELOG.md,project
.agents/pm/chores/pm-github-c5i4.toon,project
.agents/pm/history/pm-github-c5i4.jsonl,project
close_reason: Pinned the current pm toolchain and made the changelog-date control assert difference rather than a clock string.
body: ""
10 changes: 10 additions & 0 deletions .agents/pm/history/pm-github-c5i4.jsonl
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{"ts":"2026-09-05T18:14:51.255Z","author":"pi-agent","author_source":"asserted","agent_harness":"pi","agent_model":"grok-4.6","agent_model_source":"environment","agent_instance":"4667fc6dfa36cfcbf86244bd","agent_provenance":{"model":{"value":"grok-4.6","source":"environment"},"effort":null,"role":{"value":"implementer","source":"argv"},"topic":null},"op":"create","patch":[{"op":"add","path":"/metadata/id","value":"pm-github-c5i4"},{"op":"add","path":"/metadata/title","value":"Pin the pm toolchain and assert the changelog-date flag by difference"},{"op":"add","path":"/metadata/description","value":"Pin @unbrained/pm-cli 2026.9.5, pm-changelog 2026.9.2, and pm-ops ^2026.9.5. pm-changelog 2026.9.2 stopped stamping the wall clock, so the unflagged control must prove --date-from-version is load-bearing by differing from the flagged heading rather than by matching a clock-derived string."},{"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":[]},{"op":"add","path":"/metadata/created_at","value":"2026-09-05T18:14:51.255Z"},{"op":"add","path":"/metadata/updated_at","value":"2026-09-05T18:14:51.255Z"},{"op":"add","path":"/metadata/author","value":"pi-agent"}],"before_hash":"3cc22dff72be7b14824654a7a64ea62b04799939b2fee54c1b5f52ca60bf6df0","after_hash":"e2dca00cb81e7c8797c2bd11c3ec79d2e658d421653025a03f29c303b8c3b570","item_hash_version":3,"message":"","event_class":"substantive","record_hash_version":1,"record_hash":"f1ee2582a3962cb52bf8ebb5d0e543a466e32fd2e44093e236d2b212ab60f317"}
{"ts":"2026-09-05T18:15:01.021Z","author":"pi-agent","author_source":"asserted","agent_harness":"pi","agent_model":"grok-4.6","agent_model_source":"environment","agent_instance":"4667fc6dfa36cfcbf86244bd","agent_provenance":{"model":{"value":"grok-4.6","source":"environment"},"effort":null,"role":null,"topic":null},"op":"claim","patch":[{"op":"replace","path":"/metadata/updated_at","value":"2026-09-05T18:15:01.021Z"},{"op":"add","path":"/metadata/assignee","value":"pi-agent"},{"op":"add","path":"/metadata/claim_principal","value":"pi-agent"}],"before_hash":"e2dca00cb81e7c8797c2bd11c3ec79d2e658d421653025a03f29c303b8c3b570","after_hash":"80e56cea20b97247358f0ad595d77c1cbe0bfc532989e7fed379ae3ddd87151a","item_hash_version":3,"event_class":"substantive","record_hash_version":1,"record_hash":"c4624367875379eae4331805253599a6ea894bd359e9c9a45c86f780c9ac0f30"}
{"ts":"2026-09-05T18:15:01.111Z","author":"pi-agent","author_source":"asserted","agent_harness":"pi","agent_model":"grok-4.6","agent_model_source":"environment","agent_instance":"4667fc6dfa36cfcbf86244bd","agent_provenance":{"model":{"value":"grok-4.6","source":"environment"},"effort":null,"role":null,"topic":null},"op":"update","patch":[{"op":"replace","path":"/metadata/updated_at","value":"2026-09-05T18:15:01.111Z"},{"op":"replace","path":"/metadata/status","value":"in_progress"}],"before_hash":"80e56cea20b97247358f0ad595d77c1cbe0bfc532989e7fed379ae3ddd87151a","after_hash":"d683f7232d596d8f93144b5c84a62997151893c731f37ca5e9b9e34a9e3bf6cf","item_hash_version":3,"event_class":"substantive","record_hash_version":1,"record_hash":"7828414804f690a8febbd13f6bab33e8cfae33cb477e24441efe76133de8b711"}
{"ts":"2026-09-05T18:15:02.351Z","author":"pi-agent","author_source":"asserted","agent_harness":"pi","agent_model":"grok-4.6","agent_model_source":"environment","agent_instance":"4667fc6dfa36cfcbf86244bd","agent_provenance":{"model":{"value":"grok-4.6","source":"environment"},"effort":null,"role":{"value":"implementer","source":"argv"},"topic":null},"op":"update","patch":[{"op":"replace","path":"/metadata/updated_at","value":"2026-09-05T18:15:02.351Z"},{"op":"add","path":"/metadata/files","value":[{"path":"package.json","scope":"project"}]}],"before_hash":"d683f7232d596d8f93144b5c84a62997151893c731f37ca5e9b9e34a9e3bf6cf","after_hash":"3cdd01def0a730e0900c6882c025edb24c052cb1f8bd5ba606bd876d2efb21ad","item_hash_version":3,"event_class":"maintenance","record_hash_version":1,"record_hash":"a2dce44ecfa98037ff90ca843b60101ba8f52e26a60b9b6970afa883ce65ed11"}
{"ts":"2026-09-05T18:15:03.586Z","author":"pi-agent","author_source":"asserted","agent_harness":"pi","agent_model":"grok-4.6","agent_model_source":"environment","agent_instance":"4667fc6dfa36cfcbf86244bd","agent_provenance":{"model":{"value":"grok-4.6","source":"environment"},"effort":null,"role":{"value":"implementer","source":"argv"},"topic":null},"op":"update","patch":[{"op":"add","path":"/metadata/files/1","value":{"path":"package-lock.json","scope":"project"}},{"op":"replace","path":"/metadata/updated_at","value":"2026-09-05T18:15:03.586Z"}],"before_hash":"3cdd01def0a730e0900c6882c025edb24c052cb1f8bd5ba606bd876d2efb21ad","after_hash":"513c2da2ff31ab6c968bb72bb7145af5785e6df913159516a8ff65ee8763aba5","item_hash_version":3,"event_class":"maintenance","record_hash_version":1,"record_hash":"dbd757ccc4f75829f83a32aec2dea244a253d22fef1f7f4e8e0d917bfe235033"}
{"ts":"2026-09-05T18:15:04.829Z","author":"pi-agent","author_source":"asserted","agent_harness":"pi","agent_model":"grok-4.6","agent_model_source":"environment","agent_instance":"4667fc6dfa36cfcbf86244bd","agent_provenance":{"model":{"value":"grok-4.6","source":"environment"},"effort":null,"role":{"value":"implementer","source":"argv"},"topic":null},"op":"update","patch":[{"op":"add","path":"/metadata/files/2","value":{"path":"scripts/verify-release-changelog-date.sh","scope":"project"}},{"op":"replace","path":"/metadata/updated_at","value":"2026-09-05T18:15:04.829Z"}],"before_hash":"513c2da2ff31ab6c968bb72bb7145af5785e6df913159516a8ff65ee8763aba5","after_hash":"b9b50fad78ba59c3cb7b46cbd905bd3ce45925cb985e4199a1d603d4ab9d6b3e","item_hash_version":3,"event_class":"maintenance","record_hash_version":1,"record_hash":"c9bd1c1b031b3af46a42520c39a8fc5651117dbb0c797db676da02572cd16b4d"}
{"ts":"2026-09-05T18:15:05.802Z","author":"pi-agent","author_source":"asserted","agent_harness":"pi","agent_model":"grok-4.6","agent_model_source":"environment","agent_instance":"4667fc6dfa36cfcbf86244bd","agent_provenance":{"model":{"value":"grok-4.6","source":"environment"},"effort":null,"role":null,"topic":null},"op":"comment_add","patch":[{"op":"replace","path":"/metadata/updated_at","value":"2026-09-05T18:15:05.802Z"},{"op":"add","path":"/metadata/comments","value":[{"created_at":"2026-09-05T18:15:05.801Z","author":"pi-agent","text":"Pinned @unbrained/pm-cli 2026.9.5 (exact), pm-changelog 2026.9.2 (exact), and pm-ops ^2026.9.5 (caret preserved).\n\npm-changelog 2026.9.2 no longer stamps the wall clock. An unflagged run now emits '## 2026.1.2' instead of '## 2026.1.2 - <today>'. The previous control only noted that mismatch and still exited 0, so a no-op --date-from-version would have passed.\n\nThe control now fails only when the unflagged heading is missing or identical to the flagged '## 2026.1.2 - 2026-01-02'. That is true of both the old clock-stamping generator and 2026.9.2.\n\nRevert-proof: forcing the unflagged invocation to also pass --date-from-version made the script exit 1 (identical heading '## 2026.1.2 - 2026-01-02'). Restoring the unflagged invocation made it exit 0 (undated '## 2026.1.2').\n\nnpm run release:check and pm health --strict-exit both exit 0 on this tree."}]}],"before_hash":"b9b50fad78ba59c3cb7b46cbd905bd3ce45925cb985e4199a1d603d4ab9d6b3e","after_hash":"84e6f1b500ecd01fd487d6683118290aa38d0d858d1050355984ac83f6295626","item_hash_version":3,"event_class":"substantive","record_hash_version":1,"record_hash":"c0e3f4ea3be3578ce67cff486515ddda9cff5beac6e7fb5030c779b5b9aeb9c5"}
{"ts":"2026-09-05T18:15:12.874Z","author":"pi-agent","author_source":"asserted","agent_harness":"pi","agent_model":"grok-4.6","agent_model_source":"environment","agent_instance":"4667fc6dfa36cfcbf86244bd","agent_provenance":{"model":{"value":"grok-4.6","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-09-05T18:15:12.874Z"},{"op":"replace","path":"/metadata/status","value":"closed"},{"op":"add","path":"/metadata/closed_at","value":"2026-09-05T18:15:12.866Z"},{"op":"add","path":"/metadata/completed_at","value":"2026-09-05T18:15:12.866Z"},{"op":"add","path":"/metadata/resolution","value":"Pinned the current pm toolchain and made the changelog-date control assert difference rather than a clock string."},{"op":"add","path":"/metadata/expected_result","value":"release:check and pm health --strict-exit pass on pm-cli 2026.9.5, pm-changelog 2026.9.2, and pm-ops 2026.9.5; the unflagged heading control fails when identical to the flagged heading and passes when it differs."},{"op":"add","path":"/metadata/actual_result","value":"release:check exit 0; pm health --strict-exit exit 0; identical-control script exit 1; restored script exit 0 with undated heading '## 2026.1.2'."},{"op":"add","path":"/metadata/close_reason","value":"Pinned the current pm toolchain and made the changelog-date control assert difference rather than a clock string."}],"before_hash":"84e6f1b500ecd01fd487d6683118290aa38d0d858d1050355984ac83f6295626","after_hash":"c9fba13d525c4585d7d6b2bf05bc2c7182135402e549bcc9f0984c48eb81097a","item_hash_version":3,"event_class":"substantive","record_hash_version":1,"record_hash":"3ce4329aaa1491ef60e861371aaa572bb5e74c76d6cf03b66db7571c3e1eb3b7"}
{"ts":"2026-09-05T18:15:45.336Z","author":"pi-agent","author_source":"asserted","agent_harness":"pi","agent_model":"grok-4.6","agent_model_source":"environment","agent_instance":"4667fc6dfa36cfcbf86244bd","agent_provenance":{"model":{"value":"grok-4.6","source":"environment"},"effort":null,"role":{"value":"implementer","source":"argv"},"topic":null},"op":"update","patch":[{"op":"add","path":"/metadata/files/3","value":{"path":"CHANGELOG.md","scope":"project"}},{"op":"add","path":"/metadata/files/4","value":{"path":".agents/pm/chores/pm-github-c5i4.toon","scope":"project"}},{"op":"add","path":"/metadata/files/5","value":{"path":".agents/pm/history/pm-github-c5i4.jsonl","scope":"project"}},{"op":"replace","path":"/metadata/updated_at","value":"2026-09-05T18:15:45.336Z"}],"before_hash":"c9fba13d525c4585d7d6b2bf05bc2c7182135402e549bcc9f0984c48eb81097a","after_hash":"681d59aca80008156d9194d5407b4a6fdae632b372ca9b446e83025550b7bbfc","item_hash_version":3,"event_class":"maintenance","record_hash_version":1,"record_hash":"511ab76d88ee9b6c818e76f54192a9f2ab7483955ad4aa0a2b0aa549143c4033"}
{"ts":"2026-09-05T18:24:31.473Z","author":"claude-orchestrator","author_source":"asserted","agent_harness":"claude-code","agent_model":"claude-opus-5","agent_model_source":"probe","agent_instance":"d8dbc6c3b8a673148b5c3e78","agent_provenance":{"model":{"value":"claude-opus-5","source":"probe"},"effort":{"value":"xhigh","source":"environment"},"role":null,"topic":null,"version":{"value":"2.1.261","source":"probe"}},"op":"comment_add","patch":[{"op":"add","path":"/metadata/comments/1","value":{"created_at":"2026-09-05T18:24:31.473Z","author":"claude-orchestrator","text":"Greptile raised a valid P2 on the loosened control: asserting only that the unflagged heading differs from the flagged one means a generator emitting a malformed heading, or a heading for the wrong version, is reported as undated and passes. The control then proves the flag changed something, but not that it changed the right thing. Replaced the open-ended else with an explicit allow-list of the two shapes a correct generator can produce for the probe version: the clock-derived heading and the bare undated heading. Anything else fails and names both accepted forms alongside what was received. Verified every branch fires: a wrong-version heading fails as unrecognised, undated and clock-derived both pass, a heading identical to the flagged run fails, and an empty heading fails."}},{"op":"replace","path":"/metadata/updated_at","value":"2026-09-05T18:24:31.473Z"}],"before_hash":"681d59aca80008156d9194d5407b4a6fdae632b372ca9b446e83025550b7bbfc","after_hash":"7289bbf0e96ed4295cff8440c09735f06f50e03cf998a34849b1ee2115a95179","item_hash_version":3,"event_class":"substantive","record_hash_version":1,"record_hash":"95b7fe6ff657437657cbe3bbe2e4c79852033ce46b4f8aff91bbcda580d35446"}
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# Changelog

## Unreleased

### Other

- Pin the pm toolchain and assert the changelog-date flag by difference ([pm-github-c5i4](https://github.com/unbraind/pm-github/blob/main/.agents/pm/chores/pm-github-c5i4.toon))

## 2026.9.4 - 2026-09-04

### Security
Expand Down
Loading