@unbrained/pm-cli 2026.8.4 → 2026.8.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +2 -2
- package/CHANGELOG.md +39 -13
- package/dist/cli/error-guidance.js +4 -4
- package/dist/cli/register-structured-mutation.d.ts +2 -0
- package/dist/cli/register-structured-mutation.js +124 -12
- package/dist/cli-bundle/bundle-manifest.json +407 -407
- package/dist/cli-bundle/chunks/append-VXXGOXSG.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-QVO3VTA4.js → chunk-2WFXWAYX.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-NM5G7RLU.js → chunk-3FTILRJ2.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-VH2EAGUG.js → chunk-42E7YPLG.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-RB65T4RX.js → chunk-43HQQI6S.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-J4EPW4GT.js → chunk-45G53IU4.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-PQXEB7W4.js → chunk-4VN6GS4U.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-4YUBDMQM.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-D2MBVMVE.js → chunk-54FNT7U2.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-NRDKVOUE.js → chunk-5ZBOIPGP.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-3XZYTRPC.js → chunk-6MSQJOTG.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-GOICHIX4.js → chunk-7A5OT5J2.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-HTYC76A4.js → chunk-7C4PTJG6.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-BKMZTZYL.js → chunk-A62CYISG.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-5H47J5FG.js → chunk-BPELKUQD.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-HE3DZFN4.js → chunk-BXQLRKWF.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-BLINBTMX.js → chunk-CSI3WS5I.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-KH4GVBMC.js → chunk-DXDREUXT.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-KIKLF2W4.js → chunk-E2RKBKWB.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-377OOXUF.js → chunk-EGJ4JTUG.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-SULWTPQO.js → chunk-FPBQHMFT.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-V5K52PYW.js → chunk-GE4KCSZP.js} +35 -35
- package/dist/cli-bundle/chunks/{chunk-NPUJ7OLK.js → chunk-HNFD72UK.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-QMWUL66F.js → chunk-HWRRMBJO.js} +5 -5
- package/dist/cli-bundle/chunks/chunk-L3AZOELJ.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-CGY5I2GO.js → chunk-LKDGK44W.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-LN2WFEU4.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-ZSH4GNBH.js → chunk-M72BKL5Q.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-HQ2WU7OY.js → chunk-MHK6LIWE.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-H6FITE7D.js → chunk-NE5VRDAI.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-NY4T3JWN.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-DCJ6CM6F.js → chunk-OMXVBQ2N.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-OPVH7SKD.js +8 -0
- package/dist/cli-bundle/chunks/{chunk-CU5ENFNP.js → chunk-OTHLDSFP.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-NH35JNK5.js → chunk-PMXJEU3F.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-SVDH5CHC.js → chunk-Q35VBGOQ.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-5PZGZMPG.js → chunk-R546TPDE.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-Q5F6OI7C.js → chunk-RKAVWO3O.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-JMKVCQSE.js → chunk-SSF4PIUR.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-PA5XRN2A.js → chunk-UN66FZRO.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-FQ4EFFDU.js → chunk-UP7DTVMD.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-NFF3JAQR.js → chunk-UZBWIUYD.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-2POYGY53.js → chunk-V3774P7D.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-B5ZLCD5Z.js → chunk-V3EUXXOF.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-6S7I3UKV.js → chunk-VCKLFEUN.js} +19 -19
- package/dist/cli-bundle/chunks/{chunk-PYYPQLHC.js → chunk-VN5VITU3.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-WRL4KNDL.js +20 -0
- package/dist/cli-bundle/chunks/{chunk-UJHUR3LZ.js → chunk-XCEZYMNI.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-JDPKBV5P.js → chunk-YEWNL576.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-OB7TRZ2G.js → chunk-YSO3YFZ4.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-UVZREFZU.js → chunk-ZYHOB3SN.js} +2 -2
- package/dist/cli-bundle/chunks/close-VZ3OQPN5.js +2 -0
- package/dist/cli-bundle/chunks/close-many-SB4TI27P.js +2 -0
- package/dist/cli-bundle/chunks/comments-BIF3Q4KY.js +2 -0
- package/dist/cli-bundle/chunks/copy-6AI5Z57X.js +2 -0
- package/dist/cli-bundle/chunks/{create-RLLCBCXM.js → create-XLKTXTUF.js} +2 -2
- package/dist/cli-bundle/chunks/delete-ZY2VHQTP.js +2 -0
- package/dist/cli-bundle/chunks/{deps-J4ONTF4X.js → deps-ITTY3GIC.js} +2 -2
- package/dist/cli-bundle/chunks/{docs-YL2DJ4WD.js → docs-W4OSRTYR.js} +2 -2
- package/dist/cli-bundle/chunks/{files-NGNAIYKK.js → files-EOK4AZI4.js} +2 -2
- package/dist/cli-bundle/chunks/focus-DLBNWL7L.js +2 -0
- package/dist/cli-bundle/chunks/{history-compact-HW62K5XP.js → history-compact-7UGTMLL3.js} +2 -2
- package/dist/cli-bundle/chunks/{history-redact-HVBKUJOW.js → history-redact-4DZRMD6Z.js} +2 -2
- package/dist/cli-bundle/chunks/{history-repair-OPNBH5JJ.js → history-repair-UPOSZW5R.js} +2 -2
- package/dist/cli-bundle/chunks/{learnings-F36PZXT6.js → learnings-GMRNCBS3.js} +2 -2
- package/dist/cli-bundle/chunks/{profile-N3XMWBM7.js → profile-2MUUMHRE.js} +2 -2
- package/dist/cli-bundle/chunks/{register-list-query-BKGHBI7Y.js → register-list-query-LR3SQ5ZF.js} +2 -2
- package/dist/cli-bundle/chunks/register-mutation-SUOHFVWM.js +20 -0
- package/dist/cli-bundle/chunks/register-operations-ARRRKOVN.js +2 -0
- package/dist/cli-bundle/chunks/{register-setup-KWV6UD77.js → register-setup-O6AYP6NP.js} +2 -2
- package/dist/cli-bundle/chunks/restore-ZVCVHTB5.js +2 -0
- package/dist/cli-bundle/chunks/{schema-4PJQMGUY.js → schema-FJ4EA3XF.js} +2 -2
- package/dist/cli-bundle/chunks/update-YHV52CSS.js +2 -0
- package/dist/cli-bundle/chunks/update-many-M6YHVNXM.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-7J5TUBUJ.js +153 -0
- package/dist/cli-bundle/focused-chunks/{chunk-ONIX2KKW.js → chunk-A7BJ5SS6.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-B7LJWAZE.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-QM2BIVK7.js → chunk-BIMTMOS7.js} +3 -3
- package/dist/cli-bundle/focused-chunks/{chunk-BOGRY7M6.js → chunk-FGKY4MBE.js} +10 -10
- package/dist/cli-bundle/focused-chunks/chunk-G6ETT4QK.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-C2QSL62X.js → chunk-GJ2TG2CW.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-RO5BQFG3.js → chunk-IPWSFADF.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-UFCPSWIL.js → chunk-MJ7HWSFK.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-2VIIXOAD.js → chunk-N5XU5UVK.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-PG2RIZBX.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-OYTK4VNH.js → chunk-PIMMYG7Q.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-K37BB4JL.js → chunk-QVHKCI4T.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-SQXVGHMH.js → chunk-RUR5I3TK.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-SV3O7TSH.js +8 -0
- package/dist/cli-bundle/focused-chunks/{chunk-L6A4NVQC.js → chunk-UIL2M2NA.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-WVGJAD7L.js → chunk-VLYOEYML.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-W7BJEWHX.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-DQ4PLKEE.js → chunk-WEM2E2PE.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-WVIVUWVL.js +5 -0
- package/dist/cli-bundle/focused-chunks/chunk-Y4LDYLLT.js +2 -0
- package/dist/cli-bundle/main.js +4 -4
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +1 -1
- package/dist/cli-bundle/sdk-core.js +28 -28
- package/dist/cli-bundle/sdk-governance.js +1 -1
- package/dist/cli-bundle/sdk-graph.js +1 -1
- package/dist/cli-bundle/sdk-merge.js +1 -1
- package/dist/cli-bundle/sdk-query.js +1 -1
- package/dist/cli-bundle/sdk-runtime.js +1 -1
- package/dist/cli-bundle/sdk-testing.js +1 -1
- package/dist/cli-bundle/sdk.js +1 -1
- package/dist/core/extensions/loader.js +5 -2
- package/dist/core/item/item-format.js +14 -20
- package/dist/core/shared/constants.js +3 -2
- package/dist/core/store/item-store.js +2 -2
- package/dist/core/store/settings.js +2 -2
- package/dist/mcp/server.js +12 -6
- package/dist/mcp/tool-definitions.js +14 -7
- package/dist/sdk/cli-contracts/agent-output-contracts.d.ts +18 -18
- package/dist/sdk/cli-contracts/agent-output-contracts.js +51 -23
- package/dist/sdk/cli-contracts/commander-mutation-options.js +26 -2
- package/dist/sdk/cli-contracts/flag-contracts.d.ts +2 -0
- package/dist/sdk/cli-contracts/flag-contracts.js +28 -2
- package/dist/sdk/cli-contracts/registration-helpers.js +4 -2
- package/dist/sdk/cli-contracts/runtime-contracts.d.ts +10 -2
- package/dist/sdk/cli-contracts/runtime-contracts.js +20 -5
- package/dist/sdk/cli-contracts/tool-schema.js +4 -2
- package/dist/sdk/cli-contracts.d.ts +2 -2
- package/dist/sdk/cli-contracts.js +4 -4
- package/dist/sdk/cli-program.js +3 -3
- package/dist/sdk/contracts.d.ts +1 -0
- package/dist/sdk/contracts.js +3 -2
- package/dist/sdk/dependency-provenance.d.ts +2 -0
- package/dist/sdk/dependency-provenance.js +7 -3
- package/dist/sdk/error-code-catalog.d.ts +23 -0
- package/dist/sdk/error-code-catalog.js +25 -5
- package/dist/sdk/generated-error-code-catalog.js +499 -3
- package/dist/sdk/graph/governance.js +3 -3
- package/dist/sdk/graph/remediation.js +3 -3
- package/dist/sdk/graph/run.js +4 -8
- package/dist/sdk/index.d.ts +2 -1
- package/dist/sdk/index.js +4 -3
- package/dist/sdk/item-transaction.d.ts +51 -6
- package/dist/sdk/item-transaction.js +132 -22
- package/dist/sdk/lifecycle/create.d.ts +4 -0
- package/dist/sdk/lifecycle/create.js +26 -10
- package/dist/sdk/lifecycle-policy.d.ts +9 -0
- package/dist/sdk/lifecycle-policy.js +22 -9
- package/dist/sdk/merge/driver.js +6 -3
- package/dist/sdk/output-contracts.d.ts +67 -0
- package/dist/sdk/output-contracts.js +173 -0
- package/dist/sdk/package-import-adapters.js +2 -2
- package/dist/sdk/structured-mutations.d.ts +23 -0
- package/dist/sdk/structured-mutations.js +219 -10
- package/dist/sdk/workspace-snapshot.js +58 -12
- package/dist/sdk/workspace.js +30 -4
- package/docs/COMMANDS.md +40 -10
- package/docs/EXTENSIONS.md +1 -1
- package/docs/MERGE_SAFETY.md +2 -0
- package/docs/PR_REVIEW_LOOP.md +10 -4
- package/docs/README.md +22 -22
- package/docs/RELEASING.md +3 -3
- package/docs/SCRIPTING.md +32 -9
- package/docs/SDK.md +91 -11
- package/docs/SELF_DESCRIBING_CONTEXT_CONTRACTS.md +13 -0
- package/docs/TESTING.md +25 -0
- package/docs/examples/sdk-contract-consumer/README.md +11 -1
- package/docs/examples/sdk-contract-consumer/package.json +2 -1
- package/docs/examples/sdk-contract-consumer/parse-receipt.mjs +22 -0
- package/marketplace.json +2 -2
- package/package.json +3 -2
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/sdk/public-surface.json +292 -14
- package/dist/cli-bundle/chunks/append-DHBRLHHS.js +0 -2
- package/dist/cli-bundle/chunks/chunk-2INN52SU.js +0 -8
- package/dist/cli-bundle/chunks/chunk-6RSK4IFN.js +0 -20
- package/dist/cli-bundle/chunks/chunk-ASJJKA57.js +0 -2
- package/dist/cli-bundle/chunks/chunk-IYAVULRN.js +0 -2
- package/dist/cli-bundle/chunks/chunk-RRQBHQOV.js +0 -2
- package/dist/cli-bundle/chunks/chunk-XBLOD5TZ.js +0 -2
- package/dist/cli-bundle/chunks/close-VLHNN6YB.js +0 -2
- package/dist/cli-bundle/chunks/close-many-LSJNZKU6.js +0 -2
- package/dist/cli-bundle/chunks/comments-AAIA6A6X.js +0 -2
- package/dist/cli-bundle/chunks/copy-Z7YMLEHN.js +0 -2
- package/dist/cli-bundle/chunks/delete-KNOHHQJM.js +0 -2
- package/dist/cli-bundle/chunks/focus-LFRCGALV.js +0 -2
- package/dist/cli-bundle/chunks/register-mutation-GU3DCECN.js +0 -20
- package/dist/cli-bundle/chunks/register-operations-PTWH727R.js +0 -2
- package/dist/cli-bundle/chunks/restore-4HZSLILR.js +0 -2
- package/dist/cli-bundle/chunks/update-E6LPS5IV.js +0 -2
- package/dist/cli-bundle/chunks/update-many-OSIC6KRO.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-5MTKO7TV.js +0 -153
- package/dist/cli-bundle/focused-chunks/chunk-6GIZK7VQ.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-AOP2WIZZ.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-CL75YW32.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-E7OFMWGT.js +0 -8
- package/dist/cli-bundle/focused-chunks/chunk-I5F5UK3Q.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-T5TSY36R.js +0 -5
- package/dist/cli-bundle/focused-chunks/chunk-VT6BF2IX.js +0 -2
|
@@ -6,14 +6,14 @@
|
|
|
6
6
|
},
|
|
7
7
|
"metadata": {
|
|
8
8
|
"description": "Official marketplace for pm CLI — native git-based project management for Claude Code and AI coding agents.",
|
|
9
|
-
"version": "2026.8.
|
|
9
|
+
"version": "2026.8.5"
|
|
10
10
|
},
|
|
11
11
|
"plugins": [
|
|
12
12
|
{
|
|
13
13
|
"name": "pm-claude",
|
|
14
14
|
"source": "./plugins/pm-claude",
|
|
15
15
|
"description": "Native pm CLI integration for Claude Code — 28 MCP tools, 5 workflow skills, 14 slash commands, 4 subagents, hybrid TUI task tracking, session context injection, and coordination subagents for git-based project management without leaving Claude Code.",
|
|
16
|
-
"version": "2026.8.
|
|
16
|
+
"version": "2026.8.5",
|
|
17
17
|
"author": {
|
|
18
18
|
"name": "unbrained",
|
|
19
19
|
"url": "https://github.com/unbraind/pm-cli"
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,31 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2026.8.5 - 2026-08-05
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- GH-896: heterogeneous atomic specification batches need batch-local references and one discoverable SDK-first CLI path ([pm-o8z748](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-o8z748.toon))
|
|
8
|
+
- Completion is decomposed while creation is composed: create takes nine inline evidence flags, close takes none, so the prescribed finish protocol is seven invocations and seven unrelated history entries ([pm-cyn0y6](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-cyn0y6.toon))
|
|
9
|
+
- Reindex coverage test leaks semantic refresh HTTP beyond its mock lifetime ([pm-cflhoj](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-cflhoj.toon))
|
|
10
|
+
- Sentry PM-CLI-2V: pm init surfaces raw EACCES when the managed workspace .gitignore cannot be written ([pm-3gh457](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-3gh457.toon))
|
|
11
|
+
- Filed defect populations grow after they are measured and nothing turns a tracker measurement into a ceiling: the maintenance passes that record the count are the writer that widens it ([pm-ips23h](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-ips23h.toon))
|
|
12
|
+
- Tracker-only PM governance commits cannot satisfy required CI without changing the generated changelog ([pm-2x5x83](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-2x5x83.toon))
|
|
13
|
+
- GH-891: external blockers make graph stale_lifecycle_block impossible to resolve truthfully ([pm-6sc8jq](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-6sc8jq.toon))
|
|
14
|
+
- GH-889: merge-conflict recovery guidance hides the durable discarded-value report ([pm-fbrz7p](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-fbrz7p.toon))
|
|
15
|
+
- GH-890: extension collision diagnostics omit the effective winner and cannot distinguish safe scoped overlap ([pm-6mjxgq](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-6mjxgq.toon))
|
|
16
|
+
- GH-885: create-time close_reason_required recovery recommends an impossible different-command retry ([pm-5uclvd](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-5uclvd.toon))
|
|
17
|
+
- GH-887: terminal create contract is non-atomic and inconsistent across importer-facing closure metadata ([pm-ykdt4m](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-ykdt4m.toon))
|
|
18
|
+
|
|
19
|
+
### Security
|
|
20
|
+
|
|
21
|
+
- 2026-08-04 holistic pm CLI, SDK, and ecosystem manual review and optimization plan ([pm-gzyt2j](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/plans/pm-gzyt2j.toon))
|
|
22
|
+
|
|
23
|
+
### Other
|
|
24
|
+
|
|
25
|
+
- Auto Release fresh clones build the CLI and install merge drivers before tracker gates ([pm-xvccnm](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-xvccnm.toon))
|
|
26
|
+
- Tracker data-quality ratchet in CI: pm validate and pm health run against this repository's own workspace with a shrinking-only per-warning baseline ([pm-kpftft](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-kpftft.toon))
|
|
27
|
+
- Eliminate July static-analysis nullability, dead-code, and redundant-allocation findings ([pm-cp5pbo](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-cp5pbo.toon))
|
|
28
|
+
|
|
3
29
|
## 2026.8.4 - 2026-08-04
|
|
4
30
|
|
|
5
31
|
### Added
|
|
@@ -1172,6 +1198,7 @@
|
|
|
1172
1198
|
|
|
1173
1199
|
### Added
|
|
1174
1200
|
|
|
1201
|
+
- Add agent-identity dimension to telemetry events: surface PM_AUTHOR as hashed author_context ([pm-fbyu](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/features/pm-fbyu.toon))
|
|
1175
1202
|
- Sub-hour duration granularity for scheduling: support minutes in --duration / event duration= ([pm-zoe4](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/features/pm-zoe4.toon))
|
|
1176
1203
|
- pm context --fields: per-row field projection for focus items (GH-156 follow-up to --depth full) ([pm-hnjf](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/features/pm-hnjf.toon))
|
|
1177
1204
|
- pm history-compact: expose --scope all-streams (history GC pass) for closed items ([pm-yj9w](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/features/pm-yj9w.toon))
|
|
@@ -1179,7 +1206,6 @@
|
|
|
1179
1206
|
- pm search: structured inline query syntax (tag:/status:) + matched-text highlighting (GH-157 remainder) ([pm-ldr1](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/features/pm-ldr1.toon))
|
|
1180
1207
|
- Dedupe merge workflow: pm dedupe-merge to consolidate duplicates (GH-163, builds on closed pm-4n1a detection) ([pm-jmld](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/features/pm-jmld.toon))
|
|
1181
1208
|
- pm telemetry stats: add error_rate and resolution breakdown per command bucket ([pm-gsoe](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/features/pm-gsoe.toon))
|
|
1182
|
-
- Add agent-identity dimension to telemetry events: surface PM_AUTHOR as hashed author_context ([pm-fbyu](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/features/pm-fbyu.toon))
|
|
1183
1209
|
- History stream bulk-compaction: pm history-compact --all-over N to batch-compact large streams ([pm-f3pa](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/features/pm-f3pa.toon))
|
|
1184
1210
|
- pm plan discoverability: templates and auto-suggest for complex work (GH-158 remainder) ([pm-aer3](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/features/pm-aer3.toon))
|
|
1185
1211
|
- Validate governance accuracy: suppress false-positive duplicate-code & terminal-item metadata noise + files --remove input clarity ([pm-6bz1](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/features/pm-6bz1.toon))
|
|
@@ -1927,6 +1953,7 @@
|
|
|
1927
1953
|
|
|
1928
1954
|
### Fixed
|
|
1929
1955
|
|
|
1956
|
+
- Investigate validate/health telemetry classification (71-74% failure rate) ([pm-bzx3](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-bzx3.toon))
|
|
1930
1957
|
- auto-release.yml workflow_dispatch silently overrides explicit push=false to true ([pm-qa2h](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-qa2h.toon))
|
|
1931
1958
|
- Accept positional title argument in pm create ([pm-7vm9](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-7vm9.toon))
|
|
1932
1959
|
- Sentry extension errors: cannot find module and activate failures ([pm-p7av](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-p7av.toon))
|
|
@@ -1953,7 +1980,6 @@
|
|
|
1953
1980
|
- CI: skip non-source jobs on docs-only changes ([pm-iv1u](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-iv1u.toon))
|
|
1954
1981
|
- CI: combine pnpm test + pnpm test:coverage into single coverage run ([pm-hpjd](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-hpjd.toon))
|
|
1955
1982
|
- pm test --add causes immediate history drift via null timeout_seconds ([pm-er4q](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-er4q.toon))
|
|
1956
|
-
- Investigate validate/health telemetry classification (71-74% failure rate) ([pm-bzx3](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-bzx3.toon))
|
|
1957
1983
|
- Fix: ENOENT lstat in extension path operations ([pm-bh13](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-bh13.toon))
|
|
1958
1984
|
- Fix: localeCompare on undefined in sort comparators ([pm-b9y1](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-b9y1.toon))
|
|
1959
1985
|
- Suppress benign extension_service_override_collision when calendar+guide-shell both bundled ([pm-5u9z](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-5u9z.toon))
|
|
@@ -2154,24 +2180,24 @@
|
|
|
2154
2180
|
|
|
2155
2181
|
### Security
|
|
2156
2182
|
|
|
2183
|
+
- Chore: 2026-05-02 Phase 3 Audit - IP scrub, dogfood, analysis tooling ([pm-2326](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-2326.toon))
|
|
2157
2184
|
- 2026-05-02 Full PM CLI Audit: Build Fix, Security, Performance, Telemetry ([pm-nnhi](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/epics/pm-nnhi.toon))
|
|
2158
2185
|
- 2026-05-02 Full PM CLI Audit Phase 2: Dead Code Removal, Security Enhancement, Sentry Optimization ([pm-kkmo](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/epics/pm-kkmo.toon))
|
|
2159
2186
|
- Documentation overhaul and public docs safety ([pm-3042](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/epics/pm-3042.toon))
|
|
2160
2187
|
- Pin release dependency ranges for Dependabot hygiene ([pm-q71q](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-q71q.toon))
|
|
2161
2188
|
- Enhance check-secrets.mjs with private IP detection rule ([pm-daft](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-daft.toon))
|
|
2162
|
-
- Chore: 2026-05-02 Phase 3 Audit - IP scrub, dogfood, analysis tooling ([pm-2326](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-2326.toon))
|
|
2163
2189
|
- Rewrite README and public documentation ([pm-1sb2](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-1sb2.toon))
|
|
2164
2190
|
|
|
2165
2191
|
### Other
|
|
2166
2192
|
|
|
2167
|
-
- 2026-05-
|
|
2193
|
+
- 2026-05-02 Full Audit: All Systems Verified ([pm-ss8d](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-ss8d.toon))
|
|
2168
2194
|
- Verify remote telemetry stack receives events and data flows to \[redacted_monitoring_ui\] ([pm-g8gj](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-g8gj.toon))
|
|
2195
|
+
- 2026-05-01 Full PM CLI Dogfood Audit v2 ([pm-2eb3](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/epics/pm-2eb3.toon))
|
|
2169
2196
|
- 2026-05-02 Comprehensive PM CLI Audit ([pm-rrjv](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/epics/pm-rrjv.toon))
|
|
2170
2197
|
- 2026-04-30 Full PM CLI Dogfood Audit ([pm-23me](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/epics/pm-23me.toon))
|
|
2171
2198
|
- 2026-05-01 Full PM CLI Audit Implementation ([pm-twpc](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/epics/pm-twpc.toon))
|
|
2172
2199
|
- Lower Sentry tracesSampleRate from 1.0 to 0.2 for free plan quota ([pm-wvhs](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-wvhs.toon))
|
|
2173
2200
|
- Chore: Prune stuck telemetry queue entries ([pm-wrbo](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-wrbo.toon))
|
|
2174
|
-
- 2026-05-02 Full Audit: All Systems Verified ([pm-ss8d](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-ss8d.toon))
|
|
2175
2201
|
- Decision: Cap telemetry result_summary payload size ([pm-q9yt](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/decisions/pm-q9yt.toon))
|
|
2176
2202
|
- Sentry CLI token needs broader scopes for issue analysis ([pm-q4jp](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-q4jp.toon))
|
|
2177
2203
|
- Dead code: root-level facade re-export shims unused ([pm-nr8k](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-nr8k.toon))
|
|
@@ -2195,6 +2221,7 @@
|
|
|
2195
2221
|
|
|
2196
2222
|
### Added
|
|
2197
2223
|
|
|
2224
|
+
- Add pm version and source classification to telemetry payloads ([pm-3dd9](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-3dd9.toon))
|
|
2198
2225
|
- Add scoped audit override mode for pm update metadata mutations ([pm-umhv](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-umhv.toon))
|
|
2199
2226
|
- Add opt-in runtime probe mode for extension manage parity ([pm-p0ij](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-p0ij.toon))
|
|
2200
2227
|
- List command large-output ergonomics ([pm-a4z3](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/features/pm-a4z3.toon))
|
|
@@ -2303,7 +2330,6 @@
|
|
|
2303
2330
|
- Issue4: create strict vs progressive policy mode ([pm-431e](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/features/pm-431e.toon))
|
|
2304
2331
|
- Add glob-based linked artifact additions for files/docs ([pm-3eu2](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/features/pm-3eu2.toon))
|
|
2305
2332
|
- Health vectorization status and targeted refresh ([pm-3ebr](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/features/pm-3ebr.toon))
|
|
2306
|
-
- Add pm version and source classification to telemetry payloads ([pm-3dd9](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-3dd9.toon))
|
|
2307
2333
|
- Add extension registration support for custom item types/options ([pm-37pj](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-37pj.toon))
|
|
2308
2334
|
- Add telemetry runtime diagnostics to pm health ([pm-300m](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-300m.toon))
|
|
2309
2335
|
- Implement extension source resolver and installer engine ([pm-2poj](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/features/pm-2poj.toon))
|
|
@@ -2352,19 +2378,19 @@
|
|
|
2352
2378
|
|
|
2353
2379
|
### Fixed
|
|
2354
2380
|
|
|
2381
|
+
- Validate UUID fields at telemetry ingestion boundary ([pm-vhdc](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-vhdc.toon))
|
|
2382
|
+
- Fix Grafana RabbitMQ queue panel metric selector mismatch ([pm-r9ei](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-r9ei.toon))
|
|
2383
|
+
- Implement local telemetry queue retention_days TTL cleanup ([pm-pxx0](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-pxx0.toon))
|
|
2355
2384
|
- Templates command: document correct invocation syntax (positional vs --name) ([pm-6y6i](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-6y6i.toon))
|
|
2356
2385
|
- Auto-migrate previous-version trackers on first mutation ([pm-yvwt](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-yvwt.toon))
|
|
2357
2386
|
- Cross-command regression verification for date parsing expansion ([pm-x6l7](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-x6l7.toon))
|
|
2358
|
-
- Validate UUID fields at telemetry ingestion boundary ([pm-vhdc](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-vhdc.toon))
|
|
2359
2387
|
- Allow unquoted multi-word search queries ([pm-v6ob](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-v6ob.toon))
|
|
2360
2388
|
- Expand regression and release-readiness tests for calendar/reminders ([pm-tyq3](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-tyq3.toon))
|
|
2361
2389
|
- Terminal compatibility regression suite and docs parity ([pm-t6f7](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/features/pm-t6f7.toon))
|
|
2362
2390
|
- Fix cross-platform CI regressions surfaced by GitHub checks ([pm-skyg](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-skyg.toon))
|
|
2363
2391
|
- Document resilient input formats and lock regression coverage ([pm-s9hl](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-s9hl.toon))
|
|
2364
|
-
- Fix Grafana RabbitMQ queue panel metric selector mismatch ([pm-r9ei](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-r9ei.toon))
|
|
2365
2392
|
- Ship regression tests docs and verification evidence ([pm-r9dy](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-r9dy.toon))
|
|
2366
2393
|
- Regression and release hardening ([pm-qwp7](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/features/pm-qwp7.toon))
|
|
2367
|
-
- Implement local telemetry queue retention_days TTL cleanup ([pm-pxx0](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-pxx0.toon))
|
|
2368
2394
|
- Fix LanceDB vector dimension mismatch blocking default search ([pm-oyt8](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-oyt8.toon))
|
|
2369
2395
|
- Replace invalid-id echo in get not-found guidance ([pm-opbo](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-opbo.toon))
|
|
2370
2396
|
- Include active extension commands/actions in contracts output ([pm-nnfc](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-nnfc.toon))
|
|
@@ -2433,6 +2459,10 @@
|
|
|
2433
2459
|
|
|
2434
2460
|
### Other
|
|
2435
2461
|
|
|
2462
|
+
- Execute telemetry + observability rollout implementation ([pm-ny6y](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-ny6y.toon))
|
|
2463
|
+
- 2026-04-26 comprehensive dogfood audit stabilization ([pm-mb4n](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-mb4n.toon))
|
|
2464
|
+
- Telemetry and observability rollout ([pm-lnq3](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/epics/pm-lnq3.toon))
|
|
2465
|
+
- Backfill telemetry documentation files referenced in tracker links ([pm-35wb](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-35wb.toon))
|
|
2436
2466
|
- Track open Dependabot PR \#14 ([pm-0jpx](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-0jpx.toon))
|
|
2437
2467
|
- Make lifecycle validate patterns configurable ([pm-urxb](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-urxb.toon))
|
|
2438
2468
|
- Run weekly GitHub findings review ([pm-lou4](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-lou4.toon))
|
|
@@ -2453,7 +2483,6 @@
|
|
|
2453
2483
|
- External audit issue remediation and compatibility hardening ([pm-my6o](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/epics/pm-my6o.toon))
|
|
2454
2484
|
- Linked-test parity and runnable command enforcement ([pm-mf5z](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/epics/pm-mf5z.toon))
|
|
2455
2485
|
- Extension lifecycle manager and SDK parity rollout ([pm-m9jc](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/epics/pm-m9jc.toon))
|
|
2456
|
-
- Telemetry and observability rollout ([pm-lnq3](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/epics/pm-lnq3.toon))
|
|
2457
2486
|
- CLI UX Overhaul: Help, Errors, and Output ([pm-izbd](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/epics/pm-izbd.toon))
|
|
2458
2487
|
- External audit follow-up: unresolved UX and dependency visualization gaps ([pm-iswo](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/epics/pm-iswo.toon))
|
|
2459
2488
|
- CLI UX and Integrity Hardening ([pm-hp31](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/epics/pm-hp31.toon))
|
|
@@ -2521,12 +2550,10 @@
|
|
|
2521
2550
|
- Implement dual-format codec and store lookup ([pm-oex4](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-oex4.toon))
|
|
2522
2551
|
- M5: Built-in beads import extension ([pm-odt](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-odt.toon))
|
|
2523
2552
|
- Consolidate 2026-04-25 dogfood audit evidence and tracker links ([pm-odcr](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-odcr.toon))
|
|
2524
|
-
- Execute telemetry + observability rollout implementation ([pm-ny6y](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-ny6y.toon))
|
|
2525
2553
|
- Phase 2: compatibility adapters and migration diagnostics ([pm-ngdf](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-ngdf.toon))
|
|
2526
2554
|
- Phase 2: wire parser override contracts in runtime ([pm-nfii](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-nfii.toon))
|
|
2527
2555
|
- Track open Dependabot PR \#7 ([pm-n8w4](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-n8w4.toon))
|
|
2528
2556
|
- Wave 8/9: restore replay patch compatibility and diagnostics ([pm-n5cw](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-n5cw.toon))
|
|
2529
|
-
- 2026-04-26 comprehensive dogfood audit stabilization ([pm-mb4n](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-mb4n.toon))
|
|
2530
2557
|
- Release @unbrained/pm-cli 2026.3.12 ([pm-lz4m](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-lz4m.toon))
|
|
2531
2558
|
- Implement tolerant entry parser and stdin token utility ([pm-luay](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-luay.toon))
|
|
2532
2559
|
- Phase 2: integrate service overrides into core modules ([pm-leol](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-leol.toon))
|
|
@@ -2596,7 +2623,6 @@
|
|
|
2596
2623
|
- M1: Item schema model and validation ([pm-3gi](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-3gi.toon))
|
|
2597
2624
|
- Telemetry pipeline verified: all \[redacted_service_count\] services healthy, E2E event ingestion working ([pm-3akm](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-3akm.toon))
|
|
2598
2625
|
- Integrate command and extension format behavior ([pm-3aga](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-3aga.toon))
|
|
2599
|
-
- Backfill telemetry documentation files referenced in tracker links ([pm-35wb](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-35wb.toon))
|
|
2600
2626
|
- Chore: Telemetry queue steady-state has 100 pending entries ([pm-2gmr](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-2gmr.toon))
|
|
2601
2627
|
- A1: Unified extension-first command router ([pm-2bxh](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-2bxh.toon))
|
|
2602
2628
|
- Issue3 Task: Default-on validate command reference check ([pm-2ajr](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-2ajr.toon))
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="d9d3d041-587b-5660-a909-d0759998248d")}catch(e){}}();
|
|
3
3
|
import { renderPmCommand } from "./argv-utils.js";
|
|
4
4
|
import { discoverNearbyPmRoot } from "../sdk/tracker-root-discovery.js";
|
|
5
5
|
/** Compact an error envelope to fields that change the caller's next action. */
|
|
@@ -884,7 +884,7 @@ function buildUnknownCommandGuidance(message, context) {
|
|
|
884
884
|
recovery: buildCommanderRecoveryPayload(context),
|
|
885
885
|
});
|
|
886
886
|
}
|
|
887
|
-
function buildLinkedTestValueNotQuotedGuidance(message, commandName,
|
|
887
|
+
function buildLinkedTestValueNotQuotedGuidance(message, commandName, context) {
|
|
888
888
|
if (!/too many arguments/i.test(message) || commandName !== "test") {
|
|
889
889
|
return null;
|
|
890
890
|
}
|
|
@@ -990,7 +990,7 @@ function buildCommanderErrorGuidance(rawMessage, commandName, allowedTypes, cont
|
|
|
990
990
|
buildMissingRequiredArgumentGuidance(message, commandName, context) ??
|
|
991
991
|
buildUnknownOptionGuidance(message, commandName, context) ??
|
|
992
992
|
buildUnknownCommandGuidance(message, context) ??
|
|
993
|
-
buildLinkedTestValueNotQuotedGuidance(message, commandName,
|
|
993
|
+
buildLinkedTestValueNotQuotedGuidance(message, commandName, context) ??
|
|
994
994
|
buildContextItemArgumentGuidance(message, commandName, context);
|
|
995
995
|
if (guidance) {
|
|
996
996
|
return guidance;
|
|
@@ -1083,4 +1083,4 @@ export const _testOnly = {
|
|
|
1083
1083
|
resolveKnownPackageCommandHint,
|
|
1084
1084
|
};
|
|
1085
1085
|
//# sourceMappingURL=error-guidance.js.map
|
|
1086
|
-
//# debugId=
|
|
1086
|
+
//# debugId=d9d3d041-587b-5660-a909-d0759998248d
|
|
@@ -5,10 +5,12 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import type { Command } from "commander";
|
|
7
7
|
declare function runItemMutateAction(options: Record<string, unknown>, command: Command): Promise<void>;
|
|
8
|
+
declare function runItemCompleteAction(id: string, positionalReason: string | undefined, options: Record<string, unknown>, command: Command): Promise<void>;
|
|
8
9
|
/** Register `pm item mutate`, the stable noun-first atomic batch surface. */
|
|
9
10
|
export declare function registerStructuredMutationCommands(program: Command): void;
|
|
10
11
|
/** Internal action hooks used by exhaustive source-level registration tests. */
|
|
11
12
|
export declare const structuredMutationTestOnly: {
|
|
13
|
+
runItemCompleteAction: typeof runItemCompleteAction;
|
|
12
14
|
runItemMutateAction: typeof runItemMutateAction;
|
|
13
15
|
};
|
|
14
16
|
export {};
|
|
@@ -1,22 +1,28 @@
|
|
|
1
1
|
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
3
|
-
import { createStdinTokenResolver, EXIT_CODE, PmCliError, resolveAuthor, resolvePmRoot, } from "../sdk/runtime-primitives.js";
|
|
4
|
-
import { commitItemMutations } from "../sdk/item-transaction.js";
|
|
5
|
-
import { parseAtomicMutationControls,
|
|
6
|
-
import { getGlobalOptions, printResult } from "./registration-helpers.js";
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="94fe3b7b-3aeb-5a31-a3a5-d85ae7e1ac83")}catch(e){}}();
|
|
3
|
+
import { createStdinTokenResolver, EXIT_CODE, PmCliError, readSettings, resolveAuthor, resolvePmRoot, } from "../sdk/runtime-primitives.js";
|
|
4
|
+
import { buildItemCompletionMutations, commitItemCompletion, commitItemMutations, } from "../sdk/item-transaction.js";
|
|
5
|
+
import { parseAtomicMutationControls, resolveItemMutationDocument, } from "../sdk/structured-mutations.js";
|
|
6
|
+
import { collect, getGlobalOptions, printResult, } from "./registration-helpers.js";
|
|
7
7
|
async function runItemMutateAction(options, command) {
|
|
8
8
|
const globalOptions = getGlobalOptions(command);
|
|
9
9
|
const input = await createStdinTokenResolver().resolveValue("-", "--stdin-json");
|
|
10
10
|
if (input === undefined || input.trim().length === 0) {
|
|
11
11
|
throw new PmCliError("pm item mutate requires a non-empty JSON batch on stdin.", EXIT_CODE.USAGE);
|
|
12
12
|
}
|
|
13
|
-
const mutations = parseItemMutationBatch(input);
|
|
14
13
|
const transactionId = typeof options.transactionId === "string"
|
|
15
14
|
? options.transactionId.trim()
|
|
16
15
|
: "";
|
|
17
16
|
if (transactionId.length === 0) {
|
|
18
17
|
throw new PmCliError("pm item mutate requires --transaction-id <value>.", EXIT_CODE.USAGE);
|
|
19
18
|
}
|
|
19
|
+
const pmRoot = resolvePmRoot(process.cwd(), globalOptions.path);
|
|
20
|
+
const settings = await readSettings(pmRoot);
|
|
21
|
+
const resolved = resolveItemMutationDocument(input, {
|
|
22
|
+
transactionId,
|
|
23
|
+
idPrefix: settings.id_prefix,
|
|
24
|
+
});
|
|
25
|
+
const { mutations, references } = resolved;
|
|
20
26
|
const controls = parseAtomicMutationControls(options);
|
|
21
27
|
if (options.dryRun === true) {
|
|
22
28
|
printResult({
|
|
@@ -24,19 +30,100 @@ async function runItemMutateAction(options, command) {
|
|
|
24
30
|
dry_run: true,
|
|
25
31
|
mutation_count: mutations.length,
|
|
26
32
|
mutations,
|
|
33
|
+
references,
|
|
27
34
|
}, globalOptions);
|
|
28
35
|
return;
|
|
29
36
|
}
|
|
30
37
|
const result = await commitItemMutations({
|
|
31
|
-
pmRoot
|
|
38
|
+
pmRoot,
|
|
32
39
|
transactionId,
|
|
33
40
|
author: resolveAuthor(typeof options.author === "string"
|
|
34
41
|
? options.author
|
|
35
|
-
: globalOptions.author,
|
|
42
|
+
: globalOptions.author, settings.author_default),
|
|
36
43
|
mutations,
|
|
37
44
|
...controls,
|
|
38
45
|
});
|
|
39
|
-
printResult({ ...result, mutation_count: mutations.length }, globalOptions);
|
|
46
|
+
printResult({ ...result, mutation_count: mutations.length, references }, globalOptions);
|
|
47
|
+
}
|
|
48
|
+
function resolveCompletionReason(positionalReason, optionReason) {
|
|
49
|
+
if (typeof positionalReason === "string" &&
|
|
50
|
+
positionalReason.trim().length > 0) {
|
|
51
|
+
return positionalReason.trim();
|
|
52
|
+
}
|
|
53
|
+
return typeof optionReason === "string" ? optionReason.trim() : "";
|
|
54
|
+
}
|
|
55
|
+
async function runItemCompleteAction(id, positionalReason, options, command) {
|
|
56
|
+
const globalOptions = getGlobalOptions(command);
|
|
57
|
+
const transactionId = typeof options.transactionId === "string"
|
|
58
|
+
? options.transactionId.trim()
|
|
59
|
+
: "";
|
|
60
|
+
if (transactionId.length === 0) {
|
|
61
|
+
throw new PmCliError("pm item complete requires --transaction-id <value>.", EXIT_CODE.USAGE);
|
|
62
|
+
}
|
|
63
|
+
const reason = resolveCompletionReason(positionalReason, options.reason);
|
|
64
|
+
if (reason.length === 0) {
|
|
65
|
+
throw new PmCliError("pm item complete requires a close reason.", EXIT_CODE.USAGE);
|
|
66
|
+
}
|
|
67
|
+
const evidenceKeys = [
|
|
68
|
+
"file",
|
|
69
|
+
"doc",
|
|
70
|
+
"test",
|
|
71
|
+
"comment",
|
|
72
|
+
"note",
|
|
73
|
+
"learning",
|
|
74
|
+
];
|
|
75
|
+
const evidence = Object.fromEntries(evidenceKeys
|
|
76
|
+
.filter((key) => options[key] !== undefined)
|
|
77
|
+
.map((key) => [key, options[key]]));
|
|
78
|
+
const force = options.force === true;
|
|
79
|
+
const { lockTtlSeconds, lockWaitMs } = parseAtomicMutationControls(options);
|
|
80
|
+
const closeOptions = {
|
|
81
|
+
...(typeof options.resolution === "string"
|
|
82
|
+
? { resolution: options.resolution }
|
|
83
|
+
: {}),
|
|
84
|
+
...(typeof options.expectedResult === "string"
|
|
85
|
+
? { expectedResult: options.expectedResult }
|
|
86
|
+
: {}),
|
|
87
|
+
...(typeof options.actualResult === "string"
|
|
88
|
+
? { actualResult: options.actualResult }
|
|
89
|
+
: {}),
|
|
90
|
+
...(typeof options.completedAt === "string"
|
|
91
|
+
? { completedAt: options.completedAt }
|
|
92
|
+
: {}),
|
|
93
|
+
...(typeof options.validateClose === "string"
|
|
94
|
+
? { validateClose: options.validateClose }
|
|
95
|
+
: {}),
|
|
96
|
+
...(force ? { force: true } : {}),
|
|
97
|
+
};
|
|
98
|
+
const completion = {
|
|
99
|
+
id,
|
|
100
|
+
reason,
|
|
101
|
+
...(Object.keys(evidence).length === 0 ? {} : { evidence }),
|
|
102
|
+
...(Object.keys(closeOptions).length === 0 ? {} : { closeOptions }),
|
|
103
|
+
...(force ? { releaseOptions: { force: true } } : {}),
|
|
104
|
+
};
|
|
105
|
+
if (options.dryRun === true) {
|
|
106
|
+
const mutations = buildItemCompletionMutations(completion);
|
|
107
|
+
printResult({
|
|
108
|
+
transaction_id: transactionId,
|
|
109
|
+
dry_run: true,
|
|
110
|
+
mutation_count: mutations.length,
|
|
111
|
+
mutations,
|
|
112
|
+
}, globalOptions);
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
const pmRoot = resolvePmRoot(process.cwd(), globalOptions.path);
|
|
116
|
+
const result = await commitItemCompletion({
|
|
117
|
+
pmRoot,
|
|
118
|
+
transactionId,
|
|
119
|
+
author: resolveAuthor(typeof options.author === "string"
|
|
120
|
+
? options.author
|
|
121
|
+
: globalOptions.author, (await readSettings(pmRoot)).author_default),
|
|
122
|
+
...completion,
|
|
123
|
+
lockTtlSeconds,
|
|
124
|
+
lockWaitMs,
|
|
125
|
+
});
|
|
126
|
+
printResult({ ...result, mutation_count: Object.keys(result.results).length }, globalOptions);
|
|
40
127
|
}
|
|
41
128
|
/** Register `pm item mutate`, the stable noun-first atomic batch surface. */
|
|
42
129
|
export function registerStructuredMutationCommands(program) {
|
|
@@ -53,10 +140,35 @@ export function registerStructuredMutationCommands(program) {
|
|
|
53
140
|
.option("--lock-ttl-seconds <n>", "Workspace transaction lock lifetime in seconds")
|
|
54
141
|
.option("--lock-wait-ms <n>", "Maximum time to wait for the workspace transaction lock")
|
|
55
142
|
.option("--author <value>", "Mutation author")
|
|
56
|
-
.description("Apply create/update/close mutations atomically through the public pm SDK.")
|
|
143
|
+
.description("Apply create/update/close/release mutations atomically through the public pm SDK.")
|
|
57
144
|
.action(runItemMutateAction);
|
|
145
|
+
itemCommand
|
|
146
|
+
.command("complete <id> [reason]")
|
|
147
|
+
.requiredOption("--transaction-id <value>", "Stable idempotency key for the composed completion")
|
|
148
|
+
.option("--reason <value>", "Close reason when omitted positionally")
|
|
149
|
+
.option("--file <value>", "Linked file evidence", collect)
|
|
150
|
+
.option("--doc <value>", "Linked documentation evidence", collect)
|
|
151
|
+
.option("--test <value>", "Linked test evidence", collect)
|
|
152
|
+
.option("--comment <value>", "Evidence comment", collect)
|
|
153
|
+
.option("--note <value>", "Completion note", collect)
|
|
154
|
+
.option("--learning <value>", "Durable completion learning", collect)
|
|
155
|
+
.option("--resolution <value>", "Structured resolution evidence")
|
|
156
|
+
.option("--expected-result <value>", "Expected result evidence")
|
|
157
|
+
.option("--actual-result <value>", "Actual result evidence")
|
|
158
|
+
.option("--completed-at <value>", "Actual completion time")
|
|
159
|
+
.option("--validate-close <mode>", "Close validation: off, warn, or strict")
|
|
160
|
+
.option("--lock-ttl-seconds <n>", "Workspace transaction lock lifetime in seconds")
|
|
161
|
+
.option("--lock-wait-ms <n>", "Maximum time to wait for the workspace transaction lock")
|
|
162
|
+
.option("--dry-run", "Validate and preview completion without writing")
|
|
163
|
+
.option("--force", "Override lifecycle and ownership conflicts")
|
|
164
|
+
.option("--author <value>", "Completion author")
|
|
165
|
+
.description("Record evidence, close the item, and release its claim atomically.")
|
|
166
|
+
.action(runItemCompleteAction);
|
|
58
167
|
}
|
|
59
168
|
/** Internal action hooks used by exhaustive source-level registration tests. */
|
|
60
|
-
export const structuredMutationTestOnly = {
|
|
169
|
+
export const structuredMutationTestOnly = {
|
|
170
|
+
runItemCompleteAction,
|
|
171
|
+
runItemMutateAction,
|
|
172
|
+
};
|
|
61
173
|
//# sourceMappingURL=register-structured-mutation.js.map
|
|
62
|
-
//# debugId=
|
|
174
|
+
//# debugId=94fe3b7b-3aeb-5a31-a3a5-d85ae7e1ac83
|