2026.5.27

Added

  • Cut list/search latency: skip 4.9MB cache rewrite + drop bodies + onRead short-circuit elemento pm-4r5t
  • Bundle CLI with esbuild for sub-200ms startup elemento pm-gt82
  • Add --no-changed-fields flag and compact MCP mutation output to drop the redundant changed_fields array elemento pm-ch59
  • Add pm config set positional value form and shorten the invalid config-key error elemento pm-mf4j

Changed

  • Split large command files exceeding 2000 LOC elemento pm-mbdu
  • Deduplicate item/metadata to record widening casts behind a shared toItemRecord helper elemento pm-p5if

Fixed

  • Improve unknown-option recovery with nearest, abbreviated, and cross-command flag suggestions plus list --sort aliases elemento pm-8nyc
  • Repeated loose-mapped --tag flags silently keep only the last value (agent-unfriendly) elemento pm-cf1u
  • Address pre-existing extension/SDK issues surfaced by PR \#69 review (CodeRabbit) elemento pm-ll50
  • Fix Auto Release failure: build dist before pm-changelog generation runs elemento pm-yf8t
  • Handle concurrent project package installs without EEXIST elemento pm-hw6z
  • pm-changelog generator silently drops items the bundled @unbrained/pm-cli SDK cannot read elemento pm-hybj

Security

  • Latest CLI quality, SDK, telemetry, search, and calendar remediation elemento pm-rnpb
  • Harden extension install against path traversal and fill missing health/validate MCP schema props elemento pm-qhu4
  • Add audited history-stream redaction command elemento pm-xk39

Other

  • Manual real-world E2E dogfood of full pm CLI surface (2026-05-27) elemento pm-gqx7
  • Calendar + SDK + vector-search + docs review (2026-05-27) elemento pm-a0w4
  • Code-quality & dead/duplicate code audit (2026-05-27) elemento pm-jvbt
  • Keep large modules maintainable via barrel re-export splits + explicit uncovered allowlist elemento pm-3cbk
  • Bump @sentry/node 10.53.1 to 10.54.0 elemento pm-0g2p
  • Dedupe history-redact + history-repair lock+ownership scaffolding elemento pm-kbm9
  • Agent-UX combined PR: compact mutation output (pm-ch59) + smarter unknown-flag recovery (pm-8nyc) elemento pm-70mi
  • Harden read-then-lock window uniformly across history-redact/restore/history-repair elemento pm-uer0
  • Create native Codex plugin for pm CLI elemento pm-0c9q
  • 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 elemento pm-ash0
  • Dogfood 2026-05-20 low-severity CLI polish backlog (config UX, init verbosity, help alias bloat, default-safety, doc/validator drift) elemento pm-5k2w
  • Docs hygiene: stop shipping PRD.md in npm package, dedupe PRD<-\>docs, slim CHANGELOG, reconcile marketplace.json elemento pm-rjgh
  • Single-source guide-shell routing snippets across docs elemento pm-48vd
  • Single-source Plan workflow examples across plugin docs elemento pm-3y56
  • Single-source extension manifest and policy examples in docs elemento pm-2awd
  • Single-source Claude plugin capability inventory docs elemento pm-0d0q
  • Single-source Codex plugin docs tool surface elemento pm-d97r
  • Single-source extension governance policy defaults elemento pm-axd1
  • Single-source extension capability and policy-surface contract lists elemento pm-w98k
  • Deduplicate beads/todos index.ts package-runtime loader (install-safe mechanism needed) elemento pm-wwa7
  • Extract shared legacy settings test fixtures elemento pm-ibyi
  • Extract reusable semantic HTTP mock fixtures elemento pm-gvk2
  • Deduplicate Claude and Codex plugin MCP wrappers and smoke flows elemento pm-js0r
  • Deduplicate Beads and Todos package adapter runtimes elemento pm-ybfj
  • Deduplicate bundled package runtime option parsing helpers elemento pm-y5u0
  • Deduplicate files/docs linked-resource command implementations elemento pm-jzf4
  • Code dedup: extract shared CLI parser blocks and consolidate item-record casts elemento pm-why9
  • Generate full historical CHANGELOG.md through pm-changelog elemento pm-afl9
  • Verify and repair pm-changelog-generated main CHANGELOG release alignment elemento pm-5baq
  • Release @unbrained/pm-cli 2026.5.24 elemento pm-jpfc

