2026.6.5

Added

  • pm validate --fix-hints: machine-executable remediation commands per check elemento pm-6m3y
  • Structured remediation map on pm health --json for all non-extension checks elemento pm-0hnu
  • pm close-many: bulk-close matched items with shared reason and validate-close semantics elemento pm-i17g
  • pm update-many --ids: explicit ID-list filter for targeted bulk mutations elemento pm-1h99
  • pm search --status filter (parity with pm list) elemento pm-ec4s
  • pm list --updated-after/--created-after incremental date filters elemento pm-y138
  • Reusable external npm package ecosystem smoke harness elemento pm-vnjh
  • As an agile/ops/research team, I want pm init --type-preset, so that my domain's item types are registered instantly without manual add-type calls elemento pm-vhd9
  • Per-type workflow / allowed-transitions config (schema/workflows.json) elemento pm-f4r1
  • pm schema add-status: register custom statuses (complement to add-type) elemento pm-e77a
  • pm init --type-preset agile\|ops\|research: batch-register domain item types elemento pm-1lkm
  • pm schema list / pm schema show: inspect registered custom and built-in types elemento pm-qq69
  • First-party hooks capability exemplar (lifecycle hook) for pm-izsi completion elemento pm-s40s
  • Add generic create/update setter for extension item fields elemento pm-qvdj

Changed

  • As a long-running coding agent, I want to list only items changed since my last context window, so that my context stays focused without scanning 900+ items elemento pm-ankr
  • 2026-06-02 commander SDK custom-field and extension-output hardening elemento pm-lwtx

Fixed

  • Sentry reliability gate blocks release on dogfood-generated expected CLI errors (brittle per-count + missing standup-export patterns) elemento pm-yohx
  • governance.create_default_type is not settable via pm config set elemento pm-jpwo
  • Auto Release 2026-06-01 tagged v2026.6.1 but npm publish never completed (latest npm = 2026.5.31) elemento pm-kcba
  • Warn on global service and renderer override footguns elemento pm-5teq
  • Fix GitHub \#98 dependency --dep type parsing elemento pm-dlfq

Removed

Other

  • As an agent gating on pm health/validate, I want machine-executable remediation commands, so that I can auto-repair findings without hardcoding warning-code mappings elemento pm-sz6w
  • Surface settings_read_invalid_schema warning proactively on affected commands elemento pm-7tcw
  • Agent context & bulk-ops primitives: incremental date filters, search --status, --ids targeting, close-many elemento pm-j2ig
  • As a coding agent doing sprint closeout, I want to close all matched items in one audited command, so that I don't issue 20 individual closes or bypass close validation elemento pm-9mjw
  • As a coding agent, I want search to scope to open work by default-able status filter, so that I'm not distracted by closed history elemento pm-arew
  • Sentry gate expected handled CLI classifier refresh elemento pm-flbo
  • After-command hook affected item transition context elemento pm-qzv2
  • As a coding agent bootstrapping a custom-typed project, I want pm schema list/show, so that I can confirm my types registered before pm create elemento pm-mt7k
  • SDK extension hook context and manifest capability guardrails elemento pm-e9ut
  • As a third-party package author, I want first-party capability exemplars and pm_min_version models, so that I can copy working patterns for importers/hooks/search and version compat elemento pm-izsi
  • 2026-06-02 latest-main ecosystem dogfood and SDK review elemento pm-kddw

2026.6.2

Added

  • pm-search-advanced: register a built-in SearchProvider exemplar (search capability) elemento pm-bqpg
  • pm-todos + pm-beads: migrate to registerImporter/registerExporter (importers capability exemplar) elemento pm-13bn
  • First-class importer/exporter registration: registerImporter/registerExporter accept command metadata (description/flags/intent/examples) elemento pm-7qjk

Other

2026.6.1

Added

  • Extend SDK testing helpers to cover hooks, search providers, importers/exporters elemento pm-kfd8
  • Extension manifest pm_max_version (upper compatibility bound) elemento pm-4gw6
  • Declare pm_min_version in all 8 first-party package manifests elemento pm-nf2q
  • Build package-first pm ecosystem and install command elemento pm-59gj
  • SDK ergonomics: package-safe error base, version negotiation, document PM_CLI_PACKAGE_ROOT elemento pm-oxyo

