@unbrained/pm-cli 2026.8.15 → 2026.8.16

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.
Files changed (98) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +26 -9
  3. package/dist/cli/error-guidance.d.ts +5 -0
  4. package/dist/cli/error-guidance.js +15 -2
  5. package/dist/cli/register-history-author.js +16 -11
  6. package/dist/cli-bundle/bundle-manifest.json +142 -142
  7. package/dist/cli-bundle/chunks/{chunk-KIEGUBYQ.js → chunk-47OQEOQB.js} +2 -2
  8. package/dist/cli-bundle/chunks/{chunk-WLPDLNEZ.js → chunk-73UGEBRS.js} +2 -2
  9. package/dist/cli-bundle/chunks/{chunk-QHPCJWEJ.js → chunk-HCIYWD6M.js} +34 -34
  10. package/dist/cli-bundle/chunks/{chunk-J42EGKDK.js → chunk-I2LUWWR5.js} +2 -2
  11. package/dist/cli-bundle/chunks/{chunk-KLKYLSDX.js → chunk-IC5W2T34.js} +2 -2
  12. package/dist/cli-bundle/chunks/{chunk-AIM6VT2N.js → chunk-PANOOBIS.js} +2 -2
  13. package/dist/cli-bundle/chunks/{chunk-MEM2ZS3O.js → chunk-RIS565OA.js} +2 -2
  14. package/dist/cli-bundle/chunks/{chunk-24GAV7XL.js → chunk-TK6N7HGM.js} +2 -2
  15. package/dist/cli-bundle/chunks/chunk-TOFG2URD.js +197 -0
  16. package/dist/cli-bundle/chunks/{chunk-LJHOAVGI.js → chunk-URW4QRMI.js} +47 -41
  17. package/dist/cli-bundle/chunks/{register-list-query-CT3LFDDN.js → register-list-query-EYCXHZAG.js} +2 -2
  18. package/dist/cli-bundle/chunks/{register-mutation-NWEVA5YS.js → register-mutation-7YVIG54J.js} +4 -4
  19. package/dist/cli-bundle/chunks/{register-operations-AHIAG5KM.js → register-operations-KGDNRMCL.js} +2 -2
  20. package/dist/cli-bundle/chunks/{register-setup-ZJZFVAKE.js → register-setup-NVXBOD5I.js} +2 -2
  21. package/dist/cli-bundle/focused-chunks/{chunk-KTKH4IMG.js → chunk-4JPEBFFC.js} +2 -2
  22. package/dist/cli-bundle/focused-chunks/chunk-5NMFSX26.js +155 -0
  23. package/dist/cli-bundle/focused-chunks/{chunk-ZMFXQ7VF.js → chunk-6ROKKT4X.js} +2 -2
  24. package/dist/cli-bundle/focused-chunks/{chunk-OKA6ELTL.js → chunk-725JSCMP.js} +2 -2
  25. package/dist/cli-bundle/focused-chunks/{chunk-6XKF3PGV.js → chunk-C7JUBRFP.js} +2 -2
  26. package/dist/cli-bundle/focused-chunks/{chunk-KLVUMNXJ.js → chunk-CODV5LUT.js} +2 -2
  27. package/dist/cli-bundle/focused-chunks/chunk-DQ6SMTBF.js +2 -0
  28. package/dist/cli-bundle/focused-chunks/chunk-HAACPSUW.js +2 -0
  29. package/dist/cli-bundle/focused-chunks/{chunk-EXZA4257.js → chunk-J4UFYHOD.js} +2 -2
  30. package/dist/cli-bundle/focused-chunks/{chunk-7NJ4QYQ2.js → chunk-JX5Z344Q.js} +2 -2
  31. package/dist/cli-bundle/focused-chunks/{chunk-PUISBOPP.js → chunk-L4RDYBIQ.js} +2 -2
  32. package/dist/cli-bundle/focused-chunks/{chunk-NSPYTG6G.js → chunk-NJ5RLEFD.js} +2 -2
  33. package/dist/cli-bundle/focused-chunks/{chunk-KT5XMYSX.js → chunk-QYZERYR5.js} +2 -2
  34. package/dist/cli-bundle/focused-chunks/{chunk-M67F5AIN.js → chunk-SSNDYZTM.js} +2 -2
  35. package/dist/cli-bundle/focused-chunks/{chunk-ITAUHSO6.js → chunk-T46KLOIB.js} +45 -45
  36. package/dist/cli-bundle/focused-chunks/{chunk-WTSER4WJ.js → chunk-TZATVC4G.js} +2 -2
  37. package/dist/cli-bundle/focused-chunks/chunk-WY3WRPVN.js +2 -0
  38. package/dist/cli-bundle/main.js +10 -10
  39. package/dist/cli-bundle/sdk-authoring.js +1 -1
  40. package/dist/cli-bundle/sdk-contracts.js +1 -1
  41. package/dist/cli-bundle/sdk-core.js +27 -27
  42. package/dist/cli-bundle/sdk-governance.js +1 -1
  43. package/dist/cli-bundle/sdk-graph.js +1 -1
  44. package/dist/cli-bundle/sdk-merge.js +32 -32
  45. package/dist/cli-bundle/sdk-query.js +1 -1
  46. package/dist/cli-bundle/sdk-runtime.js +1 -1
  47. package/dist/cli-bundle/sdk-testing.js +1 -1
  48. package/dist/cli-bundle/sdk.js +2 -2
  49. package/dist/core/history/workspace-history.js +32 -10
  50. package/dist/core/output/output.js +6 -3
  51. package/dist/core/shared/errors.d.ts +2 -0
  52. package/dist/core/shared/errors.js +2 -2
  53. package/dist/core/store/item-store.js +28 -2
  54. package/dist/sdk/agent/refusal-reachability.d.ts +10 -2
  55. package/dist/sdk/agent/refusal-reachability.js +71 -3
  56. package/dist/sdk/author-attribution.d.ts +56 -11
  57. package/dist/sdk/author-attribution.js +174 -50
  58. package/dist/sdk/cli-contracts/flag-contracts.js +5 -2
  59. package/dist/sdk/cli-contracts/tool-parameter-tables.js +9 -2
  60. package/dist/sdk/cli-contracts/tool-schema.js +12 -4
  61. package/dist/sdk/completion.js +11 -4
  62. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +38 -14
  63. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +38 -2
  64. package/dist/sdk/governance/coverage-assurance.d.ts +24 -0
  65. package/dist/sdk/governance/coverage-assurance.js +61 -0
  66. package/dist/sdk/governance/extension-host-version.js +20 -9
  67. package/dist/sdk/index.d.ts +2 -1
  68. package/dist/sdk/index.js +4 -3
  69. package/dist/sdk/read-output-contracts.js +5 -3
  70. package/dist/sdk/runtime.d.ts +2 -5
  71. package/dist/sdk/runtime.js +3 -2
  72. package/docs/READ_OUTPUT_CONTRACTS.md +7 -1
  73. package/docs/RELEASING.md +13 -7
  74. package/docs/SDK_CONTEXT_INTEGRITY.md +33 -5
  75. package/docs/SDK_CONTEXT_TRUTH_CONTRACTS.md +13 -5
  76. package/marketplace.json +2 -2
  77. package/package.json +1 -1
  78. package/packages/pm-beads/package.json +1 -1
  79. package/packages/pm-calendar/package.json +1 -1
  80. package/packages/pm-command-kit/package.json +1 -1
  81. package/packages/pm-digital-twin/package.json +1 -1
  82. package/packages/pm-governance-audit/package.json +1 -1
  83. package/packages/pm-guide-shell/package.json +1 -1
  84. package/packages/pm-kanban/package.json +1 -1
  85. package/packages/pm-lifecycle-hooks/package.json +1 -1
  86. package/packages/pm-linked-test-adapters/package.json +1 -1
  87. package/packages/pm-search-advanced/package.json +1 -1
  88. package/packages/pm-templates/package.json +1 -1
  89. package/packages/pm-todos/package.json +1 -1
  90. package/packages/pm-vcs/package.json +1 -1
  91. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  92. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  93. package/sdk/public-surface.json +131 -16
  94. package/dist/cli-bundle/chunks/chunk-DSWDLTDR.js +0 -197
  95. package/dist/cli-bundle/focused-chunks/chunk-4X57RE4U.js +0 -2
  96. package/dist/cli-bundle/focused-chunks/chunk-QLNMCESQ.js +0 -155
  97. package/dist/cli-bundle/focused-chunks/chunk-SLKC6QLJ.js +0 -2
  98. package/dist/cli-bundle/focused-chunks/chunk-U65UC4G3.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.15"
