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
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
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
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
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
Other
- Full-scope SDK and extension platform upgrade for app/CI integrations elemento pm-dhie
Security
- 2026-05-09 latest-build full pm CLI dogfood audit and remediation elemento pm-m35h