Changed

  • Dedup create/update parsers + optional command-file splits elemento pm-8ehg
  • Vector store: prune orphans on reindex + reset on embedding-model/dimension change elemento pm-xutw

Fixed

  • Calendar: normalize recurrence exdates by instant + document count-window semantics elemento pm-qcsz

Security

  • ADR: Extension sandbox profiles are advisory governance attestations, not enforced isolation elemento pm-6ef3

Other

  • Governance test: enforce manifest pm_min_version and manifest_version on all first-party packages elemento pm-exrw
  • Ecosystem PM living-map audit & reorganization methodology elemento pm-knqw
  • Living-map verification & gap-closure pass (continuation, 2026-05-31) elemento pm-h31a
  • ADR: Startup-latency strategy (prebuilt JS, lazy per-command imports, external deps, no single bundle) elemento pm-irp1
  • ADR: Collision-checked random short IDs (configurable prefix + base36 token) elemento pm-12j1
  • ADR: Git-native filesystem is the database (one file per item; no server, daemon, or DB engine) elemento pm-i7i4
  • Verify living-map: ecosystem coverage gaps elemento pm-xmhn
  • Verify living-map: hierarchy, dependencies & ADR coverage elemento pm-uid0
  • Verify living-map: dedup & definition quality elemento pm-f6rm
  • Ecosystem-wide PM living-context map: audit, ADRs, roadmap, and forward backlog (2026-05-31) elemento pm-w7f2
  • Audit domain: Docs, onboarding, release, changelog & CI elemento pm-obxz
  • Audit domain: Config, schema, custom types & init elemento pm-4uxz
  • Audit domain: Telemetry, observability, Sentry, health/validate elemento pm-kxw0
  • Audit domain: MCP server, SDK & contracts elemento pm-rpc3
  • Audit domain: Extensions, packages & SDK extension API elemento pm-n15j
  • Audit domain: Search & semantic (keyword/semantic/hybrid, embeddings, vector stores) elemento pm-h7n6
  • Audit domain: Storage, item-store, history, TOON, restore elemento pm-ar08
  • Audit domain: Core CLI command surface & item lifecycle elemento pm-hqka
  • ADR: Stable CLI exit-code contract (0 success, 1 generic, 2 usage, 3 not_found, 4 conflict, 5 dependency_failed) elemento pm-x1z3
  • ADR: Never-block agent UX: high-frequency aliases are executable bootstrap rewrites, not suggestion text elemento pm-bwlz
  • ADR: Plugin hybrid model: pm is the git-native store; the editor/agent panel is a live session view elemento pm-7c4t
  • ADR: Date-based calendar versioning with daily automated release and manual same-day follow-ups elemento pm-ee1k
  • ADR: CHANGELOG is auto-generated from closed items by pm-changelog; never hand-edited elemento pm-6san
  • ADR: Health checks are advisory vs blocking: telemetry\_\* never flips ok:false elemento pm-jezo
  • ADR: Expected-error classification keeps Sentry signal-to-noise high elemento pm-c8qa
  • ADR: Local-first telemetry with 'redacted' capture as the privileged default elemento pm-mplj
  • ADR: Two extension-authoring idioms: defineExtension (package mode) vs import-free JSDoc (extension-only) elemento pm-vb5a
  • ADR: First-party packages ship hand-maintained .js alongside .ts (no per-package build) elemento pm-tsio
  • ADR: Compact-by-default is the agent path at the MCP boundary elemento pm-ko1g
  • ADR: Single-source contracts: cli-contracts.ts is the authoritative CLI+MCP+contracts surface elemento pm-2evy
  • ADR: Hand-rolled dependency-free MCP server (JSON-RPC over stdio) elemento pm-pif3
  • ADR: LanceDB pure-JSON snapshot vector store (no native bindings) elemento pm-164t
  • ADR: Non-blocking background semantic refresh (detached worker + reindex lock) elemento pm-vizt
  • ADR: Hybrid search = normalized linear interpolation with a configurable weight elemento pm-66ig
  • ADR: Governance presets (minimal/default/strict/custom) as the primary config surface elemento pm-ouvu
  • ADR: Config-driven runtime schema (4-file model) over hard-coded type/status/field registries elemento pm-a859
  • ADR: Dependency-free settings validator (replaced zod on the hot path) elemento pm-u7xx
  • ADR: Three-tier metadata cache (light scalars / bodies / collections) keyed by file stat elemento pm-vnie
  • ADR: Append-only JSONL history with SHA-256 hash chain elemento pm-hg0k
  • ADR: TOON as canonical item storage; JSON-Markdown is legacy read-only elemento pm-rvbt
  • ADR: Product vision & guiding principle — project management = context management elemento pm-oxq5
  • Refresh changelog after PR closeout merge elemento pm-2y28
  • 2026-05-31 external package audit and agent contract hardening elemento pm-kd9n
  • Runtime-resolved shell completion for custom statuses/types via helper command elemento pm-q4zx
  • Lazy extension activation: defer import+activate until a command needs contributions elemento pm-5wb6