9
+ "version": "2026.8.16"
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.15",
16
+ "version": "2026.8.16",
17
17
  "author": {
18
18
  "name": "unbrained",
19
19
  "url": "https://github.com/unbraind/pm-cli"
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # Changelog
2
2
 
3
+ ## 2026.8.16 - 2026-08-16
4
+
5
+ ### Fixed
6
+
7
+ - Workspace history integrity refusals escape typed CLI recovery and become high Sentry faults ([pm-2zkvxm](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-2zkvxm.toon))
8
+ - GH-1019/GH-1020/GH-1021: Node 24 nightly platform regressions after PR \#1016 ([pm-zno2iu](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-zno2iu.toon))
9
+ - GH-814/GH-821/GH-1034: SDK metadata reads must distinguish missing, invalid, and unreadable tracker roots from empty ([pm-23xkss](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-23xkss.toon))
10
+ - GH-1028: history-author-acknowledge bulk mutation lacks dry-run and misreports empty selection ([pm-mcxk8v](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-mcxk8v.toon))
11
+ - GH-1030: contracts --json --full is wholly omitted by the default output budget ([pm-2qvq7a](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-2qvq7a.toon))
12
+ - Auto Release blocker closure ignores successful recovery dispatch and reruns the stale tag-push workflow ([pm-db8onn](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-db8onn.toon))
13
+ - A commit pushed directly to the default branch can never be released: both analyzer-evidence fallbacks presuppose a pull request, and nothing declares that precondition ([pm-u1baah](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-u1baah.toon))
14
+
15
+ ### Other
16
+
17
+ - PR \#1035 final review convergence: POSIX enumeration wording and plan-level replication ratchet ([pm-k9l7e1](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-k9l7e1.toon))
18
+ - PR \#1035 exact-head review follow-up: sandbox-safe proof, completion uniqueness, replacement equivalence, and test isolation ([pm-jv3y4q](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-jv3y4q.toon))
19
+ - Retire the bespoke gate scripts onto the assurance primitives, with a recorded per-script disposition so 6,500 lines of external enforcement either moves into the product or says why it cannot ([pm-4ok4ex](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-4ok4ex.toon))
20
+
3
21
  ## 2026.8.15 - 2026-08-15
4
22
 
5
23
  ### Fixed
@@ -419,7 +437,6 @@
419
437
  - GH-824: core-field recovery must name dedicated flags instead of extension activation ([pm-2jtbl8](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-2jtbl8.toon))
420
438
  - CodeFactor fixed-only success payload blocks exact-head release gate ([pm-xcrlkl](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-xcrlkl.toon))
421
439
  - Both declared context intents are unreachable because the intent applier assigns field-group names into the section value domain, and the two validators give contradictory advice ([pm-ai45y9](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-ai45y9.toon))
422
- - GH-814: SDK metadata reads must distinguish missing and invalid tracker roots from an empty tracker ([pm-23xkss](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-23xkss.toon))
423
440
  - The runtime contract enumeration is not closed over the surface it can resolve: 14 rendered commands, including the list-open that AGENTS.md mandates, are contract-backed by name yet absent from every enumeration ([pm-6j7r1a](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-6j7r1a.toon))
424
441
  - GH-817: machine-readable flag contracts need semantic invocation metadata and stdin capability ([pm-11phn1](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-11phn1.toon))
425
442
 
@@ -1280,6 +1297,7 @@
1280
1297
 
1281
1298
  ### Other
1282
1299
 
1300
+ - PR \#406 review follow-up: clear partial MCP extension registries before fallback execution ([pm-dyzy](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-dyzy.toon))
1283
1301
  - 2026-06-25 PM ecosystem taxonomy and context backlog normalization ([pm-57vh](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/plans/pm-57vh.toon))
1284
1302
  - Normalize stale audit containers and intentional-open resolved items ([pm-psc0](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-psc0.toon))
1285
1303
  - Extend pm package init --declarative to the full capability matrix (hooks/search/importers/schema/renderers/parser/preflight/services) ([pm-lfdv](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-lfdv.toon))
@@ -1305,7 +1323,6 @@
1305
1323
  - Action-scoped MCP parameter descriptions: split shared name/target description per action (schema vs profile) ([pm-fq80](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-fq80.toon))
1306
1324
  - ADR: offline BM25 lexical provider + relevance eval harness for search quality ([pm-f2al](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/decisions/pm-f2al.toon))
1307
1325
  - ADR: explicit pm_format_version front-matter field for storage schema evolution ([pm-eeai](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/decisions/pm-eeai.toon))
1308
- - PR \#406 review follow-up: clear partial MCP extension registries before fallback execution ([pm-dyzy](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-dyzy.toon))
1309
1326
  - Expose project profile application through MCP contracts and drift gates ([pm-bhmk](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-bhmk.toon))
1310
1327
  - ADR: dependency-aware actionability for pm next — ready = active leaf with no open blocked_by; reuse compareCriticalItems + shared blocked_by resolver ([pm-9x6k](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/decisions/pm-9x6k.toon))
1311
1328
  - registerProfile core registration surface: ExtensionApi + registry + loader gate + capability-usage + policy surface ([pm-6oox](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-6oox.toon))
@@ -1434,6 +1451,7 @@
1434
1451
 
1435
1452
  ### Fixed
1436
1453
 
1454
+ - pm-changelog over-escapes markdown in entry titles (parens + intra-word underscores) ([pm-3299](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-3299.toon))
1437
1455
  - GH-293..296 CLI parser and search regression bundle ([pm-yy45](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-yy45.toon))
1438
1456
  - appendLineAtomic is not truly atomic: concurrent appends to history JSONL can interleave ([pm-xy9n](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-xy9n.toon))
1439
1457
  - Project-scope extension install writes ~69MB node_modules per workspace (peer pm-cli + transitive Sentry/OTel) ([pm-oxq2](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-oxq2.toon))
@@ -1443,7 +1461,6 @@
1443
1461
  - Accept --status all for duplicate-safe search and list filters ([pm-i02t](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-i02t.toon))
1444
1462
  - Fix nightly cross-platform reliability: macOS realpath in extension-command test and Windows .cmd spawn EINVAL ([pm-gf6f](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-gf6f.toon))
1445
1463
  - pm health 2.3-3.1s in dev repo (~2x the 1.3s baseline): drift-scan cache hit still reads + content-hashes every history stream ([pm-c90s](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-c90s.toon))
1446
- - pm-changelog over-escapes markdown in entry titles (parens + intra-word underscores) ([pm-3299](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/issues/pm-3299.toon))
1447
1464
 
1448
1465
  ### Removed
1449
1466
 
@@ -1716,11 +1733,11 @@
1716
1733
 
1717
1734
  ### Other
1718
1735
 
1736
+ - Upgrade pm-changelog to 2026.6.9 and validate changelog fidelity ([pm-kx7v](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-kx7v.toon))
1719
1737
  - Document pm-linked-test-adapters package in EXTENSIONS.md and TESTING.md ([pm-yj8n](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-yj8n.toon))
1720
1738
  - Close stale GH issues, clarify dedupe-audit docs, and bump @sentry/node ([pm-utd6](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-utd6.toon))
1721
1739
  - Run verification matrix and temp-dir smoke for active cycle ([pm-rav7](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-rav7.toon))
1722
1740
  - SDK author-ergonomics batch: extension-manifest JSON Schema, getWorkspaceContracts memoization, FlagDefinition type/value_type unification ([pm-l0jd](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-l0jd.toon))
1723
- - Upgrade pm-changelog to 2026.6.9 and validate changelog fidelity ([pm-kx7v](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-kx7v.toon))
1724
1741
 
1725
1742
  ## 2026.6.9 - 2026-06-09
1726
1743
 
@@ -1743,9 +1760,9 @@
1743
1760
 
1744
1761
  ### Added
1745
1762
 
1763
+ - Add schema show-status status inspection ([pm-qpus](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/features/pm-qpus.toon))
1746
1764
  - MCP pm_health defaults to the compact summary projection for token-efficient agent health checks ([pm-yjub](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/features/pm-yjub.toon))
1747
1765
  - list/search: trim default filters/projection/sorting/now trailer in compact/agent mode ([pm-vhx6](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/features/pm-vhx6.toon))
1748
- - Add schema show-status status inspection ([pm-qpus](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/features/pm-qpus.toon))
1749
1766
 
1750
1767
  ### Changed
1751
1768
 
@@ -2005,10 +2022,10 @@
2005
2022
 
2006
2023
  ### Other
2007
2024
 
2025
+ - 2026-05-30 package SDK dogfood audit and startup telemetry performance pass ([pm-qmx3](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-qmx3.toon))
2008
2026
  - Make MCP status enum + shell completion runtime-resolved from schema (not hardcoded) ([pm-jtdc](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-jtdc.toon))
2009
2027
  - Calendar view/format did-you-mean + dependency and type-safety cleanup ([pm-5oxq](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-5oxq.toon))
2010
2028
  - Defer eager per-command startup work: completion flag-strings, MCP tool schema build, telemetry flush spawn ([pm-3mal](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-3mal.toon))
2011
- - 2026-05-30 package SDK dogfood audit and startup telemetry performance pass ([pm-qmx3](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-qmx3.toon))
2012
2029
 
2013
2030
  ## 2026.5.30 - 2026-05-30
2014
2031
 
@@ -2088,6 +2105,8 @@
2088
2105
 
2089
2106
  ### Other
2090
2107
 
2108
+ - Generate full historical CHANGELOG.md through pm-changelog ([pm-afl9](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-afl9.toon))
2109
+ - Verify and repair pm-changelog-generated main CHANGELOG release alignment ([pm-5baq](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-5baq.toon))
2091
2110
  - Deduplicate beads/todos index.ts package-runtime loader (install-safe mechanism needed) ([pm-wwa7](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-wwa7.toon))
2092
2111
  - Deduplicate Beads and Todos package adapter runtimes ([pm-ybfj](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-ybfj.toon))
2093
2112
  - Deduplicate bundled package runtime option parsing helpers ([pm-y5u0](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-y5u0.toon))
@@ -2106,11 +2125,9 @@
2106
2125
  - Single-source Codex plugin docs tool surface ([pm-d97r](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-d97r.toon))
2107
2126
  - Single-source extension governance policy defaults ([pm-axd1](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-axd1.toon))
2108
2127
  - Unify plugin/MCP naming: pm-cli-claude→pm-claude, pm-cli-codex→pm-codex, pm-cli-native MCP→pm-mcp, packages @unbrained/pm-package-X→@unbrained/pm-X ([pm-ash0](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-ash0.toon))
2109
- - Generate full historical CHANGELOG.md through pm-changelog ([pm-afl9](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-afl9.toon))
2110
2128
  - Calendar + SDK + vector-search + docs review (2026-05-27) ([pm-a0w4](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-a0w4.toon))
2111
2129
  - Agent-UX combined PR: compact mutation output (pm-ch59) + smarter unknown-flag recovery (pm-8nyc) ([pm-70mi](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/plans/pm-70mi.toon))
2112
2130
  - Dogfood 2026-05-20 low-severity CLI polish backlog (config UX, init verbosity, help alias bloat, default-safety, doc/validator drift) ([pm-5k2w](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-5k2w.toon))
2113
- - Verify and repair pm-changelog-generated main CHANGELOG release alignment ([pm-5baq](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-5baq.toon))
2114
2131
  - Single-source guide-shell routing snippets across docs ([pm-48vd](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-48vd.toon))
2115
2132
  - Single-source Plan workflow examples across plugin docs ([pm-3y56](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-3y56.toon))
2116
2133
  - Keep large modules maintainable via barrel re-export splits + explicit uncovered allowlist ([pm-3cbk](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/decisions/pm-3cbk.toon))
@@ -2148,6 +2165,7 @@
2148
2165
 
2149
2166
  ### Other
2150
2167
 
2168
+ - Install and validate pm-changelog package ([pm-7811](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-7811.toon))
2151
2169
  - history-repair command + legacy drift cleanup + replay dedup ([pm-c3dx](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/plans/pm-c3dx.toon))
2152
2170
  - Deduplicate templates package runtime and legacy command implementation ([pm-ypqp](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-ypqp.toon))
2153
2171
  - Deduplicate mutation author fallback resolution across commands ([pm-xh0y](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-xh0y.toon))
@@ -2165,7 +2183,6 @@
2165
2183
  - Deduplicate comments, notes, and learnings command stacks ([pm-9y8q](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-9y8q.toon))
2166
2184
  - Deduplicate front-matter key-order contract literals in tests ([pm-8fx3](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-8fx3.toon))
2167
2185
  - Extract shared temporary-directory lifecycle helpers for tests ([pm-7tug](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-7tug.toon))
2168
- - Install and validate pm-changelog package ([pm-7811](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/tasks/pm-7811.toon))
2169
2186
  - Extract shared direct CLI spawn helper for integration tests ([pm-401l](https://github.com/unbraind/pm-cli/blob/main/.agents/pm/chores/pm-401l.toon))
2170
2187
 
2171
2188
  ## 2026.5.23 - 2026-05-23
@@ -13,6 +13,7 @@ interface GuidanceMessage {
13
13
  why?: string;
14
14
  examples?: string[];
15
15
  nextSteps?: string[];
16
+ verificationErrors?: string[];
16
17
  recovery?: PmCliErrorRecoveryPayload;
17
18
  }
18
19
  /** Documents the json error envelope payload exchanged by command, SDK, and package integrations. */
@@ -35,6 +36,8 @@ export interface JsonErrorEnvelope {
35
36
  examples?: string[];
36
37
  /** Value that configures or reports next steps for this contract. */
37
38
  next_steps?: string[];
39
+ /** Exact integrity verifier findings that caused the operation to refuse. */
40
+ verification_errors?: string[];
38
41
  /** Value that configures or reports recovery for this contract. */
39
42
  recovery?: PmCliErrorRecoveryPayload;
40
43
  }
@@ -58,6 +61,8 @@ export interface ErrorClassification {
58
61
  examples?: string[];
59
62
  /** Value that configures or reports next steps for this contract. */
60
63
  next_steps?: string[];
64
+ /** Exact integrity verifier findings that caused the operation to refuse. */
65
+ verification_errors?: string[];
61
66
  /** Value that configures or reports recovery for this contract. */
62
67
  recovery?: PmCliErrorRecoveryPayload;
63
68
  }
@@ -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]="6f4c3f5d-9acc-5e2c-9351-12fdcfcdb56a")}catch(e){}}();
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]="5251395b-715a-5559-a7d5-ca3bc4a1bb16")}catch(e){}}();
3
3
  import { resolveRecoveryCommandName } from "../sdk/agent/command-recovery.js";