Closed

  • Closed: pm health takes 8s and reports ok:false due to blocking telemetry flush to unreachable endpoint elemento pm-1lgy
  • Closed: Calendar: improve positional view UX (PM-CLI-Z Sentry) elemento pm-nb68
  • Closed: Surface extension command handler error messages instead of opaque extension_command_handler_failed code elemento pm-zwl7

2026.5.24

Added

  • Default-safety policy for destructive pm commands (gc keeps delete-by-default; add pm delete --dry-run) elemento pm-tobi
  • Config-driven custom item types: wire schema/types.json into runtime schema elemento pm-e1va
  • pm schema add-type CLI + invalid-type error hint (pm-e1va) elemento pm-fy8o

Fixed

  • Recover 16 unreadable TOON item files: strict decoder mis-parses bracketed tokens followed by a colon inside quoted text fields elemento pm-iqgj
  • pm-changelog extension fails on large tracker JSON elemento pm-bu50
  • Linked test sandbox cleanup can fail with ENOTEMPTY elemento pm-u43m
  • pm update --blocked-by does not create a pm deps graph edge elemento pm-kyd6
  • Auto daily release silently skips releasable commits when CHANGELOG \[Unreleased\] is empty elemento pm-ot8r
  • pm update/create --test shares the B2 silent key-corruption (no cmd alias, no unknown-key rejection) elemento pm-swie

Removed

  • Deduplicate item-store mutation and delete lifecycle setup elemento pm-za3c
  • CLI ergonomics polish: concise init, help alias collapse, named priorities, package install hints, starter templates, delete dry-run elemento pm-fuat

Security

  • Update npm dependencies: minor version bumps (sentry/cli, toon, node types, vitest, tsx) elemento pm-a2g6
  • Deduplicate path containment helpers across package and extension code elemento pm-dpzc

Other

  • Deduplicate recurrence weekday ordering helper elemento pm-max1
  • Deduplicate item-type definition normalization across settings and registry elemento pm-v798
  • Deduplicate runtime terminal-status checks across query commands elemento pm-i04b
  • Centralize audit ownership-conflict guidance elemento pm-ols6
  • Deduplicate comments, notes, and learnings command stacks elemento pm-9y8q
  • Deduplicate lazy dynamic-import cache boilerplate in CLI registration elemento pm-c98b
  • Deduplicate health and validate history-drift checks elemento pm-qsk8
  • Deduplicate mutation author fallback resolution across commands elemento pm-xh0y
  • Deduplicate front-matter key-order contract literals in tests elemento pm-8fx3
  • Install and validate pm-changelog package elemento pm-7811
  • Extract shared direct CLI spawn helper for integration tests elemento pm-401l
  • Extract shared JSON error-envelope test assertions elemento pm-alqo
  • Extract shared extension fixture writer for tests elemento pm-j15d
  • Extract shared test item factories for command specs elemento pm-eltf
  • Extract shared temporary-directory lifecycle helpers for tests elemento pm-7tug
  • Deduplicate templates package runtime and legacy command implementation elemento pm-ypqp
  • Calendar agent ergonomics: equal start/end rejected; schedule-less Event items invisible elemento pm-uzmf
  • Dogfood 2026-05-21 follow-ups: test --add key validation, semantic-fallback labeling, close active-children info, stale blocker on close elemento pm-fu5d
  • history-repair command + legacy drift cleanup + replay dedup elemento pm-c3dx

2026.5.23

Changed

  • Remove dead code: command-aware.ts module, 5 orphaned exported functions, unused undici dependency elemento pm-b7do