2026.5.31

Added

Changed

  • Per-command code-splitting: lazy command-module imports drop the 943KB monolith + fast-glob from the read path elemento pm-t57d

Fixed

  • pm health ok:false from legacy unused 'index' required subdir elemento pm-yf31
  • Calendar date math is UTC-only: ignores event.timezone and all-day semantics elemento pm-0l88
  • Fix slow/oversized local vector snapshot and mislabeled search fallback elemento pm-f58e
  • Fix per-type default_status config was silently ignored at create elemento pm-y0gl
  • Fix Windows npm command resolution for extension package installs elemento pm-arax

Other

  • Make MCP status enum + shell completion runtime-resolved from schema (not hardcoded) elemento pm-jtdc
  • Defer eager per-command startup work: completion flag-strings, MCP tool schema build, telemetry flush spawn elemento pm-3mal
  • Calendar view/format did-you-mean + dependency and type-safety cleanup elemento pm-5oxq
  • 2026-05-30 package SDK dogfood audit and startup telemetry performance pass elemento pm-qmx3

2026.5.30

Added

  • Reduce ESM module-resolution startup overhead (~85ms) via core bundling elemento pm-ss1d

Fixed

  • Semantic index not auto-refreshed on mutation: create then pm search --semantic misses the new item (stale index) elemento pm-bpaj
  • create rejects common type synonyms (Bug/bug, Change/change) instead of mapping to Issue/Chore elemento pm-4d1b
  • Suggestion-only command aliases (show/comment/note/view) still hard-fail as nonexistent_command instead of executing elemento pm-7by2
  • Calendar positional-date and impossible-deadline UX: pm calendar 2026-06-15 hard-errors; --deadline 2026-02-30 silently rolls to Mar 2 elemento pm-wr74
  • Split metadata cache into light + collections tiers to cut list hot-path JSON parse elemento pm-jd3v
  • create's schedule-less calendar hint suggests rejected --event pipe form (accepts CSV) — blocks agents elemento pm-8c2s
  • Semantic auto-defaults are all-or-nothing: one config leaf disables ALL defaults and hard-errors reindex elemento pm-407c

Other

  • CLI perf, simplification, and best-practice remediation (2026-05-27) elemento pm-th6y

2026.5.29

Added

  • Calendar best-practice: honor timezone, surface Milestone/Meeting items, ICS export elemento pm-xzrx
  • Model-agnostic search: provider settable via pm config + docs + index staleness surfacing elemento pm-7ilo

Changed

  • Code-quality refactors: split runUpdate/runCreate, cli-contracts barrel, shared dedup helpers, drop dead exports elemento pm-1b96

Fixed

  • pm update doesn't accept --expected/--actual aliases that pm close accepts elemento pm-1lws
  • pm comments/notes/learnings --add HTML-escapes angle brackets in stored text elemento pm-ydkl
  • MCP pm_create/pm_update crashed with 'raw.trim is not a function' when priority was sent as a JSON number elemento pm-9r7z

2026.5.28

Fixed

  • Minor UX/correctness: test --add wording, dep-kind vocab, same-command did-you-mean, plan materialize, close inline resolution, scaffold defineExtension elemento pm-fl0c
  • Agent-UX footguns: create-type silent mistype + token-bloat in validate/search output elemento pm-edge

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

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

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