4
4
  import { renderPmCommand } from "./argv-utils.js";
5
5
  import { discoverNearbyPmRoot } from "../sdk/tracker-root-discovery.js";
@@ -266,6 +266,10 @@ export function renderGuidanceMessage(message) {
266
266
  lines.push("");
267
267
  lines.push(...renderList("Next steps:", message.nextSteps));
268
268
  }
269
+ if (message.verificationErrors && message.verificationErrors.length > 0) {
270
+ lines.push("");
271
+ lines.push(...renderList("Verification errors:", message.verificationErrors));
272
+ }
269
273
  const recoveryLines = renderRecoveryBundle(message.recovery);
270
274
  if (recoveryLines.length > 0) {
271
275
  lines.push("");
@@ -291,6 +295,9 @@ function guidanceToJsonEnvelope(message, exitCode) {
291
295
  if (message.nextSteps && message.nextSteps.length > 0) {
292
296
  payload.next_steps = message.nextSteps;
293
297
  }
298
+ if (message.verificationErrors && message.verificationErrors.length > 0) {
299
+ payload.verification_errors = message.verificationErrors;
300
+ }
294
301
  if (message.recovery) {
295
302
  payload.recovery = message.recovery;
296
303
  }
@@ -313,6 +320,9 @@ function guidanceToClassification(message) {
313
320
  if (message.nextSteps && message.nextSteps.length > 0) {
314
321
  payload.next_steps = message.nextSteps;
315
322
  }
323
+ if (message.verificationErrors && message.verificationErrors.length > 0) {
324
+ payload.verification_errors = message.verificationErrors;
325
+ }
316
326
  if (message.recovery) {
317
327
  payload.recovery = message.recovery;
318
328
  }
@@ -405,6 +415,8 @@ function applyPmCliErrorContext(guidance, rawMessage, context) {
405
415
  const type = normalizeContextValue(context.type, errorType(code));
406
416
  const examples = normalizeContextList(context.examples) ?? guidance.examples;
407
417
  const nextSteps = normalizeContextList(context.nextSteps) ?? guidance.nextSteps;
418
+ const verificationErrors = normalizeContextList(context.verification_errors) ??
419
+ guidance.verificationErrors;
408
420
  const fallbackTitle = guidance.code === "command_failed" && context.code
409
421
  ? buildFallbackTitleFromMessage(normalizedRawMessage)
410
422
  : undefined;
@@ -421,6 +433,7 @@ function applyPmCliErrorContext(guidance, rawMessage, context) {
421
433
  why: normalizeContextValue(context.why, guidance.why),
422
434
  examples,
423
435
  nextSteps,
436
+ verificationErrors,
424
437
  recovery,
425
438
  };
426
439
  }
@@ -1224,4 +1237,4 @@ export const _testOnly = {
1224
1237
  resolveKnownPackageCommandHint,
1225
1238
  };
1226
1239
  //# sourceMappingURL=error-guidance.js.map
1227
- //# debugId=6f4c3f5d-9acc-5e2c-9351-12fdcfcdb56a
1240
+ //# debugId=5251395b-715a-5559-a7d5-ca3bc4a1bb16
@@ -1,18 +1,20 @@
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]="50a7ce23-2abf-5240-b426-b73cb704e329")}catch(e){}}();
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]="2745d577-4f6c-5b9e-b54a-e1451e022d63")}catch(e){}}();
3
3
  import { resolvePmRoot } from "../sdk/runtime-primitives.js";