Fixed

  • Audited history-repair (re-anchor) command + clear legacy history drift so pm health is ok elemento pm-85hm
  • pm plan: materialize creates dependency cycle; decision/discovery/validation flag mismatch; --steps all unsupported elemento pm-6blp
  • Calendar: pm cal <view\> --date crashes (positional view + any flag) elemento pm-l292
  • pm health output stays large even with --brief/--skip flags; add a true one-line summary mode elemento pm-nbht
  • pm create --blocked-by stores free-text metadata, not a dependency edge or blocked status (agent-confusing) elemento pm-orrl
  • MCP pm_comments returns full comment history (no default limit) — token bloat on long-lived items elemento pm-6vfg
  • Reduce default verbosity of pm activity/history CLI output and add a compact mode to pm history elemento pm-3pbs
  • MCP pm_run activity defaults to verbose raw history-patch dump (token waste for agents) elemento pm-8jd3
  • Dogfood 2026-05-20: CLI/agent-UX consistency fixes (append text forms, scope errors, --list parity, command typo suggestions) elemento pm-atsv
  • MCP pm_search defaults to full item bodies, blowing past agent token limits elemento pm-qrxs

Security

  • Harden secret-scan guardrail for GitHub token prefixes and local credential hygiene elemento pm-h4zb

Other

  • Session 2026-05-23: agent-UX + deps-graph integrity batch (multi-agent) elemento pm-uz25
  • Deduplicate history, restore, and redaction replay helpers elemento pm-pjs5
  • pm validate: ok:false on warn-only checks + dumps every item ID per field elemento pm-1nht

Closed

  • Closed: Agent UX: pm update --status closed, explicit semantic/hybrid search, and pm create <type\> <title\> must never block agents elemento pm-j1v7
  • Closed: Sentry PM-CLI-R/PM-CLI-S: undefined-status .trim and undefined-tags .join crashes (fixed in HEAD, mark resolvedInNextRelease) elemento pm-d7us

2026.5.18

Added

  • Add pm plan list subcommand or did-you-mean to pm list --type Plan elemento pm-zpa5
  • pm list should default to --brief (full output via --full) to halve token cost elemento pm-b7sd
  • Add agent-optimized pm plan command with linked dependencies elemento pm-v7dj
  • Add built-in Plan item type and storage/search integration elemento pm-jauk
  • Drastically improve GitHub runner time and resource usage (free-tier only) elemento pm-tzwy
  • Add pm init checks for AGENTS/CLAUDE pm workflow guidance elemento pm-7t04
  • pm init footer + bundle calendar so cal/templates are discoverable elemento pm-8wwl
  • pm claim --if-available (skip when held) — reduce 533 ownership_conflict events elemento pm-d4bo
  • pm get/show: did-you-mean suggestions for unknown IDs (telemetry: 233 hits/30d) elemento pm-99x5
  • Auto-route pm update --status closed --close-reason to pm close (telemetry: 248 hits/30d) elemento pm-12ib
  • pm update with no fields should noop-succeed, not fail (telemetry: 128 hits/30d) elemento pm-7cup
  • Add --with-packages flag to pm init for one-shot package install elemento pm-hosd

Fixed

Other

Closed

  • Closed: pm install <invalid\> lacks did-you-mean for built-in aliases elemento pm-uuee
  • Closed: pm validate after fresh create is scary — downgrade default profile noise elemento pm-tylj
  • Closed: pm contracts default returns 286 KB / 9612 lines — token catastrophe for agents elemento pm-p8j6
  • Closed: pm bare command silent exit 0 — no help shown elemento pm-8rj2
  • Closed: CLI silently corrupts --tags '\["a","b"\]' JSON-array input (agent-unfriendly) elemento pm-klqo
  • Closed: auto-release.yml workflow_dispatch silently overrides explicit push=false to true elemento pm-qa2h

2026.5.14

Added

Changed

Fixed

Other

2026.5.12

Added

Fixed

Other

2026.5.10

Added

Security

  • 2026-05-09 latest-build full pm CLI dogfood audit and remediation elemento pm-m35h

2026.5.6

Fixed

Other

2026.5.3-2

Other