4
- import { acknowledgeUnknownAuthorHistoryEvents, resolveUnknownAuthorAcknowledgmentSelector, } from "../sdk/author-attribution.js";
4
+ import { acknowledgeUnknownAuthorHistoryEventsFromTransport } from "../sdk/author-attribution.js";
5
5
  import { collect, getGlobalOptions, printResult, readOptionString, } from "./registration-helpers.js";
6
6
  async function runHistoryAuthorAcknowledgeAction(options, command) {
7
7
  const globalOptions = getGlobalOptions(command);
8
8
  const rawEvents = Array.isArray(options.event)
9
9
  ? options.event
10
10
  : [];
11
- const selector = resolveUnknownAuthorAcknowledgmentSelector(rawEvents, options.allActionable === true);
12
- const result = await acknowledgeUnknownAuthorHistoryEvents(resolvePmRoot(process.cwd(), globalOptions.path), {
13
- events: selector.events,
14
- all_actionable: selector.all_actionable,
15
- attributed_author: readOptionString(options, "attributedAuthor"),
11
+ const result = await acknowledgeUnknownAuthorHistoryEventsFromTransport(resolvePmRoot(process.cwd(), globalOptions.path), {
12
+ historyEvent: rawEvents,
13
+ allActionable: options.allActionable === true,
14
+ dryRun: options.dryRun === true,
15
+ planFingerprint: readOptionString(options, "planFingerprint"),
16
+ limit: options.limit,
17
+ attributedAuthor: readOptionString(options, "attributedAuthor"),
16
18
  reviewer: readOptionString(options, "reviewer"),
17
19
  reason: readOptionString(options, "reason"),
18
20
  });
@@ -24,11 +26,14 @@ export function registerHistoryAuthorAcknowledgeCommand(program) {
24
26
  .command("history-author-acknowledge")
25
27
  .option("--event <item-id:line>", "Unknown-author event coordinate (repeatable)", collect)
26
28
  .option("--all-actionable", "Select all actionable events")
27
- .requiredOption("--attributed-author <value>", "Reviewed principal attribution")
28
- .requiredOption("--reviewer <value>", "Disposition reviewer")
29
- .requiredOption("--reason <value>", "Review evidence")
29
+ .option("--dry-run", "Preview a deterministic source-bound plan")
30
+ .option("--plan-fingerprint <sha256>", "Apply the exact fingerprint returned by --dry-run")
31
+ .option("--limit <n>", "Maximum coordinate rows returned in the plan")
32
+ .option("--attributed-author <value>", "Reviewed principal attribution")
33
+ .option("--reviewer <value>", "Disposition reviewer")
34
+ .option("--reason <value>", "Review evidence")
30
35
  .description("Append audited dispositions for immutable unknown-author events.")
31
36
  .action(runHistoryAuthorAcknowledgeAction);
32
37
  }
33
38
  //# sourceMappingURL=register-history-author.js.map
34
- //# debugId=50a7ce23-2abf-5240-b426-b73cb704e329
39
+ //# debugId=2745d577-4f6c-5b9e-b54a-e1451e022d63