Changelog
Unreleased
Fixed
- Scheduled auto-release has a chronically high failure rate and no rolling measure, so a degraded pipeline reads as healthy one run at a time (pm-e70zh5)
- Daily auto-release never runs in its declared window: all 84 scheduled runs fired 2.5-4 hours after the cron time, so the release clock is undocumented drift (pm-44u3wt)
- GH-1294: release commit omits synchronized plugin runtime manifests (pm-t4prek)
- The related ceiling is pinned to the live count with block enforcement, so recording one associative sibling relation anywhere in the tracker fails CI while the share floor it duplicates would have allowed it (pm-r3o7x4)
Security
- Semgrep 874840452: Medium dependabot missing cooldown in .github/dependabot.yml#L3 (pm-gkut)
- Semgrep 874840451: Medium dependabot missing cooldown in .github/dependabot.yml#L23 (pm-dmo5)
2026.9.24 - 2026-09-24
Fixed
- Dogfood test failure must not print inherited environment secrets (pm-jiv3dw)
- Claude plugin: marketplace installs fall back to npx @latest, not the advertised native MCP server (pm-l9wl)
- Windows copied agent plugins cannot install pinned runtime through npm.cmd (pm-d6fd85)
- Nightly coverage, quality, and Windows tests exceed serial job budgets (pm-ul9rye)
- GH-1291: Windows nightly release cleanup fixture includes Node compile cache (pm-puf5rq)
Security
- Scorecard Token-Permissions (0→10): declare least-privilege top-level permissions in every GitHub workflow (pm-003j)
Other
- Support safe Bash completion inside quoted and escaped prefixes (pm-eswzn9)
- Refresh compatible Sentry, jscpd, and TypeScript-ESLint patches for September 22 (pm-hate9s)
2026.9.23 - 2026-09-23
Other
- Mutation-testing gate: prove the 100 percent coverage suite actually detects defects, with a ratcheted mutation score on SDK core (pm-zclzll)
2026.9.22 - 2026-09-22
Fixed
- Prevent dogfood telemetry workers from recreating disposable workspaces (pm-idj82e)
- GH-1287: Release evidence integration test depends on mutable repository changelog state (pm-lq10y3)
- GH-1284: release notes must read complete tracker evidence beyond default output budgets (pm-svxdsx)
- Fix smoke and contract workspace cleanup on exits and interrupts (pm-14dnbh)
Security
- Refresh pinned Codecov CodeQL and TruffleHog actions with dependency-update-safe workflow contracts (pm-mwdout)
Other
- Extend owned workspace cleanup across release gates and interruptible test runners (pm-xjy565)
- Refresh fast-check and tsx patches under unchanged dependency policy (pm-kpoj19)
- Repair calendar shortcut package discovery and upgrade migration guidance (pm-o3fh)
- Prune src/cli/commands/index.ts barrel dead re-exports and adopt knip as a dead-export gate (pm-f4yn)
- Diagnose abandoned build leases before the full acquisition timeout (pm-63i8nr)
2026.9.21 - 2026-09-21
Fixed
- GH-1280: preserve literal completion across Bash versions and package helper paths (pm-t6jl1f)
Other
- Refresh compatible September 20 validation tooling alongside portability regressions (pm-cljdn3)
- Bound replication-gate Git work independently of tracker migration size (pm-26y269)
2026.9.20 - 2026-09-20
Changed
- Refresh jscpd 5.3 and verify decomposed source with zero-clone gates (pm-xgbzxs)
- Decompose CLI bootstrap, SDK dispatch, extension loading, and shell completion (pm-yh8r)
- Decompose SDK search into query, retrieval, and response modules (pm-jt3b)
Fixed
- Make native shell acceptance portable to hosted Fish (pm-d8exnz)
- Preserve Unicode and isolate completion data in Bash, Zsh and Fish (pm-cimph7)
- Harden Bash completion literals and large-workspace search normalization (pm-ul5lph)
Other
- Resolve validate duplicate issue-code GH-209 warning without changelog drag (pm-pivf)
- Deterministic closed_at backfill for legacy closed items derived from history streams (pm-wrbe)
2026.9.19 - 2026-09-19
Fixed
- Workspace singleton files (settings.json, schema, session-state, checkpoints) are lock-free read-modify-write — parallel pm config set demonstrably loses updates (pm-bgcu)
- The close-time blocker-clear warning names one deleted ordering edge out of N, so silent multi-blocker data loss is indistinguishable from single-blocker clearing (pm-scbr0s)
- Declare and enforce shared default bounds across graph queries (pm-mfy1ux)
- Isolate published MCP verification from the caller global skill catalog (pm-prmt1y)
- The --profile timer reports a fraction of real invocation latency and is documented nowhere, so every latency judgement built on it is calibrated against the wrong number (pm-ag9nka)
- Count successful provenance resolutions so historical health advisories can clear (pm-4f1l7f)
- Isolated release acceptance inherits npm allow-scripts through npm run (pm-64qsbl)
- macOS registry acceptance rejects empty optional flags under Bash nounset (pm-q4avk2)
- Windows transport-floor contract test batches 78 fixtures under one deadline (pm-lgyaw8)
Other
- Fail repository tests on undeclared MCP options including reporter overrides (pm-v0s2rm)
- Reconcile provenance delivery metadata with reviewed implementation (pm-senomv)
- Refresh Node declarations to 26.6.1 for SDK and process timing validation (pm-8p629e)
2026.9.18 - 2026-09-18
Fixed
- Allow canonical JSON/TOON encoding on mutations (pm-1rta7z)
- Omit redundant read receipts when canonical output flags do not compact results (pm-g8oh0f)
- Keep the largest list prefix that fits the output budget (pm-15yuly)
- Reject ambiguous event durations with explicit minute and month units (pm-jkjt)
- Packed telemetry acceptance must await completion across delivery batches (pm-07m41m)
- GH-1264: enforce next ready-queue token budgets and disclose omitted recommendations (pm-v53h9j)
- Reject malformed linked-test JSON paths instead of silently normalizing assertions (pm-czr31p)
Security
- Reject inherited array elements in linked-test assertions (pm-1skc)
- Read linked-test JSON assertions without invoking accessors (pm-xxrq)
- Prevent prototype traversal in nested settings reads and writes (pm-3kk6)
- Share secret and private-context detection between mutation preflight and repository scanning (pm-wwooxx)
Other
- Serialize the complete build pipeline so overlapping validation cannot consume partially rewritten dist artifacts (pm-cxc4jc)
- Released-artifact acceptance: the exact published tarball is installed clean and driven through a scripted agent session before the release is advertised (pm-ygli86)
- Verify explicit calendar duration in package-first dogfood (pm-d9bg0i)
- ADR: Require explicit minute and month units for event durations (pm-j1vw3a)
- Context judgment corpus: small, real-shaped, scale, and returning-agent continuity scenarios for pm context/next (pm-lixy)
- Refresh Sentry 10.75 and CLI 3.8 with Unicorn 75 compatibility proof (pm-1wypwu)
2026.9.17 - 2026-09-17
Fixed
- Keep merge driver launchers usable after runtime upgrades (pm-rcjyft)
2026.9.16 - 2026-09-16
Fixed
- Preserve oversized standard item reads with a brief projection and explicit omission receipts (pm-8eclqf)
Other
- As an agent on a minutes-old scratch project, pm init, quick-capture create, and next are near-zero ceremony and token-cheap at three-item scale (pm-z436)
2026.9.15 - 2026-09-15
Fixed
- Preserve telemetry identity and runtime acceptance across Node and npm versions (pm-7msh7k)
- Automatically bound high-frequency read-only telemetry volume (pm-um3teu)
- Prevent stale cleanup from reclaiming a lock during owner metadata initialization (pm-v2pg4f)
Other
- Adopt PR 1257 pnpm setup and CodeQL action updates (pm-b01nb3)
2026.9.14 - 2026-09-14
Changed
- Update marked to 18.0.13 for documentation parser fixes (pm-t9qgf1)
- Refresh Node types 26.5.1, YAML 2.9.1, and fast-check 4.10.0 (pm-7ej0mh)
Fixed
- Preserve telemetry events across concurrent queue rewrites (pm-utxk3h)
- Honor revoked telemetry consent across capture and identity initialization (pm-yjq2x0)
- Explain rejected telemetry source-context overrides without leaking raw values (pm-bw8lsb)
- Destination census rows cite terminal consolidation owners for five live commands, so the grammar gate certifies consolidations no open item will deliver (pm-3ig9b6)
- Package-declared internal commands leak into default runtime contracts (pm-34xisz)
- Allow non-colliding extension leaves beneath core command groups (pm-bwkmp4)
- Compact default list receipts and avoid repeated recovery argument echoes (pm-4f86c4)
- Canonicalize unknown-command recovery with replacement flags (pm-zsic8h)
Other
- Give assurance a declared noun placement and history-author-acknowledge a history leaf: the two live commands whose consolidation owners closed without moving them (pm-djyvbk)
2026.9.13 - 2026-09-13
Fixed
- Suppress inferred test telemetry before identity creation and export (pm-745epp)
- Honor DO_NOT_TRACK across telemetry capture flush and diagnostics (pm-ikgitf)
- Expose privacy-bounded agent harness and CI telemetry dimensions (pm-nnn9nf)
- Published-package verification gives up before npm metadata propagates: two consecutive scheduled cuts were recorded as failed and re-run by hand while the artifact was already live (pm-wzmbvn)
Deprecated
- Permanent hot-path aliases print the migration hint reserved for deprecated spellings on every human-readable call, so the project's own skills cost an extra stderr line per invocation (pm-crd6bf)
Other
- Expose explicit paired sampling for core-only telemetry reads (pm-wrdctq)
- Consolidate item annotation facets: comments/notes/learnings/files/docs/deps/append/test become one facet grammar (old spellings aliased) (pm-yql1)
- Hide runtime completion helper entrypoints from the default agent-facing command surface (pm-szdc)
- Hide internal test-runs-worker from default help/contracts and route it under the test execution plumbing (pm-lp4j)
2026.9.12 - 2026-09-12
Changed
- Verify complete merge documents across branch permutations and merge directions (pm-1tns7o)
Fixed
- Two items created independently on two branches with the same id merge into one document carrying two create entries, and storage integrity only notices when the types differ (pm-qx95lz)
- Isolate merge reconciliation receipt discovery from unrelated invocation workspaces (pm-q5grv5)
- The immutable history op vocabulary is ungoverned: 71 op literals across five naming conventions, with the same operation spelled two ways in one file, are written permanently with no enum, no contract, and no gate (pm-0elqjj)
- Read surfaces give no tombstone signal for a deleted id: pm get returns a bare not-found, so an agent cannot tell never-existed from deleted-and-recoverable (pm-nb4zwz)
- CI assurance receipts must explicitly request complete evidence beyond interactive output ceilings (pm-yrio0m)
- GH-1231: Expose non-vacuous lifecycle completeness evidence (pm-khd2fd)
- GH-1232: Normalize policy authoring ids with actionable mismatch recovery (pm-ycv2cz)
- GH-1233: Make strict ownership recovery executable for annotation writes (pm-nrkjik)
Other
- Streamline agent triage and schema command discovery (pm-gdi7)
- Compact compound lifecycle receipts without losing SDK results (pm-r1f9f1)
2026.9.11 - 2026-09-11
Added
- Portable integrity attestation: compare recorded history with independently retained proof bundles (pm-3z0k)
Fixed
- The history integrity chain hard-codes SHA-256 with no algorithm identifier, so the proof it produces has no migration path across the decades it claims to cover (pm-bbk8we)
- Optional undefined result fields silently drop telemetry completion events (pm-rqaqfp)
- GH-1229: preserve bounded HTTP process-tree cleanup when POSIX liveness returns EPERM (pm-qn9zxu)
Other
- Refresh jscpd 5.2 and MCP Apps 2 development contracts (pm-qs5iiq)
- Register advanced retrieval as a search facet (pm-wfskfn)
- Consolidate duplicate governance under item operations (pm-fmy9ih)
- Declare item copy and workspace merge command destinations (pm-m6g87m)
- Refresh Sentry 10.74 with history attestation consumer verification (pm-2us1yv)
2026.9.10 - 2026-09-10
Changed
- Fold bulk and destructive lifecycle variants into their base nouns: update-many into update, close-many into close, delete/restore placement per ADR (pm-ik19)
Fixed
- Isolate CodSpeed dependency setup from unrelated Chrome APT index failures (pm-zvy31w)
Other
- Fold lifecycle sugar start-task/pause-task/close-task into claim/release/close flags (hidden aliases) (pm-eq4x)
- Native pm ops stats, health, validate, gc, telemetry, eval and test-all with compatible root commands (pm-6apl)
- Native pm context next and pm context focus with permanent navigation aliases (pm-kcs4)
- Native pm ops normalize, pm ops reindex and pm history events with compatibility aliases (pm-3i9q8g)
2026.9.9 - 2026-09-09
Added
- Lifecycle field-completeness contract: each item type declares the fields required at each status transition, machine-checked by pm validate (pm-htbetn)
- Declarative policy engine: item-level transition, approval, and authorship rules declared as data and enforced consistently at the SDK layer (pm-mj42og)
Fixed
- Explain binding token budgets beside read-output alias migration hints (pm-8kzfc4)
- Preserve dependency kind constraints in rendered enum errors (pm-lk0qhn)
- pm search defaults to keyword on a workspace whose vector index is complete, so the shipped Ollama semantic default never reaches the default query path (pm-n8a6e7)
Security
- GHSA-crvj-82cr-hjcx: Hono: Query parser reads parameters after the URL fragment, causing cache-key and proxy interpretation differentials (pm-vnv467)
- GHSA-g6gw-c38x-mqfc: Hono: Unbounded dot-notation nesting in
parseBody()can cause memory exhaustion (pm-gxt0mx) - GHSA-gqvv-2mrq-wpjv: Hono: Incomplete fix for CVE-2026-39408:
toSSG()still writes files outside the output directory (pm-rc8708)
2026.9.8 - 2026-09-08
Added
- Derived scheduling: propagate milestone deadlines backward through the ordering graph so every gating item carries a latest-start date instead of only six dates existing in the whole plan (pm-d2wfig)
Changed
- Unify history maintenance with one verified SDK snapshot and rewrite pipeline (pm-34w8za)
Fixed
- GH-1218: expose local package copy scope and packed-install alternatives (pm-5bsofk)
- GH-1219: report truthful package update coverage for skipped and failed checks (pm-gf5zw8)
- Claim ownership response repeats full metadata despite the compact mutation contract (pm-eqdo85)
- Reject repository-local test scratch roots before sandbox fixtures can mutate the real Git workspace (pm-bukwmy)
- GH-1214: Bound complete item reads and isolate Git newline fixtures on Windows (pm-hrhfgi)
- GH-1216: Preserve diagnostic identity and sanitize short and bounded error text (pm-m4uyyj)
- GH-1215: Preserve original source maps through aliased build roots (pm-zk67yf)
- Grouping by a set-valued field groups by the whole set: pm aggregate --group-by tags returns 2,022 tag-tuple rows for 2,467 items, so the governance question the command exists to answer cannot be asked (pm-398z0u)
- The graph completeness audit scopes every coverage metric to active nodes, so it certifies a saturated graph while 1,796 of 2,079 nodes are unmeasured (pm-6olc95)
Other
- MCP 2026-07-28 per-request log level is neither read nor negatively controlled, and the conformance matrix has no row for it (pm-pd7nh0)
- Backfill terminal resolution evidence without placeholder metadata (pm-e9zh)
- Consolidate history commands: history-redact/history-repair/history-compact/activity/restore under pm history subcommands (pm-tqel)
- Compact unbundled runtime JavaScript while preserving SDK declarations and Sentry source maps (pm-fx0rcb)
- Adopt PR 1212 release and secret-scanner action pins with matching workflow contracts (pm-shpocu)
2026.9.7 - 2026-09-07
Fixed
- Release preparation omits the calendar date and fails post-tag main CI (pm-071wg4)
2026.9.6 - 2026-09-06
Fixed
- GH-1207: Make advisory health checks and strict verdict authority explicit (pm-fkohe8)
- The tracker's recurrence edges and the CI recurrence policy are two ledgers with no join, so 59 of the 75 items in a recorded recurrence lineage produce no gate anywhere (pm-7c27ep)
- Refresh review acknowledgements when bot feedback changes (pm-8we38i)
- pm health --check-only, the diagnostic AGENTS.md routes agents to, reduces nothing: it costs 33k tokens where --summary states the same verdict in 142 (pm-du93sr)
- GH-1203: Offer actionable acceptance-evidence backfill after a warning close (pm-ub1ott)
- GH-1202: Classify abandoned merge receipts without losing durable provenance (pm-466m0j)
- GH-1200: Preview exact receipt proof before merge reconciliation (pm-ao0bu9)
- GH-1206: Verify legacy receipt redactions across hash encodings (pm-v66zir)
- GH-1205: Declare root-only versus inherited extension flag reservation scope (pm-2h8t6y)
- GH-1201: Recover invalid pending receipt evidence across release upgrades (pm-2xtv84)
- The linked-file staleness check has no holder-lifecycle partition, so 1,220 links on closed holders warn forever while its worklist truncation hides the actionable subset behind a path count reported as a row count (pm-zw9188)
- 2026.8.1 regression: governance dedupe audit rejects the restored all-lifecycle status sentinel (pm-449do9)
- Normalize local parent shorthand consistently with dependency identifiers (pm-olcoon)
- Every pm next and pm context read writes one usage-ledger row per open item under a single global lock, and the compaction trigger is a byte threshold that a count-based retention can never satisfy (pm-bab3gb)
- Reading one item by its primary key scans the whole workspace: pm get is O(corpus) and the projection flags bound the output but not the work (pm-ydshl9)
- Telemetry worker permanently retries JSONB-incompatible Unicode events (pm-xlb6aw)
- Telemetry worker: no Postgres reconnect — ingestion stalls with events stuck in RabbitMQ after postgres restart (pm-rj3w)
- Metadata index rebuilds and mutations repeatedly scan an unindexed FTS identity column (pm-gtw5zh)
- Read sessions emit invalid continuation identities from workspace activity rows (pm-s8ybl9)
- Scale fixtures silently omit unregistered Story items from metadata reads (pm-fx80w2)
- Releases from the default branch are supported with analyzer evidence (pm-u1baah)
Other
- Cross-process reproducibility gate: prove CLI and MCP deterministic runs are byte-identical and fail on ambient time leaks (pm-vklr99)
- The docs gate enforces link resolution but not doc reachability, so orphaned docs pass CI and the advertised docs map silently drifts (pm-s4y3z4)
- docs-skills-gate: validate anchor fragments in relative links (pm-esbt)
2026.9.5 - 2026-09-05
Fixed
- Tag-push Release must regenerate the exact-tag changelog before immutable publication (pm-e63v1x)
- pm next recommends outcome-milestone gates as actionable work, and summary.containers counts a bucket the envelope never emits (pm-08mt4k)
- Windows published-release verifier test can preempt its own readiness and cleanup contract (pm-euqm7x)
- Commander usage refusals omit token_accounting even when --token-accounting is parsed (pm-bfa1ob)
- flag-invocation-parity only iterates declared flags, so 21 runtime options across 8 core commands have no flag contract (pm-2bqgs7)
- pm release leaves the item in_progress with no owner: offer --status open (or hint) so released work does not linger as phantom WIP (pm-ugld)
- GH-1169: the unknown-command hint routes to the 15-command root help that hides the target, and test is the only singular collection verb (pm-u4t9gp)
- pm context summary counts are denominated in the returned slice, so the canonical orient cold-start reports 4 open items in a 291-item backlog (pm-79gv6q)
- GH-1171: restore parses the on-disk item before consulting history, so a zero-byte or corrupted item file with an intact stream cannot be rebuilt (pm-96fsma)
- history-compact renumbers version identifiers, so pm get --at N and pm restore N address a different recorded state after compaction with exit 0 and no signal (pm-m0yjtg)
- A deleted item's id is immediately re-mintable, so one immutable history stream can hold two unrelated items and every integrity check still reports verified (pm-e3gn0z)
- Point-in-time reconstruction crashes with an unstructured runtime error when a history stream opens without a baseline entry, so the restore-any-version guarantee fails with no diagnosable condition (pm-qw1uw6)
- Agent skills instruct flags and spellings the runtime refuses, and no guide topic routes the evidence or automation families (pm-4957pz)
- Sentry-injected release artifacts exceed the CI package budget because pre- and post-injection packlists share one ceiling (pm-llbnua)
- GH-1190: Windows nightly can publish the event index after an unlocked fallback append (pm-a7207g)
Other
- Upgrade Greptile review tooling to 3.5.0 with compatible dependency evidence (pm-o3mczz)
- Point-in-time reconstruction gate: prove every item at every recorded version replays exactly from its history stream alone (pm-wlqxg3)
- Refresh compatible jscpd 5.1.2 and reconcile the 2026-09-04 dependency census (pm-gredf1)
2026.9.4 - 2026-09-04
Added
- Verdict contract: one declared vocabulary of reproducible predicates over recorded state, composable into a score, with reward shaping explicitly refused (pm-e1vkee)
Fixed
- Packed npx smoke timeout rejects valid slow dependency reification (pm-8eebb6)
- GH-1186: unrecoverable legacy merge-receipt references block strict health with diagnostic-only remediation (pm-cf4t42)
- GH-1185: hash-only merge receipts make discarded scalar values unreachable to the reviewing agent (pm-mg13iz)
- GH-1184: scalar merge conflict ordering ignores recency and requested preference (pm-7wzb6d)
- Acceptance criteria are documented as merging like tags but are stored as one delimiter-joined scalar, so concurrent criteria additions from different branches are silently discarded (pm-inn5y5)
- GH-1183: Windows nightly event-index lock acquisition and fallback publication are nondeterministic (pm-fqlocp)
- GH-1177: Claude session provenance path is derived from invocation cwd instead of the session-start workspace (pm-l7m7k5)
- GH-1179: legacy merge-receipt shape is misclassified as a gate-failing missing history reference with no remedy (pm-wn3ee5)
- Re-anchoring overwrites the original hash pair, so the immutability proof for every pre-merge entry is destroyed by the operation that repairs the chain (pm-aka8m7)
Security
- GH-1178: history hashes exclude record author and agent provenance, so attribution can be rewritten without detection (pm-javbsq)
Other
- Refresh compatible @types/node 26.4.1 patch (pm-vwtwqj)
2026.9.3 - 2026-09-03
Fixed
- A read whose result was omitted for budget still records those items as served and included, so the usage-affinity signal learns from context the agent never received (pm-wv47pf)
- Shape-qualified scale baselines drifted from current CLI/SDK output contracts and supported runtime (pm-r8yytk)
- Context recency is computed from updated_at, so every governance write the project mandates erases the freshness signal it ranks on (pm-07pt16)
Security
- OSSF Scorecard alert #29: qs denial-of-service advisories in the MCP Apps development dependency tree (pm-mlpn91)
Other
- Refresh compatible 2026-09-01 jscpd 5.1.1 tooling (pm-ur4swu)
- Refresh Sentry 10.73 and TypeScript-ESLint 8.69 with exact coverage (pm-92tp12)
2026.9.2 - 2026-09-02
Fixed
- GH-1174: Windows Node 24 receipt traversal negative control must fail closed portably (pm-r97901)
Security
- GH-1173: make merge-receipt evidence diagnostics source-stable and record-addressable (pm-dn8rwl)
2026.9.1 - 2026-09-01
Added
- GH-796: duplicate recurrence now reopens the canonical terminal item instead of creating a second item (pm-83cz0o)
- Progressive MCP discovery and canonical tool results: reveal the minimum relevant catalog and deliver one unambiguous model-facing output contract (pm-3g3f8z)
Fixed
- The two-call agent cold start proposed as canonical costs more tokens than the four-call protocol it replaces, and no gate measures either (pm-jjqyzd)
- GH-1166: root help hides the --all discovery option that reveals the full command surface (pm-7f9zkh)
- GH-1104: health must not certify pending lossless merge receipts as reconciled (pm-baksix)
- GH-1135: item_hash_version 2 still masks writer hash divergence as corruption (pm-2qahia)
Security
- Refresh compatible GitHub Actions and tsx tooling dependencies (pm-k47gdd)
Other
- Document the measured canonical agent cold-start across docs and generated guidance (pm-ka6d)
- Close-time completeness signal for structured resolution fields (resolution/expected/actual) — config-gated warn or require (pm-wenq)
2026.8.31 - 2026-08-31
Added
- Workspace position read: one bounded answer to where this workspace stands in the branch-and-merge workflow and what to run next, replacing a protocol the agent must remember (pm-bq0ii8)
Fixed
- Custom statuses registered without a lifecycle role are silently orphaned from every work-selection surface (pm-0mhspz)
- GH-1158: Windows Node 24 nightly receipt fixture derives a root-relative expectation from a drive-qualified path (pm-46hpx8)
- GH-1154: linked-test sandbox guard is command-shape inconsistent and undocumented (pm-s8cth5)
- The local preflight token-budget gate is red on a workstation and green in hosted CI for the same commit again, because the earlier remediation closed the one ambient channel that had bitten instead of closing the fixture's environment (pm-4o7tlx)
- The bounded legacy MCP compatibility set stops one revision short of the spec's own legacy boundary, so every current host is refused at initialize and the dual-era guarantee is unmet (pm-edywqn)
Deprecated
- The project's own agent-facing documentation and skills instruct deprecated command spellings, so the alias-usage signal that decides when a spelling can be retired is manufactured by the instructions rather than observed from callers (pm-q2n4vd)
2026.8.30 - 2026-08-30
Other
- Adopt eslint-plugin-unicorn 74 with strict lint and packed-consumer proof (pm-6f66vu)
2026.8.29 - 2026-08-29
Fixed
- GH-1144: hash-only merge receipts contradict report output and cannot reconcile truthfully (pm-z1z96w)
- GH-1146/1147: external blockers remain stale and validation recommends deleting them (pm-yhle2e)
- GH-1140: reject ambiguous bare comma tuples for linked file and test mutations (pm-nc94mk)
- GH-1148: cached drift mismatch can falsely report tracker corruption (pm-sxg7wl)
- GH-1138: linked test name filters can pass after executing zero tests (pm-ntnv4k)
- GH-1136: npm 12 object-form npm pack receipts break registry package installs (pm-xrjy8o)
- The annotation key=value grammar has three divergent comma behaviours, two of which silently corrupt the evidence text before it is made immutable (pm-hu92i3)
- GH-1150: health remediation for pending merge receipts must perform the repair (pm-r0p3at)
- GH-1134: required collection recovery omits truthful --clear-* intent (pm-t7wl00)
- GH-1143: Claude session-file provenance resolver ignores real nested stream fields (pm-f60039)
- GH-1137: linked docs writes silently persist nonexistent workspace paths (pm-hiqlkh)
- Sentry release gate aborts valid API queries at a fixed 15-second deadline (pm-b9g2cs)
Other
- Close the jscpd/CodeFactor sensitivity gap: minTokens 115 misses low-token table clones the CodeFactor bot still files (pm-xspd)
- Refresh @sentry/node 10.72 with packed SDK and release proof (pm-mwhv33)
- Refresh compatible 2026-08-29 dependency releases (pm-vwuidf)
2026.8.28 - 2026-08-28
Fixed
- Repository test runner inherits production Sentry and turns negative CLI fixtures into release-blocking incidents (pm-5ug5xq)
- Broad squash commits overflow hosted-analysis tree lookup and falsely lose reviewed PR provenance (pm-gactwj)
- Golden agent-transcript replay: measure tokens-per-completed-task as a CI-visible DX regression gate (pm-8pnj)
- Unknown-option refusal textual flags bypass structured global-option filtering (pm-x4wbui)
- Agent-task transcript recovery accepts a refusal as a successful retry (pm-o360q6)
- Close lifecycle bypasses reproducible process clock (pm-hmpu4p)
- GH-1132: opt-in idempotent annotation append (ifAbsent/--if-absent) prevents retry-driven context duplication; duplicate appends remain available by default (pm-ea1yh2)
- Agent-task transcripts accept declared no-effect and partial-effect successful exits (pm-wanwyc)
- Agent-task baselines accept missing task and composite token ceilings (pm-aksavu)
- Agent-task closeout claims lack linked full-verification commands (pm-ervmsc)
- CLI transport-floor RSS admission false-fails on single-sample page noise (pm-pz49xc)
- Unknown-option refusals identify the actual rejected flag and fail closed at delimiters (pm-fo8g7j)
- Agent-task gate accepts incidental substrings as required-field completeness (pm-o7u08u)
- Completed-task transcripts require terminal success, exclusive refusal metadata, and complete recovery (pm-wa39rl)
- Agent-task token replay trusts missing or incorrect accounting estimates (pm-ok2kdn)
Security
- GH-1131: macOS Node 24 nightly cannot create the Skills-over-MCP special-file socket fixture (pm-k23c4c)
2026.8.27 - 2026-08-27
Added
- Tiered contract-driven help: one-screen core help, full surface via pm help --all, generated from the contract table (pm-e2bq)
- Skills over MCP: discoverable version-coherent pm workflows with progressive disclosure, capability requirements, and token budgets (pm-8nzivt)
- MCP Apps for pm: interactive graph, context, plan, assurance, and long-operation views with consent-safe action boundaries (pm-pznhee)
Fixed
- GH-859: pm-beads source export can omit Beads comment bodies and events (pm-tpwde6)
- pm get silently discards --output-include field names because entity reads bind the flag to sections while collection reads bind it to fields, and the omission receipt reports no omissions either way (pm-0k19l7)
- GH-860: pm-beads --preserve-source-ids changes source ID casing (pm-f7jj9b)
- GH-862: pm-beads must map Beads close reasons into native resolution metadata (pm-gus5ft)
- GH-1118: natural-language word-number titles trigger duplicate issue-code false positives (pm-blvfye)
- Published-artifact verification rejects the new pm-mcp-http bin before executing its healthy published entrypoint (pm-fpdne3)
Other
- Consolidate package lifecycle: extension/package/install/upgrade under a single pm package namespace (pm-tnud)
- Refresh compatible ESLint 10.9.1 and Node type 26.3 patches (pm-crkmmr)
- MCP 2026-07-28 conformance and release gate: official schema matrix, protocol-era adapters, real transports, adversarial cases, and published consumers (pm-55yf1t)
2026.8.26 - 2026-08-26
Added
- MCP subscriptions and transports: subscriptions/listen, request-scoped streams, Streamable HTTP headers, retry semantics, and stdio parity (pm-v7e337)
- MCP server surface and cache contracts: deterministic tools, prompts, resources, JSON Schema 2020-12, ttlMs, cacheScope, and change coherence (pm-hv1x1x)
- Official MCP tasks extension for pm: asynchronous long operations, tasks/get polling, tasks/update input, durable handles, and lifecycle convergence (pm-rzs24j)
- MCP multi round-trip requests: input_required results, elicitation, retry state, and removal of server-initiated request assumptions (pm-rz9gep)
- Stateless MCP core: request-local version and capabilities, mandatory server/discover, typed result envelopes, and deterministic identity (pm-vae5ec)
Changed
- SDK-first architecture: pm CLI (and MCP) become thin layers over a complete public pm SDK (pm-usfg)
Fixed
- GH-1091: surface extension manifest schema lint separately from version compatibility (pm-gh1091)
- GH-1109: tracker-context seeding writes an empty settings history document (pm-2ga1g7)
- GH-1112: Windows Node 24 merge-receipt boundary test relies on POSIX name-length failure (pm-v3umtp)
Security
- MCP remote authorization and observability: issuer-bound credentials, client metadata documents, consent, header security, and OpenTelemetry propagation (pm-3zh9s4)
Deprecated
- MCP 2026-07-28 deprecation and removal migration: roots, sampling, logging, dynamic registration, HTTP+SSE, includeContext, ping, and legacy sessions (pm-vzcisw)
- ADR: MCP 2026-07-28 is canonical and legacy interoperability is a bounded stateless adapter, not connection-local session state (pm-sqvshj)
Other
- Refresh Sentry 10.71 and TypeScript-ESLint 8.68 with packed-consumer proof (pm-7xfndr)
2026.8.25 - 2026-08-25
Fixed
- Dynamic-read continuation cursors are born stale: pm health emits a cursor that its next invocation rejects (pm-oahhyc)
- GH-1105: contracts must declare each command projection vocabulary before invocation (pm-q4isdq)
- The outcome-milestone ladder is a sibling set rather than a layer: 1,024 terminal items reach the roadmap apex through 154 typed roots without traversing any outcome milestone (pm-h6b73t)
Security
- Adopt Dependabot PR #1103 pinned CodeQL 4.37.8 refresh (pm-rh0z9f)
2026.8.24 - 2026-08-24
Fixed
- Structured release-failure causes are preserved in blocked-release alerts (pm-x63izf)
- Bulk writes accept newline/comma IDs from argv, stdin, and @path with effect-aware exits (pm-3oq022)
- update-many --dry-run allows filter-only preview for review and bulk-selection workflows (pm-kexu)
Other
- Uniform stdin convention: body-file and annotation --file flags accept '-' for stdin (pm-iktj)
- Single source of surface tiering: one contract-declared tier per command drives CLI help, MCP tool profiles, completions, and docs together (pm-kxci8x)
2026.8.23 - 2026-08-23
Added
- Every instruction the product emits about its own next command is an unexecuted claim: the recovery vocabulary is generated, asserted as text, and run by nothing (pm-h8tpeh)
Changed
- Update ESLint to compatible 10.9.0 release (pm-940mcx)
Fixed
- Allow linked tests to opt out of source-workspace injection for self-sandboxing repo-wide gates (pm-efkvdy)
- Linked-test schema context changes non-PM repository checks, so commands that pass directly fail when recorded and run through pm test (pm-e97jyf)
- GH-1089: expose reproducible execution through supported CLI and MCP process configuration (pm-gh1089)
- Budget recovery can recommend a smaller ceiling than the request that already truncated (pm-xam9bt)
Security
- Linked-test commands are merge-unioned workspace data executed with shell:true — no provenance, allowlist, or confirmation boundary (pm-ed28wi)
- Cross-harness provenance adapters: automatically resolve native model, version, and effort signals beyond Claude without identity flags (pm-c0lrdm)
Other
- Expose agent probe controls and versioned legacy-author vocabulary through pm config and SDK mutation APIs (pm-yds9dt)
- Diagnostic output budget: errors, warnings, and recovery bundles are the output an agent reads most and the only output with no declared ceiling (pm-cha95z)
2026.8.22 - 2026-08-22
Fixed
- GH-1078: Complete-list certification accepts absent or contradictory truth receipts and emits stale recovery (pm-gh1078)
- GH-1076: read-only duplicates rejects universal JSON output controls (pm-gh1076)
- GH-1074: package doctor cannot distinguish a safe declining service override from a global interceptor (pm-gh1074)
- GH-1073: pm init accepts a whitespace id prefix that makes later creates fail (pm-gh1073)
- GH-1075: Windows Node 24 nightly validation failed at main 3e7ac007 (pm-gh1075)
- The child hierarchy kind has an unenforced direction and cardinality: 7 of 15 rows are inverted against the registry's own declaration and no channel, validator, or audit finding notices (pm-vk7zek)
- Hierarchy-canonicalizing dependency kinds bypass every cycle detector: mutual child_of edges leave the graph provably inconsistent while validate, health, and graph analyze all report acyclic (pm-rggtvd)
Security
- GH-1072: pm install leaks user allow-scripts config into isolated package installs (pm-gh1072)
2026.8.21 - 2026-08-21
Added
- Prose-asserted relationships are unmeasured: 1,750 identifier pairs named in item text carry no edge in any direction, and nothing counts the gap (pm-ob9z4y)
Changed
- Provide consistent tracker preflight and executable recovery across SDK, CLI, and MCP (pm-6qiwan)
Fixed
- The blocks ceiling counts fabricated and evidence-cited ordering edges identically, so the historical ordering reconstruction another item mandates cannot land (pm-c90tfh)
- The dependency remove flag accepts a value its own add flag refuses and reports success on a zero-match, so a mistyped graph repair exits 0 having changed nothing (pm-gos426)
- All four graph traversal verbs reject the semantic edge kinds the ontology exists to express, so 'what implements this milestone' returns the ordering-kind answer with no sign a semantic one exists (pm-3dyec2)
- Typed-outcome reachability admits three of ten edge kinds, so the four semantic kinds the ontology exists to express contribute nothing to the invariant they were minted to satisfy (pm-ayg31c)
- The graph audit raises duplicate dependency rows at warning severity and the only remediation available deletes every copy, so collapsing a duplicate means briefly destroying a real edge (pm-flnefm)
Other
- ADR: Ordering assurance partitions evidence-cited blocks from uncited blocks (pm-jhpby4)
2026.8.20 - 2026-08-20
Fixed
- GH-529: init --agent-guidance emits run-tests.mjs linked-test example that may not exist in the target repo (pm-surv)
- GH-527: semantic staleness warning recommends 'pm reindex' which is absent from the base install (pm-qljv)
- CodSpeed instrument cache can stall simulation setup until the hosted benchmark gate is canceled (pm-w16muu)
- Make context intents and low-token projection fields fully discoverable (pm-gy885b)
Other
- Refresh compatible Vitest 4.1.11 and jscpd 5.0.16 patches (pm-n5ysuk)
- Consistent flag spellings across commands with preserved aliases and enforced budgets (pm-fs8q9x)
- Refresh compatible Greptile 3.4.1 review tooling (pm-obmgi3)
2026.8.19 - 2026-08-19
Fixed
- The writer-lease renewal test decides from wall-clock progress instead of the lease record, so correct behaviour is reported as a failure whenever the restore finishes first (pm-15qgul)
- Core command flag_invocations misclassify valueless booleans as required string values (pm-pcy92t)
- A budget-truncated read is resumable on one surface and terminal on five, and the only recovery the envelope names is to abandon the budget that truncated it (pm-8nev0o)
- Both token gates are structurally unable to fail: one measures only help payloads, the other measures command output against a three-item fixture, so no check anywhere compares real output to the ceiling the contract declares (pm-9sui7t)
- Plan positional-action help is undiscoverable: pm plan create --help is rejected as an unknown command (pm-2tan)
- MCP update keys and CLI update flags diverge in name (linkedFile/linkedTest vs --file/--test), so an agent that reads the MCP contract and writes a CLI command produces a guaranteed unknown-option refusal (pm-y0htkd)
- Context calibration recovery names a nonexistent package script (pm-xa3t0o)
Other
- Every executable command and positional action publishes a typed, validated argument contract (pm-ya7x55)
2026.8.18 - 2026-08-18
Added
- Alias shim layer: config-aware hidden aliases with one-line migration hints (foundation for all consolidations) (pm-0z7n)
Fixed
- GH-1052: typed fail-closed whole-list SDK primitive (pm-y4aaol)
- Packed Bun SDK import fails on node:module stripTypeScriptTypes (pm-ikj8ve)
- GH-1051: package catalog rejects universal output-budget controls (pm-2firut)
- Bun event streaming falls back to authoritative history without node:sqlite (pm-b8hwfr)
- Surface replication gate scopes trigger activation to relevant diff content (pm-mrhwow)
- CodeQL: remove generated-code artifact path interpolation from exporter integration harness (pm-ozxkm2)
- Exporter artifact-channel contract: clean stdout, bounded receipts, and binary-safe streaming (pm-dilou2)
- GH-1048: Windows Node 24 numeric EDQUOT fixtures construct NaN on platforms that do not declare that errno (pm-y4kovm)
- Queued daily releases recognize an already-published same-day release before analyzer provenance (pm-dm2vfz)
Security
- Adopt Dependabot PR #1046 pinned CodeQL 4.37.7 and TruffleHog 3.97.0 refresh (pm-pp6al9)
Deprecated
- ADR: noun-verb CLI grammar — accepted consolidation principles and alias-preserving deprecation policy (pm-pbyu)
Other
- Command-grammar conformance gate: the noun-verb table and shared verb vocabulary become machine-checked contracts a non-conforming command cannot pass (pm-wt43zj)
- Consolidate the 8 list-* status variants into pm list --status (list-all/open/draft/in-progress/blocked/closed/canceled become hidden aliases) (pm-pfqi)
- Command-destination census: 14 of 76 canonical commands have no declared home in the target grammar, so the surface can be frozen with its shape still undecided (pm-yy8rmx)
- Half of the pm events payload is per-row resume cursors an agent never reads: 48 percent of stream bytes buy a capability consumed once per batch (pm-ez1dfg)
2026.8.17 - 2026-08-17
Added
- History-derived defect recurrence gate: turn resolved incident patterns into targeted local and hosted CI protections (pm-1qkivy)
- Agent skills routed to a workflow loop but named no capability family and no read-cost, so four of twelve command families and the entire output-budget surface were unreachable through progressive disclosure (pm-f6zjpq)
Fixed
- Linked tests retain high-volume Vitest output without aborting (pm-giks4s)
- A declared context intent returns no context when combined with the narrowing flag, and its refusal receipt reports 122 tokens against a 2400 budget as the reason it does not fit (pm-3crymx)
- The relationship lexicon cannot express recurrence, so a defect family fixed thirty times is thirty unrelated nodes to every graph algorithm (pm-ouyq3n)
- The gate contributors run before merging fails on every Claude Code workstation and passes on the runner for the same tree, because a harness probe writes advisory warnings into the surface the token budget measures (pm-95h7pg)
- The public-surface gate enumerates its own hand-written entrypoint list, so two published code exports ship ungoverned and ./cli publishes 86 internal functions as typed API (pm-suhxny)
- GH-1033: read fields selectors can erase identity and requested empty collections (pm-4fwgaz)
- GH-1036/GH-1040: history integrity verdicts and repairs are incompatible across supported CLI versions (pm-0wfdim)
- GH-1032: extension manifests silently accept unenforced version-floor spellings (pm-qqoumq)
- GH-1038: docs linked-resource pair syntax corrupts URLs and splits labeled entries (pm-fpdk37)
- GH-1039: graph impact discards dependency direction and makes the direction selector inert (pm-jn1x30)
Other
- Decision: adopt reviewed defect-evidence field constraints into audited workspace history (pm-4smp5b)
- Defect-escape ratchet: every escaped defect must land a gate that would have caught it, tracked as evidence on the fixing item (pm-rtn5h6)
- Boundary-fixture gate: every value that must match a system outside this repository is tested against a captured real sample, never against a fixture the production code generated (pm-0pzgit)
- Disposition the test-only escape hatch published through the ./cli entrypoint: 86 internal functions are consumer-visible API with no support intent (pm-rf120g)
2026.8.16 - 2026-08-16
Fixed
- Workspace history integrity refusals escape typed CLI recovery and become high Sentry faults (pm-2zkvxm)
- GH-1019/GH-1020/GH-1021: Node 24 nightly platform regressions after PR #1016 (pm-zno2iu)
- GH-814/GH-821/GH-1034: SDK metadata reads must distinguish missing, invalid, and unreadable tracker roots from empty (pm-23xkss)
- GH-1028: history-author-acknowledge bulk mutation lacks dry-run and misreports empty selection (pm-mcxk8v)
- GH-1030: contracts --json --full is wholly omitted by the default output budget (pm-2qvq7a)
- Auto Release blocker closure ignores successful recovery dispatch and reruns the stale tag-push workflow (pm-db8onn)
Other
- PR #1035 final review convergence: POSIX enumeration wording and plan-level replication ratchet (pm-k9l7e1)
- PR #1035 exact-head review follow-up: sandbox-safe proof, completion uniqueness, replacement equivalence, and test isolation (pm-jv3y4q)
- 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)
2026.8.15 - 2026-08-15
Fixed
- Provide an audited repair and severity-migration contract for legacy invalid provenance (pm-76fkpp)
- Detect extension-host pm-cli version skew before a workspace reports healthy (pm-643e0k)
- Restore strict unknown-key parity for docs linked-artifact additions (pm-22rzjp)
- Make every failing health verdict self-indexing and attach gate severity to findings (pm-larv4r)
- GH-1004: history-repair remains writer-version-specific across 2026.8.7 and 2026.8.13 (pm-igdvfq)
- Assurance gates preserve zero-valued counts and report actionable source failures (pm-xmmafu)
- Ranking explanation is sized by the workspace rather than by the answer: explaining two returned rows emits one entry per active item and ignores the token budget entirely (pm-okgxwa)
- The unknown-option refusal asserts the option belongs on another command path without checking, so a spelling that exists nowhere sends the reader on an unbounded search (pm-in23qu)
- The gate verdict withholds its evidence as a declaration-order prefix, so the assertion that produced a blocking verdict can be the row the default read drops (pm-e5gl05)
- GH-1008: assurance measurements accept unknown source kinds and contracts hide the valid vocabulary (pm-atnfh4)
- GH-1007: assurance gate declarations omit trigger and escape the typed refusal contract (pm-88mo8m)
- A CI-wired quality gate is red on a clean checkout of main and green in hosted CI for the same commit, because its measured output carries a telemetry warning whose presence depends on whether the local flush reached the network (pm-t7wn04)
- GH-1011: Windows Node 24 nightly cache fixture loses the authoritative linked-test collection (pm-k47yqn)
Other
- The agent token-surface harness from pm-a22j is wired into nothing, so output-size regressions like the 33k-token health check land undetected (pm-dpqa3h)
2026.8.14 - 2026-08-14
Fixed
- Unsupported assurance triggers bypass the typed evaluation-refusal boundary and surface as high-severity Sentry faults (pm-9yhl2v)
- A single transient per-test timeout fails the whole pipeline: 1,942 tests share one uniform 30s budget, no retry is configured, and the only diagnosis path is decoding a blob artifact (pm-rizqb6)
- The degradation ladder only sees top-level arrays, so the governance reads whose bulk is nested skip every intermediate rung and return nothing at all (pm-kyjdne)
- A budget-truncated read reports that rows are missing without a cursor, a recovery, or any sign that it overrode the caller's explicit request for all of them (pm-jt8aa2)
- The canonical spelling the output contract tells agents to adopt returns every row with every field stripped, and only the one surface that validates its selectors refuses it (pm-eugaqy)
- Every core and first-party package command declares an attributable agent intent (pm-7i97c3)
- Exact command-path summaries expose intent, flags, and format-aware output ceilings (pm-pmrae8)
- Default output ceilings bind representative read surfaces with depth-heavy negative controls (pm-s2h0mq)
- Two of the three ci-triggered assurance gates never ran on a pull request, so the append-only history assertion that carries the immutability guarantee was evaluated only after merge (pm-fhifkc)
- The ordering-cycle finding names the items in the cycle and not the contradiction that creates it, so its remediation hint cannot be executed without re-deriving the cause by hand (pm-xvt7ps)
- The edge-count floor is denominated over a population that includes the edges the graph itself calls redundant, so repairing 73 witnessed implied ordering rows and silently relaxing the guard are the same privileged act (pm-9gzr4r)
- The graph node floor counts materialized placeholders, so its negative control declares the fully repaired corpus a failure and the gate passes only while a dangling reference exists (pm-mfvsng)
- Two governance loosenings sit in the committed assurance registry with no entry in the append-only workspace audit stream, which freezes every future audited write and is invisible to both validate and health (pm-h06944)
Security
- GHSA-2v37-7h3g-55p8: pin patched nanoid in the Vite/PostCSS development graph (pm-5dwz1a)
Other
- Quota-aware branch protection: external AI review limits must never block merges (pm-e02lgu)
- Refresh compatible Greptile 3.4, TypeScript-ESLint 8.67, and jscpd 5.0.15 tooling (pm-87hmdw)
- Isolate the merge SDK bundle from focused-entrypoint chunk fanout (pm-m9gu9r)
- The Windows nightly leg cannot separate product defects from harness noise: 744 hardcoded POSIX path literals and 203 raw errno strings in the suite fail on Windows for reasons unrelated to pm behaviour (pm-j668gl)
- Graph wave: changelog-safe legacy edge hygiene batch — retire the no-active-blocker sentinel, duplicate spellings, terminal ordering cycles, and dangling terminal references (pm-hnc9w7)
- ADR: Graph structural ratchets measure recorded nodes and informative edges (pm-dwj33e)
2026.8.13 - 2026-08-13
Added
- Assurance presets and self-derivation: a new workspace acquires a working quality contract in one command, seeded from its own record rather than from a generic template (pm-m7bb7r)
- Measurement provider API: extensions contribute measurement sources, so a coverage percentage, a benchmark millisecond, an eval score, an RL episode reward, or a registry dist-tag is bounded on the same terms as an item count (pm-uhv1m5)
Fixed
- The relationship graph's only automated reader is a nine-field census with no structural property, so the deepest enforceable statement about an 11,291-edge record is that every active item has two edges (pm-4vz6mz)
- The measurement ratchet has a single polarity: a filed number can only be enforced as a ceiling, so no quality floor this project wants to hold is expressible (pm-g4k74y)
- Telemetry flush reliability: configurable cold-connect timeout without foreground blocking (pm-pmwozm)
- The real all-package install is budgeted in one of its two instances, so the coverage gate flakes and then reports no coverage verdict at all (pm-h9gsix)
- Absence-tolerant readers accept only ENOENT, so a tracker root that is a regular file raises an unclassified fault instead of the typed refusal the guard already owns — and that fault blocks the daily release (pm-6xlyss)
- Mixed linked-resource remove and add in one command silently favors removal (pm-c6urop)
- Global flags before a subcommand corrupt guided-error command examples by treating the flag value as the command (pm-lph0y6)
Other
- ADR: Lifecycle-sensitive graph partitions are advisory; stable all-status outcomes carry blocking assurance (pm-dczodv)
2026.8.12 - 2026-08-12
Fixed
- Read-output session receipts can emit an invalid next_state after the served-item set crosses its own 10,000-ID input ceiling (pm-b0v8fs)
- Linked pm test children inherit production Sentry environment and turn sandbox failures into release-blocking incidents (pm-9aaji6)
- SDK entrypoint import-cost gate false-fails on cold filesystem cache: single-shot fresh-process sampling exceeds the 30ms noise margin (pm-cg1sjb)
- Legacy invalid provenance findings block health without a safe disposition path (pm-5q8wa0)
- History drift scan hashes reordered linked-test projections (pm-eax4y8)
- Linked-test removal must be lossless and observable for commands containing comma or equals delimiters (pm-m0b7h8)
- Annotation transposition recovery: detect pm <collection> add <id> before the item id is consumed as text (pm-rncuf7)
- Health result contract parity: every checks[] row exposes a boolean ok beside its tri-state status (pm-h97qxd)
- The relationship ratchet bounds every edge kind that carries meaning and leaves the one kind that carries none unbounded, so the cheapest way to satisfy every graph guarantee is to add edges no algorithm can traverse (pm-q6n8sj)
- Assurance registry mutations and gate verdicts record author unknown while carrying the full detected provenance in the same entry, so the audit artifact fails the question it exists to answer (pm-33mjrw)
- Two assurance measurement sources answer from a projection that omits the fields they read, so a completeness gate reports zero missing evidence on a workspace with 874 items lacking it (pm-py7qv2)
- Assurance mutation refusals cross the CLI as unclassified Sentry faults (PM-CLI-2Y/2Z/30) (pm-v0a0un)
- GH-976: version history hashes so repeated tests_add streams verify across supported pm versions (pm-2htk4p)
- GH-975: export isAlreadyClaimedError through a supported SDK subpath (pm-hfqju5)
- GH-974: merge receipt preferred contradicts retained side under stable_value_order (pm-qckpnq)
- GH-971: health preflight collision diagnostics ignore declared command ownership (pm-zryb9d)
- GH-969: brief item reads can exceed standard output because omission receipts bill empty fields (pm-gok2km)
- GH-970: repeated row contracts consume half of agent read output without a suppression contract (pm-gjjurs)
- The output encoding named toon has no tabular array form, so every row collection pays three to five lines per row while the storage format beside it uses the encoding correctly (pm-5y05kq)
- pm activity answers what happened to one item in the last half hour when the agent asked what changed in the workspace: 20 rows cover 5 of the 272 items touched in 24 hours and none carries a title (pm-j1r8gl)
- pm stats default output is dominated by rows that carry no information: 7 of 17 type buckets are zero, the status split agents actually need is missing, and the row contract costs more than the data (pm-7nqo6b)
Other
- Evaluate and refresh @sentry/node 10.70 with packed-consumer proof (pm-fb0lkg)
- Refresh compatible tsx 4.23.12 and esbuild 0.28.2 patches (pm-67b84b)
2026.8.11 - 2026-08-11
Added
- pm gate: named assertion bundles bound to lifecycle triggers, returning one structured verdict document instead of prose, so local and hosted enforcement run identical semantics (pm-wn6wot)
- Assurance verdicts are appended to the immutable record, so what was enforced when, and who relaxed a bound, is replayable and provable rather than reconstructed from CI logs (pm-91xeam)
- pm assert: a bound over a measurement carrying polarity, scope, lifetime, enforcement level, and a required negative control, so every guarantee states which direction it can fail in (pm-lyfu7b)
- pm measure: a named population over the workspace declared as data, with a composable source vocabulary and derived arithmetic so a bound can be denominated in the unit it actually means (pm-2lex4r)
- Refusal reachability: every error code declares the states it owns, and an entrypoint-level probe proves each state is still reachable as that typed code rather than as an untyped fault (pm-elmpav)
- Source-to-item traceability: derive which tracked work produced any given file or line, so an agent can ask why this code exists and get an evidence-backed answer (pm-f86lth)
- Automatic semantic session attribution: infer bounded topic and role from claimed work and harness context without per-call identity flags (pm-3zgh2c)
Fixed
- Unknown-option recovery names three of six commands that accept the flag, capped silently and in arbitrary order, so the hint excludes the right answer while reading as exhaustive (pm-yqe0mo)
- Subcommand-token error contract: one unknown-subcommand code with nearest-match recovery across every subcommand family (pm-185870)
- pm get cannot report linked files, tests, or docs in any projection, so the one command an agent uses to rebuild an item's context silently reports them as absent (pm-tld20c)
Security
- Refresh compatible 2026-08-08 development dependencies (pm-8l1m5t)
2026.8.10 - 2026-08-10
Added
- GH-472: create error for missing required custom fields lists the field names (pm-4bzq)
- Provenance records distinguish unavailable configuration from resolver failures (pm-lu6sca)
Fixed
- GH-959 recurrence: snapshot restore planning races lease-expiry fixture cleanup (pm-usq49n)
- GH-960: structured diagnostic notices preserve machine-readable JSON envelopes (pm-embm6t)
- GH-956: lossless acceptance-criteria replacement and unmatched-removal failure contract (pm-lppm6y)
- GH-954: fail-fast dependency target validation with explicit forward-reference intent (pm-x3dq0l)
- Preserve executable recovery semantics across terminators, nested aliases, and tracker scope (pm-szn67i)
- Measure source replication against an independently discovered denominator (pm-b84irw)
- GH-515: pm test --add reorders linked tests — --only-last can execute a non-newest command (pm-x2vx)
- GH-490: unknown-command suggester ranks substring hits over synonyms/edit distance — pm log suggests 'extension catalog' (pm-g543)
- GH-441: type-aware create help mislabels applicable flags as required (ignores create-mode) (pm-qmjx)
- GH-519: close recovery bundle suggests --validate-close "<value>" for an enum flag and hides the real resolution-fields blocker (pm-ulqu)
- GH-950: item-addressing commands reject a consistent --id alias and misroute recovery (pm-mkinft)
- GH-951: required-field policy can force fabricated relationship edges (pm-st7wgu)
- GH-953: close recovery suggested_retry is not executable and drops supplied flags (pm-p316vn)
- A sandboxed fixture records provenance from the host harness environment, so the suite is green on CI and deterministically red for any agent running it locally (pm-xgah3a)
- The session-role dimension is wired to a boolean child-session flag, so every nested claude-code invocation records the role literally as "1" and fleet analytics will group real work under a meaningless label (pm-eq9dlw)
- GH-921/GH-922: merge-decision receipts are not durable in fresh-clone CI (pm-1j5j21)
- GH-948: version-skewed pm invocations silently rewrite the tracked merge fence during unrelated commands (pm-l56d0o)
- A measurement ratchet bound stops enforcing the moment its owner reaches a terminal status, so every guarded population goes unbounded exactly when its fix ships (pm-5z9plz)
- The docs tree grows one file per shipped contract, so 39 of 51 documents are stubs and the SDK's story is split across twelve files (pm-9hv1o7)
- The status-token normalization rule is replicated at five sites and the replication gate covers none of them (pm-ulxdqp)
- The two slowest governance commands load every item body while twenty other SDK modules use the light read path (pm-sr3xzg)
- GH-946: context signal-store staleness warning has no executable remediation contract (pm-wn1jy1)
- GH-943: health remediation points at validate while actionable unknown-author recovery remains undiscoverable (pm-jwmszf)
- GH-942: expose the lightweight all-item metadata reader through the public SDK (pm-yrj7qr)
- GH-941: pm read omits notes without declaring their omission and invites duplicate writes (pm-swfelk)
Other
- Refresh pinned GitHub Actions for PR #958 with exact-head compatibility proof (pm-obh6lo)
- The measurement ratchet floors only aggregate graph totals, so converting typed semantic edges to untyped ones passes every declaration (pm-70jyvw)
2026.8.9 - 2026-08-09
Fixed
- The release gate cannot classify Sentry events emitted before its own contract producer shipped, so a correct usage refusal from an older release blocks the daily cut for the whole rolling window and clears only by hand (pm-h75tjh)
- Entity projections carry a collection key only when it is non-empty, so an absent key cannot be distinguished from an unprojected one and neither projection level is a superset of the other (pm-b1w8vr)
- Ordering recorded as blocks is invisible to actionability: the same prerequisite schedules differently depending on which endpoint wrote it (pm-jkbqt8)
- Dependency-kind lexicon: fifteen accepted spellings for roughly eight relations, canonicalized inconsistently at write time, so the stored graph vocabulary keeps fragmenting (pm-4020c5)
- GH-930: duplicates --status all silently scans zero items (pm-sy24w2)
- GH-920: health conflates lossless merge receipts with discarded-value decisions (pm-jtwsct)
- GH-937: package list exposes alias rows as packages and overstates the catalog total (pm-fr6u17)
- Post-merge guidance names history-repair, which clears drift but never settles the merge receipt, so every merged item leaves a permanent merge_decisions_unreviewed warning (pm-lwmstb)
- GH-925: package manage diagnostics reject universal read-output controls (pm-479ggz)
- Surface replication gate activates unrelated sets through shared required members (pm-kmnvug)
- GH-924: closed completed plans still recommend pm close (pm-ltlcsw)
- Merge direction decides which agent's value survives: the same two branches converge to different item state depending on which side merges, and nothing reports the divergence (pm-dlx7v7)
- GH-931: linked-test detector misclassifies unrelated node dist/cli.js commands as pm (pm-u3o3ur)
- Release candidate acceptance hard-codes the pre-bump CLI version and blocks the daily cut (pm-7ipajv)
2026.8.8 - 2026-08-08
Added
- The CLI has 195 error codes and contracts none of them: the surface agents read when they are wrong is the only one with no enumeration, no stability promise, and no gate (pm-x4nn3z)
Fixed
- PR #935 review remediation: executable gate registry and fail-closed runtime context parsing (pm-n41vay)
- GH-926: warn before a stale pm binary mutates a project pinned to a newer CLI/SDK (pm-1eted6)
- PR #935 CI: preserve dependency-free fast-version startup and regenerate runtime contracts (pm-dskxwf)
- Make stale-runtime compatibility classification action-aware across mixed CLI commands (pm-zjelve)
- CLI and SDK refusal contracts now preserve consistent codes and recovery semantics (pm-0xmajx)
- Sentry exception capture never writes the pm.error_code and pm.exit_code tags the release gate reads, so every unexpected runtime error is unclassifiable by construction and blocks the daily cut for the full rolling window (pm-qxo5iu)
- Sentry PM-CLI-2S: resource-exhausted copy reports a high handled error without actionable storage guidance (pm-4odf0c)
- Sentry PM-CLI-2Q: expected snapshot-name validation is captured as a high production error (pm-qyg51h)
- The release gate classifies production errors by message prose and reads none of the 236 error codes the product declares, so every waiver is a latent re-block and a broad substring is a silent waiver (pm-dqtzva)
- The mandatory command-wiring replication set is enforced only by a prose checklist, and the census shows partial application is the single largest recurring defect class in the record (pm-7rrqsk)
- GH-919: _workspace author-attribution coordinates cannot be acknowledged (pm-ety1qc)
- pm comments write response replays the entire accumulated history, so one append can emit hundreds of comments (pm-9stazf)
- GH-457: pm health hangs during vectorization check with no output (never-block violation) (pm-tu71)
Security
- GH-933: nested PM writes in non-PM linked tests can mutate the source project (pm-alhqbz)
Other
- One governed verification plan now drives local preflight and maps hosted release gates (pm-ei6x66)
- Every command declares its exit-code set, and the code distinguishes applied from applied-to-nothing (pm-hqa8g1)
- Floor polarity for the tracker measurement ratchet, with graph edge and node floors declared (pm-z0cfor)
- Refresh tsx to 4.23.11 with full release-gate proof (pm-nw1y14)
2026.8.7 - 2026-08-07
Added
- Caller-carried output sessions compose token budgets across reads and suppress repeated item facts (pm-hid9g1)
- Fleet attribution analytics: per-harness and per-model throughput, rework, and defect-escape rates derived from immutable history alone (pm-gw6uyq)
- Improvement ledger: measured properties of pm carry a recorded time series, because a ceiling proves a number did not grow and can never prove a change made it smaller (pm-chahyq)
Changed
- Update @toon-format/toon to 4.1.1 and verify codec compatibility (pm-ko35zx)
Fixed
- Nested pm test coverage changes repository-root fixtures because outer PM_PATH sandboxing leaks into package-owned run-tests (pm-ay3l0p)
- Read surfaces have no common row contract: field projection reaches 4 of 11 commands and the row collection sits under a different key on each, so no single shell or jq expression works across pm (pm-sb0tns)
- Sentry PM-CLI-2W: rejected unknown-author acknowledgments are emitted as high production errors (pm-c3uru0)
- Expose live bounded provenance coverage over immutable history (pm-1wiugq)
- GH-915: Windows nightly Vite import portability and shared contract-fixture isolation regressions (pm-ssd7vv)
- GH-914: macOS extension source identity compares non-canonical /var and /private/var paths (pm-eu46an)
- The coverage gate every contributor is told to run is not a gate: run-tests.mjs coverage prints the shortfall and exits 0, so only CI can fail on coverage (pm-2qqcgl)
- The one projection that promises completeness is the one that loses data: pm contracts --full drops all 76 structured command summaries, returns 160 bare name strings, and reports has_omissions false (pm-x0iv17)
- GH-910: keep extension assets outside item merge-driver patterns (pm-t9qbmp)
- GH-911: preserve runtime dependency resolution in post-install activation probes (pm-pg9599)
- GH-912 regression: restore atomic cross-owner seeded Plan creation (pm-hxuqsa)
Other
- Refresh compatible tooling dependencies: tsx 4.23.8 and pm-changelog 2026.8.6 (pm-l9fv1e)
2026.8.6 - 2026-08-06
Fixed
- GH-909: executable extension migration application and remediation contract (pm-ig5cfe)
- GH-908: explicit package-source identity and bare-name ambiguity diagnostics (pm-495lkc)
- GH-907: preflight override ownership and statically disjoint command scopes (pm-miy5k6)
- Release ratchet verdicts are a property of the working copy, not the commit: gitignored installs and clone-local git config decide three populations, so an identical commit passes locally and fails in CI (pm-fr4dg8)
- Exact-tag Release recovery must bootstrap tracker gates and publish an unpublished immutable tag from its tagged source (pm-lwnifd)
Other
- Refresh compatible 2026-08-05 TypeScript-ESLint and Unicorn quality tooling (pm-7gxbl8)
2026.8.5 - 2026-08-05
Fixed
- GH-896: heterogeneous atomic specification batches need batch-local references and one discoverable SDK-first CLI path (pm-o8z748)
- 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)
- Reindex coverage test leaks semantic refresh HTTP beyond its mock lifetime (pm-cflhoj)
- Sentry PM-CLI-2V: pm init surfaces raw EACCES when the managed workspace .gitignore cannot be written (pm-3gh457)
- 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)
- Tracker-only PM governance commits cannot satisfy required CI without changing the generated changelog (pm-2x5x83)
- GH-891: external blockers make graph stale_lifecycle_block impossible to resolve truthfully (pm-6sc8jq)
- GH-889: merge-conflict recovery guidance hides the durable discarded-value report (pm-fbrz7p)
- GH-890: extension collision diagnostics omit the effective winner and cannot distinguish safe scoped overlap (pm-6mjxgq)
- GH-885: create-time close_reason_required recovery recommends an impossible different-command retry (pm-5uclvd)
- GH-887: terminal create contract is non-atomic and inconsistent across importer-facing closure metadata (pm-ykdt4m)
Security
- 2026-08-04 holistic pm CLI, SDK, and ecosystem manual review and optimization plan (pm-gzyt2j)
Other
- Auto Release fresh clones build the CLI and install merge drivers before tracker gates (pm-xvccnm)
- 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)
- Eliminate July static-analysis nullability, dead-code, and redundant-allocation findings (pm-cp5pbo)
2026.8.4 - 2026-08-04
Added
- GH-471: pm context includes an installed package/extension health summary (pm-h85e)
- Static contribution manifest: persist the install-time contribution inventory so the command registry is built from data and extension modules import only when a contribution is actually invoked (pm-021kdp)
Fixed
- Uniform multi-value filter-value grammar: --status accepts CSV but --type/--priority fail fast and --tag silently matches the literal CSV string (pm-gknu)
- list applies an undisclosed default lifecycle scope and reports the scoped count as the corpus total with has_more false, while search applies no such scope, so the two discovery surfaces disagree about what exists (pm-999jh7)
- GH-882: unresolved extension commands must lead with the activation failure and actionable recovery (pm-4uplae)
- Extension-mode is folded into the metadata-cache identity, so alternating --no-extensions with a normal invocation evicts a 4.5 MB cache and every command costs 5 seconds instead of 0.4 (pm-77okxr)
- Declared activation.commands is silently overridden by the renderers/hooks/parser/preflight capability tier, so any extension beyond plain commands is eagerly imported on every invocation (pm-j0w7j9)
- GH-832: package command namespace ownership and collision diagnostics are not discoverable (pm-6z0wzf)
- GH-681: latest calendar ordinal must satisfy stable package peer ranges (pm-csuce0)
- The model provenance resolver derives the harness session-file path with an incomplete slug encoding, so it silently resolves nothing in any workspace whose path contains an underscore - including this repository (pm-9gvazz)
- GH-878: nested workspace snapshot and help paths are enumerated but not resolvable by structured help (pm-7wx1f9)
- Warn when custom schema fields collide with MCP transport or tool-specific inputs (pm-yfdav2)
- GH-844: local npm package archives are rejected as install sources (pm-lw6acw)
- The one-release-per-day guard compares a prefix glob against unpadded date keys, so it is correct only by accident of tag creation order and silently skips a real release for any out-of-order tag (pm-ki67py)
Security
- Refresh transitive brace-expansion and PostCSS patches for 2026-08-03 audit advisories (pm-2cv2o1)
Other
- Scripting contract: documented and test-gated guarantees for exit codes, stdout/stderr stream discipline, and stable machine-readable field names (pm-psy1)
- Published artifact weight: the npm tarball ships 20MB of inline-source sourcemaps plus duplicate tsc and bundle outputs (pm-998juj)
2026.8.3 - 2026-08-03
Added
- One declared output-bounding dimension set on every read surface: 25 flag spellings across 19 commands collapse to include / how-much / cost / encoding, with a precedence algebra and permanent aliases (pm-hb7ug8)
- Intent-scoped read projections: a command returns exactly the fields the declared intent consumes, so agents stop paying for fields they discard (pm-cxr0jb)
Fixed
- Auto Release coverage depends on a /proc timing race in the SDK entrypoint sampler (pm-q2a7hr)
- The author field is an ungoverned free-text vocabulary: 477 distinct spellings across 41,021 immutable entries encode harness, model, session role, topic, and date because those dimensions had no fields, and the record cannot be rewritten (pm-3yxwv5)
- Recorded agent provenance is unreadable in practice: the only projection carrying it also carries every JSON Patch operation at 63.5x the compact cost, and no read surface can filter on harness, model, effort, or instance (pm-v8gfi7)
- Harness provenance can only be declared as environment variables, so the model the primary harness publishes in its own session record is inexpressible: 900 of 900 explicit entries still record model null while effort resolves (pm-ffz0a9)
- GH-867: linked files and docs no-op additions report changed and append phantom history (pm-jb1ron)
- GH-868: atomic replacement contract for linked files and docs (pm-cstuys)
- GH-865: classify linked-test lock contention as infrastructure collision (pm-2irc1p)
- GH-779 recurrence: history-redact must refresh item and drift projections atomically (pm-wnbk2l)
- GH-870: make runtime workspace path assertions portable in Windows nightly (pm-rusbe4)
- GH-871: preserve letter-suffixed issue codes in duplicate similarity scoring (pm-sn3xor)
- GH-866: telemetry flush queue-drain contract reports partial progress as fully drained (pm-u5c27w)
Security
- GH-864: history-redact output must never echo literal secrets (pm-y3w0ld)
2026.8.2 - 2026-08-02
Added
- Episode identity: a stable, labelled, nestable episode key that survives process, surface and harness boundaries so trajectory grouping and fleet aggregation have a join key (pm-oqo9l2)
Fixed
- Both published bin names are refused as subcommands, so npx PKG pm init and bunx PKG pm init fail while the version probe that guards them passes (pm-rnl3sa)
- The intent budget binds downward and is inert upward: a sevenfold budget increase buys zero rows and the field that would reveal the clamp is omitted exactly when it applies (pm-prsvjh)
- The MCP action vocabulary is not derived from the CLI contract table: 26 MCP-only spellings, and seven contracted capability families including merge, workspace snapshot and eval have no MCP route at all (pm-0834kq)
- The SDK boundary gate proves the CLI stopped importing private core and never proves the CLI only imports the published SDK, so ten private SDK modules carry our own commands (pm-xpumg4)
- GH-855: core mutation locators must honor extension-registered item types (pm-scga6k)
- GH-853: extension command test harness must inject the real host-bound SDK (pm-wx2lr5)
- Session-topic provenance has no descriptor keys on any harness, and effort/role are wired for only claude-code and codex, so most fleet history records harness and model but nothing about the work's shape (pm-rbg1qo)
- Explicit-unavailable provenance is recorded for the model dimension only, so effort and role absence is permanently indistinguishable from a legacy entry (pm-9wbiye)
- GH-851: compare init discovery roots by filesystem identity (pm-noq46i)
- GH-847: tighten managed built-in static SDK contracts and author guidance (pm-ka6m65)
- The MCP server never receives the harness provenance environment, so one agent session writes permanently divergent identity records depending on which surface it used (pm-1zhfls)
- The bounded read costs 13.8 times the unbounded read to deliver the same set, because eight metadata blocks are re-emitted per page and the page carries two rows (pm-sf31yl)
- Declared intent token budgets are smaller than the smallest projection their own command can emit, so three of five intents return no result at all on this tracker (pm-yekkvt)
- Declared read-intent token budgets are written to a flag three of five intent commands do not accept, so the shipped intent layer overruns its own declaration by up to 43.8x (pm-7hbfch)
- The public SDK's item-lifecycle surface re-exports CLI command modules, so lifecycle policy cannot be expressed, inspected, or overridden through the SDK (pm-z5pmf8)
Security
- GH-854: transactional extension mutation guards for enforceable domain invariants (pm-hx23u5)
- CodeQL alert 33: eliminate polynomial trailing-whitespace matching in SDK append (pm-8wskoj)
Other
- As a coding agent, every pm command I run costs the fewest tokens that still fully answer my question, and I can see what I spent (pm-g3n00m)
- Self-reported token accounting: any command can report the token cost of its own output so budget spend is attributable at runtime and in CI (pm-t5dt4z)
2026.8.1 - 2026-08-01
Fixed
- Mutation echo parity reversed after pm-nilh closed: the MCP surface now returns 5.2x the CLI default for an identical create (pm-awe3t6)
- The bunx release gate passes with an arbitrary token in the executable position, so the only Bun coverage in the pipeline cannot fail for the reason it exists (pm-lpqln4)
- The published-artifact gate never executes pm-mcp: two of three declared bins resolve to the same file and the third — which already shipped dead once — has zero release coverage (pm-u0oz2k)
- One governance rule, two terminal-transition paths, opposite answers: pm close refuses a reasonless close while pm update --status closed invents a reason and writes it into the immutable record unmarked (pm-2ew0w3)
- Closing an item deletes its ordering edges, so the historical ordering graph is structurally unable to exist (pm-xm0id4)
- GH-831: actionable unknown-author health evidence is truncated without a complete disposition selector (pm-1bmeta)
- GH-841: init ancestor discovery obscures the selected workspace and safe current-directory target (pm-ipbwcq)
- GH-840: annotation primitives lack a merge-safe structured event append and query contract (pm-09rdni)
- GH-839: extension field declarations accept types the persisted schema cannot validate (pm-tom5xp)
- Harness-detection specs inherit the ambient harness, so four tests fail under Claude Code and pass in CI on the same commit: the local verdict depends on which agent ran it (pm-631t9p)
- Extension-registered item types are created, stored and versioned like any other item but are invisible to the merge fence and its drift detector, which reports the fence clean (pm-5rexki)
- Four edge-counting conventions publish under one edge_count field: graph analyze reports 10046 and graph centrality 7351 for the same graph at the same cache fingerprint (pm-jiusod)
- Four read surfaces publish a jq_selector that is guaranteed to return nothing: the self-describing row contract is present, vacuous, and indistinguishable from an empty result (pm-x710qm)
Security
- GH-827: local package install must prevent recursive self-copy and disk exhaustion (pm-0682l4)
Other
- Refresh compatible Sentry 10.69 and Greptile 3.3 dependencies (pm-7564ov)
2026.7.31 - 2026-07-31
Fixed
- Exact-tag npm recovery must stabilize public package access before verification (pm-t310hx)
- GH-830: duplicate-safe creation must require explicit bypass before persistence (pm-35w9l2)
- GH-828: init status registries must expose one coherent alias contract (pm-62n4kk)
- GH-826: extension commands need structured failure results and preserved remediation (pm-ye9v2t)
- GH-825: restore SDK excess-property safety for extension definition metadata (pm-unwsns)
- GH-824: core-field recovery must name dedicated flags instead of extension activation (pm-2jtbl8)
- CodeFactor fixed-only success payload blocks exact-head release gate (pm-xcrlkl)
- 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)
- 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)
- GH-817: machine-readable flag contracts need semantic invocation metadata and stdin capability (pm-11phn1)
2026.7.30 - 2026-07-30
Added
- Omission receipts: every bounded read shape names the field groups it withheld and the flag that restores each, with the same rigor row truncation already has (pm-p258tx)
Fixed
- Workspace snapshot heartbeat races atomic root activation and loses its writer lock (pm-ifuysd)
- GH-815: optional missing merge drivers must be advisory in default health verdicts (pm-r8u2g6)
- Sentry gate misclassifies handled snapshot identifier validation as a blocking runtime error (pm-k785lu)
- Scale fixtures vary only in size: the sole synthetic workspace generator hardcodes population shape, so the million-item tier is eleven simulated days deep with one history entry per item (pm-vv2lti)
- Whole-workspace snapshot restore silently rewinds the immutable record: history streams are deleted and nothing records that a rewind happened (pm-6l2mza)
- GH-808: lifecycle completion resolver types and provenance lie when no timestamp exists (pm-qhnq6t)
- pm activity --compact --json emits an empty activity:[] decoy key alongside compact_activity (pm-p3x4)
- Mode-paired envelopes zero-fill the inactive collection instead of omitting it, so parsing the obvious key returns an empty array that is indistinguishable from a real empty result (pm-cyrfjq)
- GH-802: persist structured numeric measurements with test runs (pm-ygerpy)
- GH-806: publish and reuse the eval query-set contract across help, errors, SDK, and machine discovery (pm-wd61s2)
- The rendered command surface is not a subset of the contracted surface: pm workspace ships in help, runs, and exits 2 on its own contract lookup, and no gate compares the two sets (pm-1jrdri)
- GH-797: rank read/show/view recovery by executable intent and bounded contracts guidance (pm-bex0ui)
- GH-803: hoist repeated linked-test execution context and honor lean output (pm-fqdmbf)
- GH-807: make the default eval query set version-controllable in every initialized workspace (pm-jdh1jg)
Other
- The product advertises CI gates in its own help that no pipeline runs: pm eval names --fail-under a CI gate and nothing consumes it (pm-b2hc4x)
- Gate registry: every enforced CI and release gate has an owner item, a declared failure taxonomy, a bypass policy, and a negative-control fixture proving it fails on known-bad input (pm-k6t4yb)
2026.7.29 - 2026-07-29
Added
- GH-787: workspace snapshot and restore primitives for cheap reproducible evaluation episodes (pm-dkrmzv)
- Reproducible workspace instances: seeded identifiers, injectable clock, and byte-identical construction from a declared recipe (pm-rbcvt2)
Fixed
- GH-676: list tag filter must accept the CSV shape used by tag mutations (pm-b1zsk9)
- GH-675: lifecycle must record actual completion time separately from tracker close time (pm-bwnclq)
- GH-711: update must support intentional unresolved parent references under strict governance (pm-cragzs)
- GH-715: expose mutation-guard policies through canonical config help and output (pm-5ecnar)
- GH-672: pm context low_level rows omit blocked state and blocker IDs (pm-r2suqb)
- GH-651: pm activity bare relative windows silently return empty results (pm-b0twiy)
- GH-784: SDK blueprint preflight misses host-owned flag collisions and malformed long-flag tokens (pm-huolbk)
- GH-785: align pm health ok with warn-only exit semantics on fresh clones (pm-83ov2i)
- GH-792: fresh-clone health must not require ignored runtime and empty extension directories (pm-0k4o8t)
- GH-793: remove or disambiguate list --all so filtered output cannot claim workspace completeness (pm-q7qojt)
- GH-794: make copied identity output_format overrides decline instead of exposing the host envelope (pm-wi301j)
- Nightly static quality fails closed in shallow workflow checkouts because CodeFactor parity cannot resolve a committed base (pm-1hbw4y)
- GH-790/GH-791: pm merge install reports workspace_root in a different canonical form depending on which channel resolved it, so the same repository has two non-equal spellings on macOS and Windows (pm-ihmfs6)
- The dependency token budget is enforced against a different representation than the one emitted, so a command that reports staying inside 16k tokens delivers about 45k (pm-t2t709)
- pm activity has no default bound: a bare invocation returns all 40,446 history entries at 1.59M tokens, 397x the ceiling its own contract declares (pm-z2j1qt)
- Sentry PM-CLI-2N: malformed missing tags crash normalizeItemMetadata before search can report the item (pm-89neyq)
- pm-governance-audit comments-audit limit contract contradicts runtime alias semantics (pm-v657)
- pm-governance-audit dedupe-audit rejects --status all, breaking explicit all-lifecycle duplicate sweeps (pm-mp49)
- GH-781: managed built-in extensions redeclare public SDK contracts locally, and the mirrors already disagree with the authoritative declarations in shipped packages (pm-vnk7ob)
Security
- GH-799: confine custom item-type storage folders to the tracker root (pm-d30cmk)
- PR #795 exact-head review hardening: dependency budget progress, rendered fixed points, nightly credential isolation, and drift-cache diagnostics (pm-jd3m6p)
Other
- Refresh compatible 2026-07-29 development dependencies (pm-77bmeu)
- Token-budget gate corpus is unrepresentative in both scale and coverage: budgets are set on a seeded micro-workspace and the largest agent-facing payloads are not measured at all (pm-z71aoy)
- GH-782: guide-shell special-cases one multi-word command name and duplicates its status derivation, and calendar's throw-only validation call is unexplained, inside package-managed built-ins consumers cannot patch (pm-cb8qq2)
2026.7.28 - 2026-07-28
Added
- MCP tool profiles: core/standard/full/custom tiers with an allowlist override, so 31 tools are the maximum surface, not the default (pm-9k90)
- MCP resources and prompts surface: expose workspace context as addressable resources and canonical workflows as prompts, not only as tools (pm-yf07b7)
- Project live workspace schema and extension commands into MCP discovery and mutations (pm-m4ikkz)
- Public SDK contracts and static runtimes let extension authors reuse the CLI baseline (pm-w7mqzt)
Changed
- Dedupe flag-contracts.ts repetitive per-command blocks (9 internal clones, ~150 lines) (pm-ueuq)
Fixed
- GH-770: pending merge receipts remain invisible to validation and CI before reconciliation (pm-ysqb6n)
- GH-775: make fresh-clone health distinguish material tracker loss from absent empty type folders (pm-xyuhh7)
- GH-779: invalidate history drift cache after item and repair mutations (pm-ajaskl)
- The merge fence covers item documents but not tracked non-item JSON, so .managed-extensions.json line-conflicts between agents on different branches (pm-gjicmx)
- GH-773: install portable merge drivers without permanent checkout-path drift (pm-w91mvg)
- GH-776: preserve output override compatibility and export the public decision contract (pm-u2tqn6)
- GH-778: make lean structured reads omit caller echoes and inactive pagination metadata (pm-oi4zs3)
- GH-772: rejected extension command registration leaves silent partial activation and zero-exit command gaps (pm-4vwcvq)
- The surface-discovery contract costs 31k tokens in its brief form and still omits every flag, so the cheapest way to learn pm is the most expensive call it offers (pm-gmdzaa)
- Linked-test schema sandbox breaks package prepare hooks that install the PM merge driver (pm-uawujr)
- The list family exposes three incompatible --json projections under one flag, so an agent filtering on an unprojected field silently reads absent instead of unset (pm-pjnu91)
- GH-768: deduplicate public SDK provenance exports across core and root entrypoints (pm-44aa4x)
- GH-766: Windows nightly extension timeout and merge-safety cleanup EBUSY (pm-25b7tg)
- Merge-fence scope ambiguity: extension-contributed item folders make default validation disagree with the no-extensions CI baseline (pm-mkzw1x)
- GH-764: one host-global flag collision quarantines an entire extension and suggests reinstalling the installed package (pm-gnowgi)
- Recovery bundle mines flag names from usage-error prose: scope errors like '--rebuild and --clear apply only to graph index' yield missing:--clear + suggested_retry appending the other invalid flag (pm-ikv6m0)
- GH-755: dependency edges are written with a null author, so the relationship graph is the only recorded collection with no provenance (pm-0a24f5)
- GH-752: list results claim completeness while unreadable items are omitted (pm-57ir3b)
- GH-763: merge-decision receipt persists shell-quoted item_path that cannot resolve (pm-9nfpwd)
- GH-747: the bundled TOON encoder emits documents its own decoder rejects, so a valid item becomes permanently unreadable (pm-avv3wx)
- Identity provenance is a fixed three-dimension schema, so the reasoning level sitting in the environment right now and any session role are structurally unrepresentable (pm-itsjf0)
- Model capture is inert in practice: zero of 35,103 recorded entries carry a model, because the declared signal for the primary harness is an environment variable that harness does not set (pm-0zcwz6)
- The public harness detectors default env to an empty object, so detectAgentIdentity() and detectHarnessIdentity() silently return empty for every SDK caller (pm-pwq0g5)
- GH-746: the release publish step guards on a package scope that does not exist, so publish idempotence and access recovery are permanently dead code (pm-2z9263)
Other
- Evaluate Sentry 10.68.0 compatibility and retain 10.67.0 (pm-r31390)
- Derive ALL MCP tool inputSchemas from *_FLAG_CONTRACTS — eliminate hand-declared parallel schema tables (extend the pm_copy pattern) (pm-xwah)
- Generate shell completions, MCP tool registrations, and command reference docs from the contracts table (single source of truth) (pm-mu8m)
- Ecosystem review and deep-graph enrichment pass 2026-07-27: all-status census, CLI simplification + token-efficiency + long-term brainstorm, dedupe-checked gap filing (pm-89qv6b)
- Evaluate @toon-format/toon 4 compatibility and item-format migration (pm-5cgm2z)
- ADR amendment: extensible durable agent provenance dimensions and privacy boundaries (pm-oskdmu)
- SDK completeness is asserted by a 10-case curated array against 85 declared actions: the boundary proves the CLI reaches nothing below the SDK, nothing proves the SDK can do what the CLI does (pm-te6elw)
2026.7.27 - 2026-07-27
Fixed
- GH-754: the merge driver's field-level conflict report is transient stdout, so the value it discarded leaves no durable record anywhere (pm-rh98vo)
- Merge fence fails open: an unresolvable pm driver leaves unmarked UU files whose naive resolution silently discards the other branch's fields and history (pm-c0wthb)
- Merged-main Windows init package acceptance exceeds generic Vitest timeout (pm-0vkmqs)
- GH-739: expose duplicate-cluster discovery as a first-class CLI and SDK workflow (pm-n13lzc)
- PmClient activation queue serializes unrelated workspaces and extension-free actions (pm-zpoyg9)
- GH-741: replace reference-identity service override claiming with an explicit observable contract (pm-h3ipax)
- GH-740: make the documented aggregate SDK barrel complete and continuously derived (pm-obbh43)
- GH-738: publish the machine-readable public SDK surface snapshot with the package (pm-lnswp0)
- Terminal release transitions retain stale claim_principal ownership (pm-bnrndo)
- SDK: inject host-bound runtime into ImportExportContext (pm-i7indd)
- Detected agent identity is not agent-unique, so claim mutual exclusion silently degenerates across a same-harness fleet (pm-z8qd4k)
- GH-714: linked-test verbose child stdout still aborts with EAGAIN after bounded-drain fix (pm-5sm91o)
- CodeFactor 2026-07-26 SDK and digital-twin regression cluster (GH-722 through GH-732) (pm-eq3ak8)
- GH-733: Windows Node 24 nightly portability regressions in author, recovery, and drift tests (pm-wr8utz)
- Sentry PM-CLI-2M: classify workspace audit-state drift as an actionable conflict (pm-o71t68)
- GH-728: preserve live harness authorship across initialized multi-agent workspaces (pm-si2uur)
- GH-720: diagnose unbuilt GitHub extension sources and recommend resolvable npm artifacts (pm-0sx3kz)
- GH-719: reject or diagnose extension command flags shadowed by pm globals (pm-ill9gv)
Security
- Scorecard Security-Policy (4→10): enrich SECURITY.md to full scoring depth (pm-2d7k)
- Scorecard Fuzzing (0→10): add a fuzzing/property-based harness for the parser and codec surfaces (pm-0yi7)
Other
- The merge-safety gate verifies one history stream of 2,058 and never checks drift, so a clean merge that provably corrupts stream anchoring passes CI green (pm-pdr8t1)
- Branch merge is an unrecorded mutation: the field-aware merge produces an item state that no history entry ever produced, so the merged state is unaddressable by restore and point-in-time reads (pm-9j2r3b)
- Continuous multi-branch merge conformance: randomized N-branch divergence and merge property suite with a zero-conflict acceptance bar (pm-76dnfg)
- 2026-07-26 ecosystem review: all-status walk, graph depth enrichment, agent-ergonomics and release-pipeline verification (pm-v4iypw)
- Historical release attribution backfill: stamp every terminal item with the release tag that contains its close event (pm-3j6it6)
- Terminal relationship backfill, evidence-derived tranche: make every closed and canceled item reachable by typed graph traversal (pm-qudvto)
- 2026-07-26 agent-context readiness audit: full CLI, SDK, and ecosystem review and optimization plan (pm-t9e3bc)
- Ecosystem review and deep-graph enrichment pass 2026-07-26: all-status inspection, CLI simplification + context-algorithm brainstorm, gap filing (pm-e9yevx)
2026.7.26 - 2026-07-26
Added
- Immutable-tree DeepScan and CodeFactor zero-new-issues release gate (pm-39cqqx)
- Model-aware agent identity: detection resolves harness, model, and session so an agent never types an identity flag and history still records which model acted (pm-03pq3o)
Changed
- Dependabot update queue 2026-07-21: PRs #618-#621 (pm-pegcmx)
- Harness signal registry: identity detection becomes declared data that a config entry or a package can extend without a code change (pm-brxdct)
- Public SDK surface snapshot and breaking-change gate: the exported API is a reviewed artifact, and an unintended removal or signature change cannot merge (pm-e6tm5c)
Fixed
- GH-716: detect npm and Slack credential shapes in mutation secret guard (pm-fhhhlk)
- pm package init doubles the pm- prefix and mints an unusable pm pm ... command path when given the package name every real pm package actually uses (pm-c5f0gh)
- pm extension --init and pm package init are divergent scaffold generators behind the same grammar; the extension path emits no tests and an unpublishable manifest (pm-9smp7j)
- Built-in help examples teach an explicit --author on dozens of commands, training every agent to suppress its own detected identity and pay tokens for it (pm-sx52hr)
- Shipped MCP manifests and MCP tool guidance hardwire a static author, overriding the automatic identity of every plugin-hosted agent (pm-zqsrt5)
- A configured author_default suppresses harness detection entirely, so any workspace that sets a default author records no harness and no model provenance (pm-6uxhe0)
- GH-677: pm-path relocation must diagnose extension discovery changes (pm-qswf81)
- GH-691: parseItemDocument errors need stable structured SDK classification (pm-r9pudt)
- First-party service collision: builtin-calendar and builtin-guide-shell both override the global output_format service (pm-ixoa)
- GH-680: completed Plan close must transition plan_mode terminally (pm-g512pv)
- GH-692: plan update-step must persist file, test, and doc evidence fields (pm-z5vamp)
- GH-678: linked-test sandbox must preserve freshly installed project extensions across child processes (pm-jvken3)
- GH-709: batch duplicate-cluster sweep with canonical precomputed similarity signals (pm-2i12ti)
- pm config set on one leaf key rewrites settings.json with every default materialized and silently replaces explicit stored values (validation.parent_reference warn -> strict_error) (pm-x2aplf)
- GH-690: plan resume and approve must apply or reject scope changes (pm-bxdlfa)
- GH-688: seeded Plan creation must be atomic across ownership boundaries (pm-96tter)
- GH-679: linked-test output capture must not abort verbose child tools with EAGAIN (pm-j36ypd)
- Author-resolution bypass class: create/copy and the context, next, and usage-feedback paths re-implement author precedence without harness detection, stamping author 'unknown' on new items (pm-42p9nk)
- GH-706: accept bare conventional forms for create/update boolean metadata flags (pm-ulb3rc)
- GH-700/GH-701/GH-702: nightly Node 22 and cross-platform regression bundle (pm-3x8w4m)
- GH-704: make extension activation failures actionable at command and lifecycle boundaries (pm-3ljt19)
- GH-705: make duplicate governance discoverable and advisory by default (pm-de3foa)
- GH-703: populate portable workspace coordinates in extension CommandHandlerContext (pm-fc9gm4)
Removed
- GH-708: make retained delete tombstones discoverable and policy-controlled (pm-wdrkfr)
Security
- Add TruffleHog OSS verified-secret scanning to the security workflow and complete free GitHub secret-scanning toggles (pm-4ris)
- Refresh 2026-07-15 npm dependency updates with compatibility and release-gate proof (pm-tll8)
Other
- CLI transport overhead budget: gate the per-invocation bootstrap floor and the CLI-vs-SDK delta, not just absolute scale numbers (pm-yse5dt)
- CI/CD + test-suite performance: in-process CLI runner and dedupe redundant matrix legs (pm-7rlp)
- ADR: agent identity model — stable author namespace plus structured harness, model, and session provenance (pm-qwuber)
- Public SDK surface shape: 881 exports behind one flat entrypoint with no capability tiering and a 250ms eager import cost (pm-38bskj)
2026.7.25 - 2026-07-25
Added
- Harness-aware author identity: pm resolves the acting agent from its runtime harness so PM_AUTHOR is never required (pm-z9x1r2)
- Mutation event stream primitive: pm events --follow (NDJSON with durable cursor) + SDK subscription API for cross-process agent coordination (pm-e200)
- Create-time near-duplicate advisory: pm create/copy surface similar existing items before new work is filed (pm-4ri6)
Fixed
- GH-686: validate extension flag descriptors and support repeatable as a list alias (pm-s1w0sf)
- GH-683: standard get projection must expose tests_count when tests are omitted (pm-1exil1)
- GH-685: extension CommandContext needs portable source and tracker workspace coordinates (pm-j4ac9a)
- GH-682: linked-test tracker sandbox must preserve source VCS workspace identity (pm-954h0o)
- 10k scale gate regression: CLI create latency and create/claim peak RSS exceed fixed budgets (pm-hcrmye)
- PR #673 review hardening: literal Git paths, canonical workspace identity, bounded diagnostics, and recoverable init (pm-d7crwk)
- GH-666/GH-667: nightly Node 22 stderr and Windows permission-contract regressions (pm-lvd647)
- GH-665: schema migrations need derived idempotency keys and structured recovery (pm-s79kel)
- GH-663: fresh init must install and surface the semantic merge fence (pm-1w3ljt)
- GH-514: pm init writes no .gitignore rules — runtime/search caches churn as tracked files in downstream repos (pm-hous)
- Stale-lock takeover race in acquireLock: two waiters can both remove the stale lock and both believe they own the item (pm-zwib)
- Create/copy ID allocation TOCTOU: duplicate generated id silently overwrites the other item's file; idExists misses extension type folders (pm-khdq)
- GH-664: published daily release fails Bun node:sqlite verification before GitHub Release (pm-cedo0g)
Security
- Adopt TruffleHog 3.96.0 security action update (pm-ion0bp)
- Semgrep 874840488: High spawn shell true in scripts/release/utils.mjs#L38 (pm-a7m7)
- Semgrep 874962820: High spawn shell true in plugins/pm-codex/scripts/pm-mcp-server.mjs#L86 (pm-1uul)
- Semgrep 874962821: High spawn shell true in plugins/pm-claude/scripts/pm-mcp-server.mjs#L82 (pm-f7ik)
- Dependabot alert: brace-expansion unbounded expansion denial of service (GHSA-mh99-v99m-4gvg) (pm-5q81jq)
- Dependabot alert #43: PostCSS previous source-map path traversal (GHSA-r28c-9q8g-f849) (pm-a24aqt)
- Release pipeline permits duplicate same-day production versions (pm-4s24d2)
Other
- PR #684 post-merge deferred checks and review follow-up (pm-e3g0h6)
- Execute and expose the unknown-author acknowledgment flow: dispose the five stranded events and give the shipped SDK primitive a CLI and MCP surface (pm-zqpnte)
- Holistic pm CLI, SDK, and ecosystem optimization roadmap (pm-xe0c38)
2026.7.24-3 - 2026-07-24
Fixed
- Same-day ordinal npm publish requires an explicit stable dist-tag (pm-gis0qo)
2026.7.24-2 - 2026-07-24
Added
- Stale in-progress detection: validate/health flag in_progress items with no active claim or recent activity (pm-w8q4)
Fixed
- Full coverage gate flakes when real all-package install exceeds generic 30-second unit timeout under load (pm-7x0wqg)
- Sentry PM-CLI-2K: schema migration input error crosses CLI boundary as high TypeError (pm-rxqcp9)
- Author attribution enforcement: opt-in strict unknown-author rejection, SDK test-all author parity, and audited disposition for stranded actionable events (pm-h90s)
Security
- Write-time secret detection advisory: mutation paths flag credential-shaped content before it enters the immutable history stream (pm-pim7)
2026.7.24 - 2026-07-24
Added
- pm validate needs a counts-only projection so agents can read drift numbers without row-array payloads (pm-a9mc)
- GH-445: suppress/factor repeated inherited tags in pm context rows (--no-tags + tag folding) (pm-ishm)
- NDJSON output mode: --format ndjson on list/search/context emits one JSON object per line for grep/jq/xargs pipelines (pm-646c)
- Workspace-scoped audit history stream: schema/config/profile/init mutations recorded as append-only hash-chained JSONL (pm-klo8)
- Schema evolution migrations: lossless, history-recorded bulk migration of existing items when custom types, fields, or statuses are renamed or retired (pm-dijg)
- Beyond-PM SDK exemplar phase 2: temporal digital-twin graph with entity relationships, event replay, point-in-time state, and invariants (pm-kr3t)
- Bounded SQLite metadata list reads and compact get child continuations (pm-px153l)
- Workspace memory tiers: derived rollup summaries of closed-item epochs keep decades-old work queryable in bounded tokens (pm-5qmm)
Fixed
- pm deps tree must remain bounded on cyclic deep relationship graphs (pm-gygna8)
- GH-449: contracts policy_modes advertises 'enforce' but governance config accepts 'strict' (contract drift) (pm-kjbh)
- Scoped renderer ownership: safe package renderers should not keep isolated package doctor in warning state (pm-nf7q)
- Extension flag value-arity decided by three divergent predicates in cli/extension-command-help.ts - help, parse, and summary surfaces can disagree (pm-853a)
- Post-install activation verification can load stale overwritten extension modules (pm-4v4c)
- Relationship timestamp snapshots must honor event time for late and offline arrivals (pm-j3swnb)
Security
- Extension install: untrusted manifest dependency specs reach npm install unvalidated (arg injection all-OS; shell command injection on Windows) (pm-g072)
- CodeQL alert 30: polynomial ReDoS in shared path normalization primitive (pm-v3zd3o)
Other
- SDK reference documentation for promoted primitives + migration notes for the CLI-on-SDK layering (pm-ds3b)
- SDK authoring DX polish: manifest-drift guard in scaffold tests, expectation key naming, repeated --capability, define* index signatures (pm-llrp)
- Extension install should scaffold newly required item-type folders (pm health ok:false after installing pm-kanban until pm init) (pm-l98s)
- As a platform developer, I can build a non-PM domain system (e.g. a git-like VCS or a company's business workflows) using only pm SDK primitives (pm-8ngt)
- Cursor fingerprints: replace per-command presentation-flag deny-lists with contract-declared semantic classification in sdk/pagination (pm-fgih)
2026.7.23 - 2026-07-23
Added
- SDK relationship registry and graph-query primitives: custom typed edges, adjacency, paths, closures, impact, and bounded subgraphs (pm-ju83)
- Context relevance signal feature store: derived recency, graph, claim, risk, deadline, knowledge-density, and semantic-match signals (pm-3hps)
Fixed
- GH-646: classify merge reconciliation discards by net outcome (pm-mmm9o5)
- GH-649: reject self-referential ordering relationships at the SDK mutation boundary (pm-k9t17l)
- GH-645: standard-depth get/show JSON omits notes without notes_count (pm-3esl28)
- GH-638: delete JSON envelope reports the removed item as open (pm-tz2ikr)
- GH-635: plan create cannot forward strict Plan-required metadata (pm-qd3woa)
- GH-642: linked-test runner enters interactive init wizard before repository commands (pm-lcnk2n)
- GH-641: plan link promotion rejects registered implements relationship kind (pm-ypuc39)
Other
- Capstone: zero the SDK import-boundary baseline — flip remaining CLI/MCP private-core imports to SDK primitives and harden the ratchet into a hard boundary gate (pm-9x6e)
2026.7.22 - 2026-07-22
Fixed
- GH-576: unknown-command help probes return structured non-zero errors (pm-bu1m)
- Sentry PM-CLI-2G: make merge-driver installation permission failures actionable (pm-bnmlsc)
- Sentry PM-CLI-2F: classify manifest-proven torn bundle call-time TypeError (pm-pz7xtx)
- Compatibility gate rejects compact legacy create envelopes after release promotion (pm-pkdpyz)
- Sentry PM-CLI-2E: directory-shaped settings.json crashes CLI bootstrap (pm-k0nl2w)
- Sentry PM-CLI-2D: storage-integrity history scan reads .jsonl directories as files (pm-o1c53b)
- GH-551: dependency seeds accept global source_kind and preserve cross-workspace IDs (pm-topu)
- GH-595: list JSON always emits total/has_more/truncated/next_cursor and omits unset filters (pm-wrss)
- GH-623: opt-in post-merge history reconciliation hook and one-command verify repair (pm-mfkv92)
- GH-553/GH-584: CodeFactor unnecessary-spread findings — restructure flagged spread sites (class owner) (pm-zt1c)
- GH-574: flattened extension alias subcommands still drop option contracts after GH-503/GH-550 fixes (empty --help, valid options rejected as positionals) (pm-7ufz)
Security
- Dependabot alert #42: brace-expansion CPU denial of service (GHSA-3jxr-9vmj-r5cp) (pm-f5hy2n)
Other
- GitHub analyzer follow-up: GH-628 unnecessary spread, GH-629 duplicate blocks, and GH-630 unsafe optional chaining (pm-aw59hb)
- GH-582: runRegisteredListCommand flagged Complex Method by CodeFactor — extract option-assembly helpers in register-list-query.ts (pm-zwya)
2026.7.21 - 2026-07-21
Added
- Graph planning & structural analytics: critical-path slack, betweenness/closeness centrality, and articulation points/bridges (pm-efuo34)
- CLI+MCP surface for atomic bulk item mutations: JSON mutation batch on stdin over commitItemMutations (pm-xm7c)
- GH-438: accept a full item JSON document on stdin for pm create / pm update (pm-kipd)
- GH-435: lean JSON output mode omitting null/empty fields (~50% token cut for --json) (pm-cfed)
- GH-437: make lean mutation output the CLI default (parity with MCP compact envelope) (pm-nilh)
- GH-443: lean error mode — drop constant required/why boilerplate from structured errors (pm-g9xk)
2026.7.20 - 2026-07-20
Added
- Tracker merge semantics: field-aware merge guidance, history-chain-safe JSONL merging, and post-merge reconciliation for multi-branch agent workflows (pm-g5sx)
- GH-613: public SDK bulk item-mutation helper on commitWorkspaceTransaction — atomic create/update/close batches without hand-rolled step+compensation wiring (pm-y9hq)
- GH-612: additive --add-ac/--remove-ac forms for acceptance criteria — replace-only --ac clobbers concurrent branch edits (pm-xh82)
- GH-599: git merge driver + documented workflow for append-only history/*.jsonl (concurrent appends fork the hash chain) (pm-wc1r)
Fixed
- Merge-driver fence completeness: relationships/*.jsonl event stores uncovered and schema-added custom type folders silently drop driver coverage (pm-i4fx)
- MERGE_SAFETY.md documented an invalid config invocation: 'pm config set project ids.token_length 6' exits 2 (scope must precede the verb) (pm-46octv)
- GH-601: SDK mutation option bags and projected list items are Record<string,unknown> — typos and wrong types compile clean under strict (pm-x29o)
- GH-600: item id generation not collision-safe across branches/concurrent agents (4 base36 chars, local-disk-only uniqueness) (pm-pibw)
- GH-615: pm notes --message without content is a silent no-op — apply the GH-588 empty-comment guard to the notes twin (pm-iedg)
- GH-602: SDK .d.ts require @types/node but package does not declare it — tsc errors inside node_modules for consumers; plus shipped JSDoc defects (pm-n1xx)
- GH-596: update-many --ids must report nonexistent requested IDs (pm-ukml)
- GH-597: reject empty append text without false updated_at freshness (pm-d9g9)
- Nightly macOS+Windows red post-PR#568: staging-base selection compares realpath'd source against non-canonical temp dir — staging lands inside source, fs.cp EINVAL self-copy (pm-hvt3)
- fix: nightly windows/Node24 red — vcs-extension spec asserts POSIX 'relationships/events.jsonl' against native default store path (pm-34yf)
- GH-607: validate reports ok:true / checked_items:0 on structurally-unparseable item .toon — silently skips what pm get hard-errors on (pm-cxyv)
- GH-598: pm init .gitignore block hardcodes .agents/pm/ prefix — custom-root workspaces commit runtime cache and conflict on every merge (pm-4uqm)
Other
- Adopt collision-resistant id entropy in the pm-cli repository (ids.token_length 4 -> 6) (pm-88cy)
- Adopt PR#614 merge safety in the pm-cli repository itself: pm merge install, committed .gitattributes fence, CI storage-integrity + strict history-verify gates, transactions GC schedule (pm-iwsj)
2026.7.19 - 2026-07-19
Added
- Public SDK transaction boundary: atomic multi-item + relationship-event commit primitive (pm-4e12)
- Beyond-PM SDK exemplar spike: minimal VCS-style changeset workflow as a pm package (custom schema + event-sourced history + hooks) (pm-xtrd)
Fixed
- Workspace-transaction journals: .agents/pm/transactions/ outside the init gitignore block with no retention or GC (pm-8xod)
- GH-609: settings.json/schema/*.json have no merge driver; validate reports ok:true by silently falling back to defaults on unparseable config (pm-xdn6)
- GH-611: delete/modify merge silently resurrects deleted items and leaves conflict markers in history/*.jsonl while validate stays green (pm-wwfd)
- GH-604: pm history <id> --verify exits 0 when verification.ok is false; no --strict-exit — unusable as a merge-safety gate (pm-ol3p)
- GH-608: concurrent edits to different fields always conflict on the shared updated_at scalar (no field-level .toon merge) (pm-m3nl)
- GH-603: history-repair cements cross-author data loss after a lossy merge — reverting patch discards the other author's mutation, validate fully green (pm-gpo7)
- GH-606: concurrent note/tag appends hard-conflict the .toon item file; stale count headers corrupt the item beyond parsing (pm-9q2t)
- GH-588: pm comment --message exits 0 recording nothing — comment invocation without any comment text must fail fast (pm-yp56)
- GH-589: pm next --assignee X answers from anonymous-caller perspective and pm claim conflates assignment with claim (pm-cj9v)
- GH-591: pm context agenda events re-embed full item payloads already listed in the same response (~35% of brief output) (pm-6m1i)
- GH-592: tracker_not_initialized recovery re-suggests pm init even when a --pm-path tracker exists — following it silently splits workspace state (pm-tmhs)
- GH-586: graph audit severity and code summaries mix finding and affected-item units (pm-um4g)
- GH-590: cycle-creating blocked_by mutations succeed silently — items deadlock out of pm next with no inline feedback (pm-i6pi)
- GH-585: extension alias collision diagnostics for core command groups (pm-v1yo)
2026.7.18 - 2026-07-18
Fixed
- MCP nested options accept unknown keys silently (pm_deps options.dep no-ops) — extend pm-qxwu top-level warning into options objects (pm-upi0)
- Sentry PM-CLI-2C: classify Node MaxListeners runtime warnings as warning-level diagnostics (pm-qpfv)
- GH-578: align pm context and pm list-blocked with edge-aware pm next semantics (pm-uxkf)
- pm deps context format reports missing_count without enumerating missing references and disagrees with tree format (pm-8kch)
Security
- CodeQL alert 27: js/polynomial-redos in sdk/test/linked-command-detection.ts trailing-dash prefix trim (pm-8og4)
Other
- As an agent, I can traverse why an item exists, what it affects, what blocks it, and its evidence chain from one bounded graph query (pm-8xr8)
2026.7.17 - 2026-07-17
Added
- SDK-only exemplar: minimal custom PM CLI package proving the universal-tool story end-to-end (pm-cbwg)
- Promote execution and diagnostics primitives to the public SDK: linked-test running and test-run lifecycle, search eval harness, telemetry stats/export (pm-oslr)
Fixed
- cli/main.ts commander program is a module-level singleton: dynamically registered extension commands/flags persist across in-process invocations (pm-qfdd)
- Windows packed-extension install regression exceeds the generic Vitest timeout (pm-ph3i)
2026.7.16 - 2026-07-16
Other
- 2026-07-15 full CLI SDK and ecosystem manual audit and optimization plan (review pass 91) (pm-45lr)
2026.7.15 - 2026-07-15
Added
- Promote governance, validation, health, and maintenance primitives to the public SDK: validate, health, gc, changelog/reporting hooks (pm-oxrw)
- GH-444: ergonomic author attribution — global --author, init author_default, unknown-author advisory (pm-cpja)
- Promote schema, config, profile, and init primitives to the public SDK: full workspace customization programmatically (pm-3mna)
- Promote package & extension lifecycle primitives to the public SDK: install, upgrade, extension list/enable/disable, managed-package state (pm-x6jf)
- Promote annotation and link primitives to the public SDK: comments, notes, learnings, files, docs, deps, append metadata (pm-zwpp)
- Point-in-time read projection: pm get --at <version|timestamp> renders reconstructed historical item state without mutating (pm-hib1)
Fixed
- Linked-test item reference parser skips item IDs after value-bearing flags (pm-jhg9)
- Sentry PM-CLI-2B: external extension subprocess cannot resolve pm executable (pm-d4ns)
- Sentry PM-CLI-29: external Neo4j command reports missing configuration as a high pm-cli error (pm-7n5a)
- Nightly windows/Node24: package-manifest SDK-surface exemption uses POSIX endsWith — governance-audit runtime.ts check fails on backslash paths (pm-u5zr)
- GH-522: Windows nightly red — init next-steps hints POSIX-quote native Windows paths (quoteCommandArg backslash escaping) (pm-b24b)
- GH-567: macOS+Windows nightly red — extension-install copy self-nesting check misses symlinked/short-name temp paths (realpath fallback asymmetry) (pm-0fhw)
- Adopt CodSpeed continuous CPU benchmarking in CI: review/land PR#564 and establish the per-PR perf-regression signal (pm-yh6t)
- GH-562: pm init rejects --id-prefix/--prefix flag though id prefix is only positional (pm-nmzx)
- GH-560: extension renderer overrides diverge between SDK harness and real CLI output (pm-as4a)
- GH-557: contract layer intercepts -h/--help before variadic-positional handlers, blocking legitimate positional content (pm-albl)
- GH-547: SDK exporters and renderers cannot suppress host rendering of handled output (pm-f38n)
- GH-550: extension list flags are erased at the real CLI boundary (pm-evav)
- GH-558: export canonical item-to-context-relevance candidate derivation from the public SDK (pm-qyc6)
- GH-555: remove unnecessary spread in relationship registry ordering assertion (pm-ofgc)
- Validate lifecycle cycles using ordering relationship kinds only (pm-6irg)
Security
- Add OSSF Scorecard supply-chain security workflow with published results and SARIF code-scanning upload (pm-k7dp)
Other
- validate_history_unknown_author_events: legacy/actionable split for immutable unknown-author history events + first-party automation author coverage (pm-demq)
- Ship DeepSource, DeepScan, and Scrutinizer CI free-OSS analyzer configurations with documented activation (pm-3a68)
- ADR: relationship graph semantics — typed directional, ordering, provenance, evidence, and associative edges with schema-extensible invariants (pm-4jqm)
2026.7.14 - 2026-07-14
Added
- Promote history-stream maintenance primitives to the public SDK: history-redact, history-repair, history-compact (audited rewrite, re-anchor, checkpoint/prune) (pm-4a7m)
- Context usage feedback signal: served-then-acted-on outcomes strengthen relevance scoring (retrieval-practice effect) (pm-uwfs)
Changed
- Replace obsolete front-matter vocabulary with item metadata terminology (pm-hq28)
Fixed
- Sentry no longer captures deliberate Ctrl+C/Ctrl+D interrupts as error-level events (AbortError, PM-CLI-27) (pm-ksv2)
- pm get --full omits children for Plan parents while pm list --parent returns them (pm-y4z5)
- Intentional package CommandError outcomes create high-severity Sentry issues (PM-CLI-16) (pm-7071)
- Extension install self-copy guard: reject source-inside-destination layouts before fs.cp EINVAL (PM-CLI-28) (pm-8myl)
- Torn-install bundle transients block scheduled releases: boot-time chunk-integrity self-check + distinct error code for gate classification (pm-wfvq)
- GH-446: pm get omits schedule facet (events/start_at/end_at/location) for Meeting/Event/Reminder (pm-x1g5)
- GH-533: create/update accept empty --title — required-title contract inconsistent between omitted and empty string (pm-7je0)
- GH-535: pm deps omits dangling parent references (missing_count:0, missing:false) contradicting validate's dangling_reference_count (pm-p9sc)
- GH-542: MCP pm_copy nests title/message under options while sibling tools declare flat camelCase params — own suite triggers unexpected-arg warnings (pm-hno5)
- GH-532: --estimated-minutes accepts negative numbers and floats — missing non-negative-integer range validation (pm-jh9t)
- GH-534: no-op update reports phantom changed_fields in --json while TOON reports empty, and changed_field_count is always null in JSON (pm-45mb)
- GH-526: aggregate --sum/--avg accept unknown field names and silently report 0 (pm-96vo)
- GH-530: list --status <invalid> silently returns count 0 — validate against the status domain like --type and search status: (pm-kj4k)
- GH-544: linked-file path anchoring — files/docs add/glob/discover/validate-paths resolve at process.cwd() while validate --check-files anchors at the workspace root (pm-chyh)
- Separate active dangling dependency warnings from terminal historical reference diagnostics (pm-2ler)
Other
- Docstring coverage regressed below achieved-100% by PR#536 extraction files; quality:static floors never ratcheted and mask drift; drop dead closure-pattern export (pm-fb3i)
- PR review helper: watch GitHub checks and enforce thread-scoped replies (pm-0fxa)
- Token-budget context packer: diversity-aware selection, projection degradation, and bounded output for pm context/next (pm-55ra)
- Complete public linked-resource SDK primitives and actionable dependency governance (pm-jcvg)
2026.7.13 - 2026-07-13
Added
- Bare-core audit extraction phase 2: move audit command implementations and audit flags out of default CLI/SDK into pm-governance-audit (pm-vjk3)
- Cursor pagination and bounded-output defaults for list/search/context at scale (pm-dfg0)
- Notes/learnings repair parity: add --edit/--delete (and a real --stdin/--file input source) matching comments, so bad annotation entries are fixable via the CLI (pm-a2h3)
Changed
- S3: move the --allow-audit-* override flag family out of core command registrations into pm-governance-audit (enforcement stays core) (pm-7dcf)
- S2: move the --audit linked-usage report mode off pm files/pm docs into pm-governance-audit (pm-27mv)
- S1: relocate dedupe-audit/dedupe-merge/comments-audit/normalize implementations into pm-governance-audit and delete their public SDK exports (pm-79fr)
Fixed
- Runtime-extension snapshot caches go stale in long-lived in-process embeddings (install invisible to next invocation) (pm-8fxc)
- GH-518: reduce Complex Method in src/cli/commands/next.ts (CodeFactor, PR#517 rank rendering) (pm-2gvp)
Other
- Extract governance audit runtime from the default CLI and SDK (pm-w1c0)
- S5: coverage migration + bare-core vs installed-plugin e2e verification for the audit extraction (pm-rxp1)
- S4: purge audit surface from default SDK contracts, MCP tool definitions, completion, help, and docs; package declares its own contracts; re-measure token surface (pm-kg18)
- Promote terminal-status and mutation runner primitives required by package-owned governance workflows (pm-yu6d)
- Decision: extension-point mechanism and bare-core fallback semantics for extracted audit flags (D1+D2 of pm-vjk3) (pm-fg0b)
- Scale benchmark harness: synthetic 10k/100k/1M-item workspace generator + latency/memory/token baseline for the read and claim hot paths (pm-mi2x)
- Lazy-load @sentry/node off the command hot path (~850ms ESM load on every command, even when telemetry disabled) (pm-1ybs)
- ADR: workspace scale-out strategy — indexed reads, storage fan-out, and bounded-output contracts for 100k-1M-item workspaces (proposed) (pm-bl8x)
- Local test/coverage dev loop 17+min: replace per-call spawnSync CLI runner with synchronous worker-thread bridge (pm-kvd0)
2026.7.12 - 2026-07-12
Added
- Promote plan workflow primitives to the public SDK: plan create/steps/dependencies/decisions/discoveries/validation/materialization (pm-je50)
Fixed
- Restore 100% SDK workspace read-error coverage (pm-jw2a)
- GH-510: macOS nightly red — withTempPmPath skips realpath canonicalization; init-path-guard probe-root assertion fails (/var vs /private/var) (pm-dprb)
- GH-454: schema add-field accepts reserved built-in names silently; collision error names no partner (pm-b9ov)
- GH-516: pm init seeds unrelated managed packages into fresh PM_GLOBAL_PATH workspaces (pm-b0se)
- GH-448: boolean custom field is silently never persisted (data-loss class) (pm-sjfs)
- GH-509: pm claim --next lacks candidate filters and race-loss walk — thread next filters + advance to next candidate (pm-fjxm)
- Prevent Decision items from entering agent work lanes by default; allow explicit maintainer opt-in (pm-eqk0)
- GH-513: pm next ready[] documented as ranked but not priority-ordered; no rank/score exposed (pm-1mwk)
- Fix red main coverage gate: measure-agent-token-surface.mjs landed without a covering spec (pm-ksca)
- GH-508: dedupe LegacyNoneCollectionNormalizer tables duplicated between create.ts and update.ts (CodeFactor) (pm-zuw8)
- Release-readiness guard expects pre-sync version:check command after date-version synchronization (pm-pmmv)
- Restore generated-loader docstrings and redact host path from tracker history (pm-9ugc)
- Full coverage contention times out metadata content-filter integration case (pm-d30l)
- GH-453: plan materialize --json response omits title/type/parent on materialized entries (pm-ypha)
- GH-452: plan materialize dead-ends on types with required-on-create custom fields (pm-qd2h)
- GH-507: recovery suggested_retry appends <value> to missing boolean EXTENSION flags (contract arity ignored) (pm-9qcr)
- GH-505: nested extension failures suggest irrelevant missing flags instead of preserving tracker recovery (pm-o71e)
- GH-504: importer/exporter registered without options yields an unusable CLI command (no arg/flag contracts) (pm-0mjz)
- GH-503: flattened extension-command aliases (csv-export, jira-sync) drop option contracts (pm-s9iu)
Other
- Coverage to 100%: src/core, src/mcp, and src/sdk modules (pm-krwu)
- Baseline agent token cost of the CLI surface: measure pm --help, per-command help, and contracts payload sizes before consolidation (pm-a22j)
- Research and document the July 2026 native ChatGPT/Codex plugin implementation plan (pm-n28t)
- Align all plugin and package manifests to date-based versioning with release-time sync (pm-hxsv)
2026.7.11 - 2026-07-11
Added
- pm claim --next: atomically claim the next actionable item so parallel agents each get distinct work (pm-114v)
Fixed
- Dangling dependency references: accepted at create/update, skipped by validate, and treated as satisfied by pm next (silent unblock) (pm-ol5v)
- Classify tracker-not-initialized Sentry CommandErrors as expected handled CLI errors (pm-w7jq)
- GH-498: pm comments rejects --body — accept it as an alias for --add and hint on unknown options (pm-z32q)
- GH-500: suggested_retry renders boolean flags with a "<value>" placeholder — literal suggestion fails (pm-6y58)
- pm next repeats the recommended item verbatim as ready[0] — emit an id reference instead (pm-hfg5)
- pm next recommends another agent's assigned in_progress item as 'resume to finish' — recommendation must be caller-aware (pm-yl6c)
- GH-489: pm next summary reports blocked: 0 while blocked items exist — blocked companion list missing (pm-l0bu)
- GH-501: pm init <path> roots a tracker that workspace discovery cannot find — tracker_not_initialized loop right after init (pm-69nl)
- GH-496: extension flags declared list:true don't accumulate repeated occurrences — host maps to scalar, Commander last-wins drops values (pm-kfq5)
- Reserved item-field name collisions are invisible to SDK lint/preflight/harness (pm-ghf1)
- Repeated --ac flags on create/update silently keep only the last acceptance criterion (pm-b84u)
- GH-497: pm create --template silently drops tags and custom type-option fields — only built-ins (priority/assignee) apply (pm-l6rz)
- pm create/update --dep silently normalizes malformed shorthand into dangling dependency ids (related:pm-x26a -> pm-related:pm-x26a) (pm-zazb)
- contracts-snapshot gate is environment-dependent: fixture baked in installed-extension contracts, failing CI on extension version drift or absence (pm-zcjy)
- GH-495: extension context pm_root ignores root-layout trackers (falls back to non-existent .agents/pm) (pm-kvev)
- pm close never stamps closed_at, so changelog and release-notes bucketing always falls back to updated_at (pm-m4iu)
Other
- Repo-wide 100% docstring coverage: public API + data contracts (gate-enforced) (pm-4ak1)
- Docstring gate: extend static-quality-gate to enforce public-API + data-contract coverage repo-wide (pm-5566)
- Docstrings: src/types (shared data model interfaces + consts) (pm-uxmf)
- Docstrings: src/sdk (public SDK surface + cli-contracts) (pm-uwu0)
- Docstrings: packages/* (module docs + exported/public surface for all 11 shipped packages) (pm-qely)
- Docstrings: src/core/extensions (extension-types + loader/runtime contracts) (pm-mswi)
- Docstrings: src/cli/commands (largest surface — command option/result interfaces) (pm-m0uc)
- Docstrings: src/core (search, schema, test, history, telemetry, governance, store, item, and remaining core modules) (pm-768v)
- Docstrings: src/cli (non-commands), src/mcp, src/ root modules (pm-2vb2)
- Untrack vendored pm-changelog extension dist from git (installed npm artifact, restored by changelog:pm:install) (pm-sod3)
- Refresh CodeQL Actions and reject incompatible Node 26 type-contract bump (pm-2a9n)
2026.7.10 - 2026-07-10
Added
- GH-473: pm install prints a post-install verification summary (pm-yjim)
Fixed
- Sentry release gate misclassifies handled duplicate-import refusal as a blocking runtime error (pm-io4t)
- GH-488: path-target pm init emits executable tracker-scoped follow-up commands (pm-x26a)
- Declarative extension install: activation failure is misreported and scaffold next_steps break when @unbrained/pm-cli is unresolvable (pm-3wsi)
- Project package install with --pm-path can write extensions into the caller workspace (pm-qt5d)
- GH-482: Node 24 nightly coverage gate flake — readdir-order-dependent branch at front-matter-cache.ts:505 (pm-gume)
- Context evaluation runner and CI gate: rank-aware quality metrics plus token-budget regression checks (pm-xmp5)
- Token-cost regression gate: CI budget check over a representative command-output corpus (pm-cu1i)
- GH-484: pm update --blocked-by silently overwrites prior blockers instead of appending (pm-q6gx)
- GH-485: pm search rewrites quoted status:all hybrid queries into --status and drops keywords (pm-2ldo)
Other
- Pre-install package-owned command names should hint the owning package install command (pm-b3e9)
- Context relevance scorer contract: pluggable SDK weighting, deterministic default model, and extension override path (pm-h3no)
2026.7.9 - 2026-07-09
Added
- GH-442: lean pm contracts --summary mode for cheap agent bootstrap (25KB -> 1-3KB) (pm-vxxm)
- GH-470: pm list --today and --recent shorthand filters for recently active items (pm-bfma)
2026.7.8 - 2026-07-08
Added
- GH-467: isolated package/extension diagnostics — project-scoped doctor and smoke tests without global pm state leaking in (pm-6abs)
- GH-474: pm search --limit support in hybrid mode (pm-alnj)
Fixed
- Triage: close GH-455 with shipped evidence once the Ollama embedding auto-default fix releases (pm-hq0r)
Other
- Expose package lifecycle primitives through public SDK helpers (pm-kffw)
- Expose sentry telemetry gate as package script alias (pm-w86l)
- ADR: 2026-06-07 deep review + remediation pass (never-block, MCP/version coherence, docs/CI hardening) (pm-96wm)
- GH-476: pm context rejects --max-items with an untargeted unknown_option (alias or recovery hint) (pm-5h9g)
2026.7.7 - 2026-07-07
Added
- Promote query/read primitives to the public SDK: list, get, search, context, next, aggregate, stats (pm-rjqr)
- Promote item lifecycle primitives to the public SDK: create, update, close, claim/release, copy, delete, restore, focus (pm-98cz)
Fixed
- SDK client.run() rejects structured payloads for create: raw {type,title} fails with 'Missing required option --title' (pm-395t)
- GH-427: Windows Node 24 nightly fails — POSIX-only error-code assertions (EACCES/EISDIR) in restore-command and history-rewrite specs (pm-lt6n)
- pm plan create silently ignores the root --id-only flag (prints full plan envelope) (pm-oz0k)
- Annotation --add silently stores flag-like tokens as content: pm notes <id> --add --stdin records the literal note "--stdin" (pm-vcu7)
- Bare extension command group (pm changelog / pm graph) exits 0 with zero output instead of rendering group help (pm-1k57)
- pm extension --install pm-<alias> / @unbrained/pm-<alias> fails with 'Local extension source does not exist' instead of suggesting the bundled catalog alias (pm-jqd2)
- GH-463: linked PM tracker-read tests should auto-remediate or suggest --auto-pm-context (pm-6e1d)
- GH-455: pm health auto-selects an uninstalled Ollama embedding model then fails vector refresh (pm-aems)
- Relative lancedb vector-store path resolves against process cwd, creating nested .agents/pm/.agents/pm stores (pm-og1v)
Other
- GH-458: claim/start-task reject --assignee with an untargeted recovery hint (alias or better hint) (pm-qfte)
- GH-468: clarify or publish the pm SDK npm package coordinates (@unbrained/pm-sdk is 404) (pm-25d0)
- 2026-07-07 ecosystem audit #16: all-status review, long-horizon gap items (merge semantics, event stream, policy roles, flow metrics) (pm-su60)
- 2026-07-06 ecosystem audit #15: WIP hygiene, GH/commit coverage verification, grammar+SDK domain completions, horizon-4 planning (pm-pvij)
- chore: 2026-07-06 ecosystem audit #14 — WIP status hygiene (docstring family reset) + stale in-progress detection backlog (pm-6a1g)
- chore: 2026-07-06 ecosystem audit #13 — Semgrep-issue metadata backfill, scale-out initiative pm-9rxu, composability contract set (pm-lgim)
- 2026-07-06 ecosystem audit #12: GH-467..474 backlog coverage + code-scanning capability epic (pm-3rgp)
- pm install should accept multiple package targets (help already advertises [targets...]) (pm-hj9h)
- Triage: close stale dogfood reports GH-436 (pm next/focus) and GH-440 (context --fields) with shipped evidence (pm-7cx8)
- Unblock dependabot PRs: @types/node 26 type error, pnpm release-age cooldown, codeql-action lockstep group (pm-2czc)
2026.7.6 - 2026-07-06
Added
- Expose SDK runAction and PmClient execution surface for programmatic integrations (pm-xzhz)
Other
- ADR: the pm SDK is the single public API — CLI and MCP are presentation layers (proposed) (pm-muhw)
2026.7.5 - 2026-07-05
Added
- Architecture boundary ratchet: prevent new CLI/MCP private core imports while SDK promotion shrinks the baseline (pm-8778)
- Lock contention auto-retry: bounded jittered wait before lock_conflict so parallel agent mutations self-heal (pm-2muu)
- As a new teammate or onboarding agent, I want accurate docs, one-command onboarding, and automated date-based releases, so that I can become productive quickly and ship safely (pm-ixm6)
- As a coding agent, I want keyword, semantic, and hybrid search with inline field filters, so that I can find relevant prior context before creating new work and never duplicate an item (pm-nnro)
Fixed
- pm claim silently steals items already assigned to another agent — claim must be atomic test-and-set for multi-agent work distribution (pm-8t5x)
- Extension activation adds ~200ms to every command when bundled packages are installed (pm-4oww)
- pm close <id> -m 'text' still hard-blocks with close_reason_required: accept --message text as close-reason fallback (like closed pm-7x8d did for --resolution) (pm-9hry)
- Extension installs are dead-on-arrival in CommonJS host projects: installed extension dirs lack package.json type:module (pm-r0m4)
- beads/todos import-export runtime broken from real npm installs: runtime-loader imports .ts under node_modules (type-strip refused) (pm-ejy7)
Other
- Bundle GH-433 self-parent guard, Windows nightly lock proof, and pnpm 11 bootstrap hardening (pm-q1ke)
- Inventory the CLI-to-core call graph: map every command to core modules and classify logic for SDK promotion (pm-lodl)
- 2026-07-04 ecosystem audit #4: coverage matrix, governance capability epic & relationship modeling (pm-osea)
- As a future maintainer, I want every significant architectural decision recorded as an ADR with context, decision, and consequences, so that I can understand why the system is built the way it is (pm-xugp)
- As a maintainer extending pm with agents, I want CodeFactor A+ enforced by ratcheted static gates, so that the codebase stays maintainable no matter how many agents contribute (pm-r0z2)
- As an MCP-connected agent, I want narrow pm_* tools kept in lockstep with the CLI via machine-readable contracts, so that I get drift-free, discoverable operations over the same primitives (pm-wo7x)
- As a coding agent bootstrapping any project, I want to define custom item types, statuses, fields, workflows, and profiles via config, so that pm fits the project's domain without code changes (pm-0zuv)
- As a maintainer, I want consent-aware local telemetry and health diagnostics, so that I can observe how pm is used and detect problems without leaking any project data (pm-gnya)
- As one of many parallel agents, I want atomic claim and lock semantics with bounded auto-retry, so that we each get distinct work and never corrupt shared tracker state (pm-miju)
- As an agent gating on tracker quality, I want pm validate and pm health to surface every data-quality gap with a machine-executable remediation, so that I can keep context trustworthy and rebuild it from pm alone (pm-tra4)
- As a third-party author, I want an SDK to compose, validate, test, and ship a pm extension or package, so that pm can be customized and optimized for any project without forking (pm-m2kl)
- As a coding agent, I want every mutation to be atomic and fully replayable from an append-only history, so that I can trust the tracker's state and recover any prior context at any time (pm-hu11)
- As a coding agent, I want every pm command to be self-describing and to never block without a machine-actionable recovery path, so that I can operate the full item lifecycle with zero out-of-band context (pm-nh73)
- Backfill full-context bodies (and comments/deps/risk) on all active items so context is rebuildable from pm CLI alone (pm-o043)
- Sandbox audit fixes: package describe accepts npm package name; pm context <id> routes to pm get (pm-ayn7)
- 2026-07-04 full pm-backlog audit: reconcile pm items with entire ecosystem (code, tests, docs, ideas, decisions) (pm-y904)
- GH-426: reduce complex method in compatibility-check.spec runCurrentPmCommand (pm-24o5)
- SDK testing-helper input validation: runRegisteredCommandForTest positional misuse crashes; createExtensionTestHarness accepts non-extension module silently (pm-2exf)
2026.7.4 - 2026-07-04
Security
- Extreme mandatory quality gates: strict ESLint everywhere, jscpd strict/zero-threshold, suppressions budget, Trivy/ShellCheck/PSScriptAnalyzer/actionlint CI, admin-proof branch protection (pm-7wmq)
Other
- Test meaningfulness audit: strengthen hollow assertions, de-mock thin specs, convert contract source-mirrors to behavior (pm-4i73)
2026.7.3 - 2026-07-03
Fixed
- GH-416: Windows nightly validate linked-artifact prune classification (pm-xpkt)
Other
- Perf: pm context / pm next hot path ~700ms on an ~850-item tracker (pm-z1pv)
- 2026-07-02 full ecosystem audit & optimization pass (CLI+SDK+packages+docs+CI) (pm-fpod)
- Lane C: Code quality audit (complexity, dead code, cross-file duplication, long files, type safety, dependencies) (pm-hfli)
- Lane F: CI/CD best-practice + secret/PII leak scan incl. pm history files (pm-mo2v)
- Lane E: Docs audit (progressive disclosure, minimal README, link graph, duplicated docs/skills) (pm-p99b)
- Lane B: SDK best-practice + package-authoring DX review (define/compose/harness/preflight loop, scaffold matrix) (pm-6vy7)
- Lane A: E2E ecosystem smoke in temp workspace (pack+install CLI, all first-party packages, full command surface, agent UX/token-efficiency) (pm-kes3)
- Lane D: Performance audit (startup latency, per-command responsiveness, hot paths) (pm-3l76)
- CodeFactor residual complexity and duplication cleanup for 27-issue main snapshot (pm-bssk)
- Zero the jscpd clone baseline: dedupe registration-helpers/flag-contracts source clones and 21 test-spec clones (pm-chxp)
2026.7.2 - 2026-07-02
Changed
- CodeFactor/Complexity: decompose runUpdate, the update mutate apply-callback, and register-mutation MCP arrows (pm-0n6p)
2026.7.1 - 2026-07-01
Changed
- CodeFactor/Complexity: decompose runCreate (CC 172) and the audit-scope update guard (CC 38) (pm-g7vl)
Fixed
- Auto Release blocked: bot cannot push version commit to protected main (GH006, 12 required checks) (pm-9gxi)
Removed
- CodeFactor/Complexity: remove 33 suppressions and split 100+ complexity-point dispatch hot spots (pm-o34s)
Other
- CodeFactor/Complexity: zero out the SDK contract-resolution, extension-loader and composition surface (pm-lzzp)
- AGENTS.md: mandate reading full live pm item data (status/resolution/comments) before any state claim (pm-g61e)
- CodeFactor/Complexity: cut cyclomatic-complexity debt across the extension authoring, management & diagnostics surface (pm-zro7)
2026.6.30 - 2026-06-30
Added
- pm package/extension init --capability profile: scaffold a project-profile starter package (pm-h2hk)
- Project profile author-time validation: lintProjectProfile + assertProjectProfile + pm profile lint (pm-j1fj)
- Extension-contributed project profiles: api.registerProfile end-to-end (pm-08sv)
- SDK test harness summary/render surface (pm-2qte)
- Describe --markdown writes reference docs to a file (pm-u2tm)
- SDK + CLI: render extension/package surfaces to Markdown reference docs (renderExtensionSurfaceMarkdown + describe --markdown) (pm-dmum)
- First-party baseline profile package built on public SDK primitives (pm-a7o4)
- Project profile presets: compose types, statuses, fields, workflows, templates, and packages (pm-v37g)
- Add pm package / pm packages shell completion (bash/zsh/fish), including the package-only --declarative flag (pm-mthy)
- pm package init --declarative: scaffold a composeExtension blueprint starter + author-time preflight test (pm-8mxg)
- pm next: recommend the next actionable (unblocked, ready) work item with rationale + blocked companion (pm-nj90)
- Complete scaffold capability matrix: --capability renderers/parser/preflight/services starters (pm-i5p5)
- pm package/extension init --capability schema: scaffold custom item type/field/migration starter (pm-d1ig)
- Scaffolded & authored command-bearing extensions reliably activate for their own commands (pm-yxb5)
- TypeScript-only extension loading: ship .ts entry, load via Node native type stripping (no compiled .js) (pm-2p7a)
Changed
- CodeFactor/Duplication: remove duplicated code blocks (×20: 2 Critical, 3 Major, 15 Minor) (pm-fmjy)
- CodeFactor/Complexity: reduce cyclomatic complexity (×152: 3 Critical, 7 High, 142 Moderate) (pm-arzz)
- ADR: pm extensions are authored AND loaded as TypeScript via Node native type stripping (pm-m1uz)
Fixed
- CodeFactor no-regression gate: complexity ceiling + ESLint suppressions baseline + Greptile in local CI/CD (pm-bkcv)
- MCP action-schema contracts drifted from CLI flag tables (guide.list, health.brief, validate.parentCycleSeverity, contracts.full) (pm-zx13)
- pm next hides completed-container closeout rows while leaf work exists (pm-9g87)
- Windows background stop progress assertion (pm-bnh3)
- GH-348/GH-376: Windows nightly Vitest worker fork exits unexpectedly after passing tests (pm-2kkl)
- CodeFactor/Maintainability: fix unsafe optional chaining (no-unsafe-optional-chaining ×25) (pm-m8yl)
- CI: make Codecov badge uploads branch-explicit (pm-x878)
- pm next should skip completed open containers when recommending actionable work (pm-2n6i)
- pm validate --check-files mis-handles remote (URL) doc/file references: flagged as deleted and silently destroyed by --prune-missing (pm-k2n4)
- pm install does not scaffold extension-contributed item-type folders (transient missing_directory health warning) (pm-rjab)
- Contracts command lookup should handle package namespace roots (pm-y1o4)
- GH-363: Windows nightly (Node 24) red — runtime-loader colon-path + telemetry detached-spawn unhandled error + npm-install regression (pm-xaib)
- Auto Release blocked-alert step can never create its tracking issue (auto-release.yml missing issues:write) (pm-qawd)
- Aggregate --status all should match duplicate-safe lifecycle filters (pm-bhtx)
- Sentry PM-CLI-1T: pm stats should tolerate disappearing history streams (pm-7o0s)
- Package lifecycle typo recovery should suggest action subcommands (pm-js02)
- describeExtensionBlueprint omits importer/exporter-with-options command definitions (parity gap vs describeExtensionActivation) (pm-zqes)
- deriveExtensionCapabilities omits 'schema' for importer/exporter options.flags (declarative blueprint under-grant) (pm-v3ty)
- pm package doctor should warn when a schema package registers item types/fields but declares narrow activation.commands (silently non-global) (pm-ok47)
- Scaffolded search/importers package commands fail to dispatch: lazy-activation probe skips command-bearing extensions that omit activation.commands (pm-nacb)
- Harden extensionNeedsActivationForProbe: non-terminal search gate + command-bearing importers (pm-b5r8)
Removed
- CodeFactor/Maintainability: remove useless object-spread fallbacks (unicorn/no-useless-fallback-in-spread ×57) (pm-xsth)
Other
- PR #406 review follow-up: clear partial MCP extension registries before fallback execution (pm-dyzy)
- ADR: profile lint severity model — errors break apply, warnings flag suspicious-but-valid cross-references (pm-qcdu)
- Action-scoped MCP parameter descriptions: split shared name/target description per action (schema vs profile) (pm-fq80)
- Built-in MCP actions are now extension-aware: pm_profile/pm_list/pm_schema activate workspace extensions like the CLI (pm-zumn)
- Docs: SDK.md/EXTENSIONS.md document api.registerProfile + regenerate contracts/full.json (pm-ol8j)
- Dogfood: pm-kanban registers kanbanProfile so pm profile apply kanban works (pm-kj7x)
- SDK profile parity: assertRegisteredProfile + composeExtension blueprint.profiles + deriveExtensionCapabilities + describe (pm-l8fl)
- pm profile list/show/apply merges extension-registered profiles with source labels (pm-vpwt)
- registerProfile core registration surface: ExtensionApi + registry + loader gate + capability-usage + policy surface (pm-6oox)
- Decompose cli-contracts.ts monolith into flag-contracts + tool-schema sibling modules (pm-3wue)
- First-party package manifests declare current SDK compatibility floor (pm-6d7q)
- Package scaffolds declare current SDK compatibility floor (pm-sf08)
- Refresh Sentry release and telemetry dependencies (pm-4dz7)
- CodeFactor parity tooling: local ESLint (unicorn) + complexity + duplication lint to reproduce findings and prevent regressions (pm-6sqo)
- CodeFactor/Maintainability: clear remaining unicorn lints (no-thenable ×4, no-useless-spread ×2, no-useless-length-check ×1) (pm-q0ye)
- ADR: offline BM25 lexical provider + relevance eval harness for search quality (pm-f2al)
- ADR: explicit pm_format_version front-matter field for storage schema evolution (pm-eeai)
- Normalize stale audit containers and intentional-open resolved items (pm-psc0)
- Docs & CI/CD audit 2026-06-12 (pm-gpea)
- Audit (2026-06-07): observability / telemetry / health (pm-lzrq)
- Audit (2026-06-07): storage/history + search/semantic (pm-34gb)
- Audit (2026-06-07): MCP + SDK/extensions/packages (pm-b4cp)
- Audit (2026-06-07): CLI surface & schema/config (pm-srex)
- Audit (2026-06-07): docs/onboarding/release/CI + tests/coverage (pm-5dbn)
- Expose project profile application through MCP contracts and drift gates (pm-bhmk)
- 2026-06-25 PM ecosystem taxonomy and context backlog normalization (pm-57vh)
- Sub-agent lane: release, GitHub, Sentry, telemetry, and live-ops evidence (pm-3whx)
- Sub-agent lane: SDK, packages, MCP, and universal customization backlog (pm-o578)
- Sub-agent lane: source, tests, docs, and command-surface coverage map (pm-xezi)
- Sub-agent lane: tracker taxonomy, hierarchy, and duplicate hygiene (pm-klpw)
- Refresh runtime dependencies for audit baseline (pm-r642)
- Extend pm package init --declarative to the full capability matrix (hooks/search/importers/schema/renderers/parser/preflight/services) (pm-lfdv)
- ADR: dependency-aware actionability for pm next — ready = active leaf with no open blocked_by; reuse compareCriticalItems + shared blocked_by resolver (pm-9x6k)
- Schema-capability scaffolds must omit narrow activation.commands so custom item types/fields register globally (pm-halx)
- Schema scaffold docs: EXTENSIONS.md, SDK.md, shell completion, help-content examples (pm-pwf1)
- Schema scaffold tests: unit coverage (package+extension variants) + materialize/run generated node:test smoke (pm-x3vi)
- Implement schema scaffold capability in scaffold.ts (manifest/entrypoint/README/define* guidance, omit activation.commands) (pm-mdw6)
- Document activation.commands lazy-activation contract in scaffold README, EXTENSIONS.md, SDK.md (pm-scvz)
- Scaffold emits manifest activation.commands matching registered command paths per capability (pm-mhih)
2026.6.24 - 2026-06-24
Added
- TypeScript-first extension & package scaffolding + SDK docs reframe (pm-09rh)
- Modular declarative authoring: mergeExtensionBlueprints + composeExtensionPackage (pm-2p38)
- SDK unified author-time preflight capstone: preflightExtension + assertExtensionPreflight (pm-ozaf)
- SDK author-time version-compatibility preflight: checkExtensionManifestCompatibility + assertExtensionManifestCompatible (pm-1w0d)
- SDK author-once manifest synthesis: synthesizeExtensionManifest + assertExtensionManifestMatchesBlueprint (pm-u5le)
Changed
- Extract shared version-compat core (core/extensions/version-compat.ts); loader delegates, behavior-preserving (pm-sjea)
Other
- ADR: pm extensions & SDK packages must be authored fully in TypeScript (pm-2c28)
- Convert docs/examples extensions to TypeScript-first (starter-extension, policy-restricted-extension) (pm-ax7z)
- Reframe SDK docs & docstrings TypeScript-first (SDK.md, EXTENSIONS.md, define*/compose*) (pm-l2ud)
- Scaffolder emits TypeScript source: index.ts + tsconfig.json + type-check/test scripts (./index.ts entry) (pm-frou)
- defineExtensionBlueprint: typed identity helper for partial blueprint fragments (pm-nvgy)
- composeExtensionPackage: author-once capstone returning { module, manifest } (pm-cn0c)
- mergeExtensionBlueprints: pure modular composition of partial ExtensionBlueprints (pm-high)
- assertExtensionPreflight(blueprint, options) — throwing CI/test bookend (testing.ts) + barrel re-export (pm-t8yl)
- preflightExtension(blueprint, options) — pure unified author-time analyzer (compose.ts) (pm-tcw1)
- assertExtensionManifestCompatible(manifest, target) — SDK testing assert (pm-hng2)
- checkExtensionManifestCompatibility(manifest, target) — pure author-time analyzer (pm-knma)
- assertExtensionManifestMatchesBlueprint(manifest, blueprint): strict least-privilege CI guard against capability drift (pm-pfxi)
- synthesizeExtensionManifest(blueprint, identity): generate a complete least-privilege ExtensionManifest from a blueprint (pm-nr5j)
2026.6.23 - 2026-06-23
Added
- SDK lintExtensionBlueprint + assertExtensionBlueprint: author-time preflight for composeExtension blueprints (capability drift, duplicate commands, empty surfaces) (pm-9ect)
- SDK describeExtensionBlueprint: static author-time surface map of a composeExtension blueprint (author-time inverse of describeExtensionActivation) (pm-tlpv)
- Declarative extension authoring: composeExtension blueprint + deriveExtensionCapabilities + defineExtensionManifest (pm-iqq0)
- pm extension/package describe: agent-facing CLI + MCP surface for describeExtensionActivation (pm-l4c8)
- SDK describeExtensionActivation: single-call introspection of every registered surface (complements assert*/run*) (pm-16ue)
- SDK authoring-time define* typed builders for every extension registration surface (pm-12tj)
- Unified extension test harness (createExtensionTestHarness): one fluent fixture binding all activate/assert/invoke/deactivate SDK helpers (pm-jcyn)
Fixed
- deriveExtensionCapabilities omits 'schema' for a CommandDefinition with inline flags (manifest under-grant would fail activation) (pm-5758)
- GH-340: Windows nightly telemetry OTLP cleanup EBUSY (pm-zpe7)
Other
- ADR: SDK author-time helpers are the static inverse of runtime extension checks (derive↔reconcile, describe-blueprint↔describe-activation, lint↔loader-enforcement+doctor) (pm-4oio)
- ADR: SDK define* builders are zero-cost identity helpers (defineConfig pattern), generic for object defs / non-generic for function defs (pm-3mph)
2026.6.22 - 2026-06-22
Added
- Add importers package scaffold and dependency-maintenance closeout (pm-j5az)
- pm package init --capability search: scaffold search provider starter packages (pm-pwai)
- pm package init --capability <kind>: scaffold capability-targeted starter packages (commands|hook) (pm-nhby)
- SDK invoke helpers for importers & exporters: runRegisteredImporterForTest + runRegisteredExporterForTest (pm-1p2u)
- SDK invoke helpers for search providers, vector store adapters and migrations (pm-bd3u)
- Complete the SDK extension-invoke testing surface: runRegisteredHookForTest + override invoke helpers (pm-miqm)
- SDK testing helper to invoke a registered extension command handler: runRegisteredCommandForTest (pm-owm0)
- SDK deactivate test lifecycle: deactivateExtensionForTest + assertExtensionDeactivated helpers (pm-0zn9)
- Least-privilege capability reconciliation: pm package doctor flags declared-but-unused extension capabilities + SDK assertExtensionCapabilityUsage (pm-fk84)
Fixed
- Fix Windows nightly full-test path and permission assumptions (pm-83rt)
Other
- Package and extension scaffolds emit least-privilege manifest policy metadata (pm-bav0)
2026.6.21 - 2026-06-21
Added
- Complete SDK package-author test-assertion surface: service-override + migration helpers (pm-6pmp)
- item-format-migration: add format-version field to front-matter for future migration gating (pm-ae1u)
Fixed
- Windows nightly: secondary POSIX-separator + mocked-path test class (static-quality-gate, docs-skills-gate, bundle-cli, contracts-snapshot, smoke-npx-from-pack) (pm-s5pe)
- Nightly windows-latest STILL red after pm-i84i: scriptModule test harness imports .mjs scripts via absolute file:// URL, shebang survives missing transform (SyntaxError) (pm-dita)
Other
- Package scaffold generates a runnable sample test, .gitignore, and npm test script (pm-4ltc)
- Code quality & perf audit 2026-06-12 (pm-nimu)
- SDK testing helper for registerFlags registrations (pm-oveq)
2026.6.20 - 2026-06-20
Added
- Search relevance eval harness: implement nDCG/MRR runner and gate in CI (pm-u8n5)
- Offline BM25 lexical retrieval provider when no Ollama/OpenAI is configured (pm-75k9)
- Add 120-file unit-test cap governance test to ci-workflow-contract.spec.ts (pm-wc0d)
- Add integration test for background-refresh (instant mutations) non-blocking behavior (pm-5rge)
- Add integration test for close-many --rollback checkpoint restore (pm-7p4w)
- Add integration test for schema add-type / remove-type round-trip with governance.workflow_enforcement (pm-4dtf)
- Add remediation registry entry for validate_metadata_duplicate_issue_codes warning (pm-sdbo)
- Add remediation registry entry for extension_update_health_partial_coverage warning (pm-bdvm)
- gc --scope checkpoints: prune stale bulk-mutation checkpoint files (pm-tyj8)
- LanceDB snapshot: add gc --scope embeddings to include pending-refresh.json and drift-cache coordination (pm-3b1t)
- Sentry KNOWN_NOISY_CONSOLE_MESSAGE_PATTERNS maintenance: add a governance test to prevent silent accumulation of stale patterns (pm-jxls)
- Add vitest.config.ts coverage include/exclude governance guidance to ARCHITECTURE.md (pm-othr)
- Add wiring-checklist reference card to ARCHITECTURE.md for new command authors (pm-zyse)
- Add performance / startup-latency section to ARCHITECTURE.md (pm-p37b)
- Add nightly.yml failure alerting: notify on Windows/Node25 smoke failures (pm-ehbb)
- Add Windows path-separator test coverage for fs-utils and store/paths (pm-tq5t)
Changed
- Refactor runUpdate (~950-line function) into table-driven per-field apply helpers (pm-e7dn)
- Replace 'as unknown as ItemMetadata' double-casts (9 sites) with typed mutation/replay returns (pm-ul02)
- COMMANDS.md omits pm get and pm copy; command-families table missing get/copy/update-many/close-many (pm-xvzm)
Fixed
- pm-changelog over-escapes markdown in entry titles (parens + intra-word underscores) (pm-3299)
- Nightly windows-latest red since 2026-06-14: ~373 tests fail with 'SyntaxError: Invalid or unexpected token' from file://-URL TS dynamic imports + POSIX-separator assertions (pm-i84i)
- Accept --status all for duplicate-safe search and list filters (pm-i02t)
- 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)
- Daily auto-release was silently blocked 06-14..16 by a single stale, unresolved Sentry error (sentry-telemetry-gate is:unresolved has no time window) (pm-nb08)
- appendLineAtomic is not truly atomic: concurrent appends to history JSONL can interleave (pm-xy9n)
- Project-scope extension install writes ~69MB node_modules per workspace (peer pm-cli + transitive Sentry/OTel) (pm-oxq2)
- Fix ARCHITECTURE.md storage layout: add plans/, stories/, schema/, checkpoints/, runtime/ dirs (pm-mcgf)
- Fix nightly cross-platform reliability: macOS realpath in extension-command test and Windows .cmd spawn EINVAL (pm-gf6f)
- GH-293..296 CLI parser and search regression bundle (pm-yy45)
Removed
- Built-in type lists and storage layout drift: Plan missing; ARCHITECTURE.md still lists removed index/ dir (pm-7u4z)
Other
- Export hygiene: 1 dead export + ~57 exported-but-internal-only symbols (pm-vn9l)
- Document search eval golden-query harness usage in TESTING.md (pm-eg9k)
- Sentry tracesSampleRate is hardcoded at 0.2 — expose as configurable knob or document intent (pm-gg8e)
- CLAUDE_CODE_PLUGIN.md drift: architecture tree shows 9/14 commands + 1/4 agents; compat table says plugin 1.0.0 (actual 1.4.0) (pm-cxi9)
- Docs index missing EXTENSION_AUTHOR_CONTRACTS + MIGRATION_CLI_SIMPLIFICATION links; migration note predates --pm-path (pm-c97q)
- pm todos import: positional source arg silently ignored + folder-not-found error omits --folder flag (beads parity) (pm-90hp)
- Unknown-command did-you-mean misses executable aliases: 'pm shwo' gets no suggestion (show/view/comment not in candidate set) (pm-i35t)
2026.6.19 - 2026-06-19
Added
- pm context --fields: per-row field projection for focus items (GH-156 follow-up to --depth full) (pm-hnjf)
- pm list output formats: csv/table for human export (GH-154 remainder) (pm-1lll)
- pm plan discoverability: templates and auto-suggest for complex work (GH-158 remainder) (pm-aer3)
- Dedupe merge workflow: pm dedupe-merge to consolidate duplicates (GH-163, builds on closed pm-4n1a detection) (pm-jmld)
- pm search: structured inline query syntax (tag:/status:) + matched-text highlighting (GH-157 remainder) (pm-ldr1)
- Auto-compact policy: config-driven threshold to trigger pm history-compact automatically (pm-0pnz)
- pm history-compact: expose --scope all-streams (history GC pass) for closed items (pm-yj9w)
- History stream bulk-compaction: pm history-compact --all-over N to batch-compact large streams (pm-f3pa)
- Add agent-identity dimension to telemetry events: surface PM_AUTHOR as hashed author_context (pm-fbyu)
- pm telemetry stats: add error_rate and resolution breakdown per command bucket (pm-gsoe)
- Surface duration_ms percentile breakdown in pm telemetry stats (p50/p95 per command) (pm-3n3b)
- GH-208: linked test sandbox ergonomics (pm-52eh)
- Core read/validate integrity: exact-ID search rank guarantee across modes + parent-hierarchy cycle detection (pm-rkie)
- Validate governance accuracy: suppress false-positive duplicate-code & terminal-item metadata noise + files --remove input clarity (pm-6bz1)
- Sub-hour duration granularity for scheduling: support minutes in --duration / event duration= (pm-zoe4)
Changed
- pm update --allow-audit-update: permit append-only --comment/--file/--doc evidence (GH-207) (pm-kanu)
Fixed
- linked-test-adapters package install loses ESM module type (pm-v8fy)
- GH-206: test-all silent run process-liveness regression (pm-mcxr)
- Auto Release retries branch push after main advances (pm-5oti)
- GH-284: align pm init required schema directories with health (pm-hl9y)
- GH-215: enforce timestamps in history entries (pm-u42x)
- GH-280: pm validate does not detect circular parent references (hierarchy cycles A->B->A of any length) (pm-8vul)
- GH-281: exact-ID search match is rank-diluted in hybrid/semantic mode (keyword score normalized + capped by keyword weight) (pm-oqgf)
- PR #266 review feedback: tighten init and dynamic option validation (pm-at1j)
- CI contracts snapshot temp cleanup can fail with ENOTEMPTY (pm-c61g)
- pm templates: unknown subcommand + flags silently fall back to 'list' (exit 0) instead of erroring (pm-r2kd)
- Dynamic package commands should reject excess args and unknown parent tokens (pm-nt1y)
- GH-262: prevent path-like pm init from corrupting caller tracker settings (pm-jek2)
- GH-265: schema unknown subcommands must not create custom types (pm-ablm)
Other
- Repo-wide docstring coverage gate for source files (pm-p4mw)
- SDK.md PM_PACKAGE_RESOURCE_KINDS drift: assets/prompts kinds missing (pm-u8y9)
- GH-277: files --remove path-only input clarity (pm-k8ld)
- GH-276: metadata check skip terminal items for planning fields (pm-pktw)
- GH-278: duplicate_issue_codes exclude items closed-as-duplicate (pm-5fid)
- GH-275: duplicate_issue_codes skip legitimate parent/child code-prefix pairs (pm-2nxe)
- PR #274 second review follow-up: prefix, format, and owner scoring (pm-89ur)
- PR #274 review follow-up: CodeQL and bot feedback (pm-0bwe)
- GH #267/#271/#272 follow-up: lifecycle automation, logical dependency validation, read format parity (pm-8uhf)
- GH #268-#270 agent lookup and context output polish (pm-x7g1)
- Dogfood audit 2026-06-12: ecosystem verification (CLI+SDK+packages) (pm-krgd)
2026.6.17 - 2026-06-17
Added
- GH-216: default lifecycle transition suggestions (pm-y1z0)
- GH-217: scheduling type creation shortcuts (pm-76r5)
- GH-258: strict unknown-key rejection across all structured CSV/markdown link & metadata parsers (validation parity with test --add) (pm-0v9k)
- Expose schema.unknown_field_policy via pm config set schema_unknown_field_policy (pm-nnaq)
- Expose id_prefix, author_default, output.default_format, locks.ttl_seconds via pm config set (pm-9byd)
- GH-245: schema add-type --infer from title prefixes (pm-tb42)
- pm schema apply-preset <agile|ops|research>: standalone type-preset for already-initialized projects (pm-86ob)
- pm schema list-fields / show-field / add-field / remove-field: CLI management of schema/fields.json (pm-vhbf)
Fixed
- Sentry PM-CLI-1R: 'cannot add command init as already have command init' — top-level init double-registration throws raw Commander error (pm-zyez)
Other
- Document schema/fields.json runtime custom field authoring in CONFIGURATION.md (pm-izx5)
2026.6.16 - 2026-06-16
Added
- pm focus: session default parent/context inheritance for new items (GH-161) (pm-72xf)
- GH-235: detect duplicate logical issue code prefixes (pm-rpag)
- GH-243: comments edit/delete lifecycle commands (pm-4swf)
- GH-244: surface provider/vector-store resolution source in pm health (pm-gnu2)
- GH-236: governance metadata missing-field filters (pm-mfl1)
- GH-242: field-existence filters for list/search (pm-hntj)
- GH-241: stats content-field utilization metrics (pm-7snq)
- Finalize literal 100% coverage: close c8-ignore-masked gaps & remediate PR #240 bot review (pm-0xix)
- Apply Gemini correctness fixes & cover new branches (config/init/reindex/register-mutation) (pm-bw70)
- Module-mirrored test reorganization: retire lane/wave naming, add shared script harness (pm-m449)
- Search: persistent search.hybrid_semantic_weight setting as default for pm search --semantic-weight (pm-2xwh)
- Search corpus: include type, priority, parent, assignee fields in keyword and semantic corpus (pm-jyie)
- pm search filter parity with pm list: add --updated-after/before, --created-after/before, --assignee, --sprint, --release, --parent (pm-13nx)
- Configurable min-score threshold for pm search: --min-score per-query override of search.score_threshold (pm-cstl)
- pm search keyword mode: --match-mode (and/or/exact) + default result limit (GH-181 remainder) (pm-i1z6)
- pm list --no-truncate/--all: explicit override of any --limit + surface total vs returned count (GH-154) (pm-0c0j)
- pm context --depth full: comprehensive snapshot (all sections, no per-section cap) (GH-156) (pm-j0vc)
- pm context --parent <id>: scope snapshot to a single epic/parent subtree (pm-ds0m)
- pm get: include child rollup summary for Milestone/Epic items (GH-155) (pm-gcm3)
- pm validate: missing-link owner attribution (GH-210) + type-default estimate backfill (GH-212) (pm-gnnb)
- Metadata governance & coverage observability (missing-field filters, stats breakdowns, validate full-id lists, aggregate explicit labels) (pm-yq7m)
- pm close: short aliases -m/-r/-d for --message/--reason/--duplicate-of (GH-226) (pm-i1mu)
- pm create/update --body-file: load body markdown from a file (GH-214) (pm-7c48)
Changed
- Small verified cross-file duplications (4 pairs) + static-gate duplicate scan does not cover src/cli (pm-z2gi)
- LOC growth watch: 5 src files back over 2000 lines (cap 3400) after 2026-05-25 barrel splits (pm-k1im)
- health.ts re-implements doctor.ts capability-guidance helpers verbatim instead of importing the exported versions (pm-aabt)
- Dedupe history-rewrite orchestration block triplicated across history-redact/repair/compact (pm-bzgt)
- pm update-many: --filter-ac-missing/--filter-estimates-missing/--filter-resolution-missing selection filters for bulk backfill (GH-220) (pm-wbak)
Fixed
- GH-256: update-many --dry-run skips field validation (priority/type/status/deadline) (pm-v4tb)
- GH-253: invalid --type create error hardcodes .agents/pm path, ignoring active --pm-path (pm-nd08)
- GH-252: pm get --json places body outside item (parity with list --include-body) (pm-hofv)
- GH-250: pm close checks item existence before the close-reason gate (pm-1jtl)
- GH-249: create --status closed bypasses governance.require_close_reason (pm-4a1p)
- GH-248: fix schema add-type silent slug-collision overwrite + malformed-name acceptance (pm-3l0f)
- Extension activation failure is invisible outside pm health --json: extension list shows ok, no stderr hint, commands partially registered (pm-yffj)
- pm create <type> --title X silently ignores positional type, defaults to Task (pm-8sr3)
- c8 ignore end (invalid keyword) silently masked source coverage; literal-100% gate passed on hidden code (pm-dg8j)
- GH-205: surface telemetry flush/probe + OTEL export diagnostics in pm health (pm-hx5a)
- GH-209 follow-up: OTEL span export keeps the CLI alive ~10s (and can exit 13) when the traces endpoint is unreachable (pm-25se)
Security
- Track open Dependabot alerts #39/#40/#41 (vite and @opentelemetry/core) (pm-c24n)
Other
- Content-field & governance introspection (GH-241/242/236) (pm-php4)
- GitHub issue triage 2026-06-12 (pm-tk1z)
- Slim guided-error boilerplate in agent contexts; lead unknown-command Examples with the did-you-mean candidate (pm-q0kr)
- PR #240 review: applied vs declined Gemini findings (with rationale) (pm-lg65)
- Close c8-exposed coverage gaps in src/cli/commands/create.ts to 100% (pm-eifq)
- Close c8-exposed coverage gaps in src/cli/commands/contracts.ts and restore.ts to 100% (pm-dmuq)
- Close c8-exposed coverage gaps in src/cli/commands/history-redact.ts and normalize.ts to 100% (pm-byl1)
- Test-suite dedup & best-practice audit (post module-mirror reorg) (pm-2nqx)
- Source-correctness audit of all-source-100%-coverage branch src/ edits (pm-e2jt)
- tests/unit is at exactly 120/120 spec files: zero headroom before Gates(static) fails; consolidation candidates identified (pm-vks9)
- ADR: test organization convention — module-mirrored spec files, no lane/wave naming (pm-kjmx)
- ADR: literal all-src coverage supersedes curated include/exclude allowlist (pm-w13j)
- Literal 100% all-source test coverage & module-mirrored test reorganization (pm-xau3)
- Coverage to 100%: packages, plugins, and docs examples (pm-6tch)
- Coverage to 100%: src/cli command handlers (group B — query, search, calendar, test, init, extension) (pm-7v9s)
- Coverage to 100%: src/cli command handlers (group A — mutation, history, storage, schema) (pm-ud1x)
- Coverage to 100%: src/cli infrastructure (registration, bootstrap, help, main) (pm-uvxc)
- Coverage to 100%: build, release, and smoke scripts (pm-f2ne)
- pm context power-user projection: --depth full, --fields, --parent subtree (GH-156, pm-ds0m, GH-154) (pm-kp1d)
- Document and test telemetry env-var surface: PM_TELEMETRY_DISABLED, PM_NO_TELEMETRY, PM_TELEMETRY_SOURCE_CONTEXT, PM_TELEMETRY_OTEL_DISABLED, PM_TELEMETRY_INLINE_FLUSH (pm-r7md)
- GH-212: type-default estimate backfill via validate --auto-fix --fix-scope estimates (pm-s3hl)
- GH-210: missing_linked_path_rows owner attribution in validate --check-files (pm-z36m)
- pm validate: --all-affected-ids flag + never truncate ID lists in JSON mode (GH-224) (pm-o0d2)
- pm aggregate: explicit (unassigned)/(none) labels for blank group keys in all output modes (GH-225) (pm-zcx9)
- pm stats: --by-assignee/--by-tag/--by-priority breakdowns + --metadata-coverage + lifecycle/type adoption (GH-213/218/219) (pm-gq27)
- pm list: --filter-ac-missing/--filter-estimates-missing/--filter-resolution-missing/--filter-metadata-missing (GH-228) (pm-fryg)
- Shared core/governance/metadata-coverage primitive: missing-field predicates + coverage % + grouped lifecycle counts (pm-hm1q)
- pm close: when require_close_reason is on, accept --resolution text as the close reason instead of hard-blocking (pm-7x8d)
2026.6.13 - 2026-06-13
Changed
- Dedup private Levenshtein implementations onto shared OSA helper (pm-dzcx)
Fixed
- Claude Code plugin install spec drift: README says pm-cli@pm but plugin name is pm-claude (pm-m4bx)
- Compact strict-create recovery duplicates missing fields under two keys (pm-3rjo)
- pm-mcp bin is dead on npm installs: main-module guard fails under symlinked argv[1] (silent exit 0, no JSON-RPC output) (pm-qtbc)
- GH-209: successful pm mutations can exit 13 from unsettled top-level await (pm-1byt)
- pm validate --check-files misclassifies existing directories as deleted (GH-203, prune/auto-fix data-loss path) (pm-b1ni)
Other
- Ecosystem audit + GH-204..208/210 remediation session 2026-06-13 (pm-y7sc)
- CI gap: plugin/package markdown pushed to main runs no functional workflow (pm-5909)
- Compact strict create recovery for agents (pm-tjvl)
2026.6.12 - 2026-06-12
Added
- pm files/docs: standalone --note flag alongside --add (GH-170) (pm-pfnx)
- Add pm health 'locks' check: surface stale item-claim counts before gc is needed (pm-xo1n)
- pm history-repair --all: bulk drift repair across streams (GH-171) (pm-9ftr)
- pm validate --check-files: classify stale linked paths (moved vs deleted) and offer --prune-missing (GH-184) (pm-0v2m)
- pm validate --auto-fix: apply safe remediations automatically (GH-179, GH-153 interactive part, GH-167 backfill part) (pm-c3sz)
- pm validate metadata report grouped by item type (GH-172) (pm-pmyq)
Fixed
- PR #200 review: batch validate prune-missing auto-fix removals (pm-60p0)
- MCP pm_files discover/apply/discoveryNote params are declared but ignored by the files action handler (pm-wcaa)
- Session 2026-06-11: validation auto-fix & self-repair PR (validate --auto-fix/--prune-missing/grouped metadata, history-repair --all, health locks, files/docs --note, plan --step accumulate, consent CI guard, completion drift) (pm-dhrp)
- Lifecycle subcommand flags duplicated on the parent extension/package command are silently dropped (commander hoists them) (pm-df9k)
- Telemetry first-run prompt CI guard is inverted: CI=true does not skip, only CI=false/0/no/off does (pm-0hx2)
- pm plan create: repeated --step silently keeps only the last value instead of accumulating steps (pm-6mit)
- pm validate lifecycle: auto-fix for active items with closed/terminal parents (GH-168) (pm-8jss)
Other
- PR #200 review: contract and defensive hardening follow-up (pm-im0s)
- Refresh Sentry expected handled CLI classifier for 2026-06-11 dogfood CommandErrors (pm-lg9i)
- Milestone calendar_item_without_schedule warning should include actionable hint (GH-174) (pm-2cgu)
- Shell completion drift: show-status missing from bash/zsh/fish schema subcommand lists (pm-6qi8)
2026.6.11 - 2026-06-11
Added
- MCP pm_list/pm_search: expose active filter summary in compact output so agents know what was applied (pm-rmjy)
- Add narrow pm_append MCP tool for agent log-seeding without pm_run passthrough (pm-7u9j)
- Add pm_schema and pm_config narrow MCP tools for workspace configuration via MCP (pm-v68d)
Fixed
- GH-191: test --add command parser should accept quoted commands containing -- (pm-vcr2)
Other
- Contract schema golden-file must cover MCP tool inputSchema shapes — current snapshot only covers CLI flags (pm-4os2)
2026.6.10 - 2026-06-10
Added
- Combined PR: duplicate-aware close, parent fail-fast, id-only output, context/aggregate completion stats, robust test add/run (pm-z9e9)
- pm close --duplicate-of: structured duplicate tracking with auto-populated closure fields (GH-183, GH-160) (pm-xnkd)
- pm test --run selectors: --match / --only-index / --only-last (GH-194) (pm-p86h)
- pm context: per-epic completion stats + recently_created/unparented sections (GH-187, GH-182) (pm-ojpq)
- Root --id-only flag: minimal mutation output (id+status) for agent automation loops (GH-195) (pm-esf6)
- pm aggregate --completion: closed/total ratio and completion_pct per group (GH-185) (pm-eaer)
- pm list: include parent in default compact projection when set (GH-180) (pm-awfr)
- Embedding provider migration guide + pm reindex --migrate: automated full reindex on model/provider change (pm-wt0g)
- Incremental reindex --mode semantic --stale-only: skip already-up-to-date vectors (pm-o3nr)
- Settings read cache: memoize readSettingsWithMetadata across the 3-5 reads per command (pm-2bn5)
- Add MCP pm_context, pm_contracts, pm_plan, pm_health integration tests (pm-8d00)
- Add importer/exporter options arg and command-def examples to SDK.md (pm-btwe)
- pm_max_version default-BLOCK should have a per-layer warn-only toggle in settings (pm-k5e8)
- First-party exemplar package for registerCommand + registerFlags + registerParser (commands capability pattern) (pm-1js9)
- Extension teardown: per-deactivate timeout guard so a hanging deactivate() cannot block host shutdown/reload (pm-bujg)
Fixed
- GH-189: create --parent should fail fast on unresolved references (pm-p9hw)
- GH-190: SDK locateItem should default idPrefix or throw explicit argument errors (pm-rjh9)
- Telemetry queue max_attempts backlog health warning: surface items near retry exhaustion in pm health (pm-irc7)
- Harden history replay and compact diff against malformed patch entries (pm-kf5q)
- MCP server: request-scoped extension registries (process-global set/clear can race under concurrent native-action requests) (pm-bl6m)
- Fix Windows Nightly smoke cleanup helper import (pm-uzty)
Security
- Extension sandbox profiles are advisory-only — no runtime enforcement of declared permission boundaries (pm-pl53)
- Declare trusted=true, sandbox_profile, and permissions on all 9 first-party package manifests (pm-iljy)
Other
- Run verification matrix and temp-dir smoke for active cycle (pm-rav7)
- Upgrade pm-changelog to 2026.6.9 and validate changelog fidelity (pm-kx7v)
- Close stale GH issues, clarify dedupe-audit docs, and bump @sentry/node (pm-utd6)
- SDK author-ergonomics batch: extension-manifest JSON Schema, getWorkspaceContracts memoization, FlagDefinition type/value_type unification (pm-l0jd)
- Document pm-linked-test-adapters package in EXTENSIONS.md and TESTING.md (pm-yj8n)
2026.6.9 - 2026-06-09
Added
- PmPackageResourceKind is missing 'assets' and 'prompts' as canonical resource types (pm-z9ho)
- Extension activation: no teardown/deactivation hook — extensions cannot clean up timers, connections, or state (pm-k1e4)
- Extension API missing self-identity accessor: extensions cannot read their own name, layer, or version at activation (pm-qo36)
- registerItemFields/registerItemTypes: validate declared field type against known coercion kinds with did-you-mean (pm-oll8)
Fixed
- Extension FlagDefinition lacks 'list' and 'default' fields — extension-registered flags cannot match core comma-list contract (pm-ltbr)
Other
- SDK lacks assertRegisteredCommandOverride testing helper (coverage gap in testing.ts) (pm-aw7d)
2026.6.8 - 2026-06-08
Added
- list/search: trim default filters/projection/sorting/now trailer in compact/agent mode (pm-vhx6)
- MCP pm_health defaults to the compact summary projection for token-efficient agent health checks (pm-yjub)
- Add schema show-status status inspection (pm-qpus)
Changed
- Remove dead code and dedupe pm-cli version readers into resolvePmCliVersion (pm-wrqk)
Fixed
- CI smoke npx pack cleanup can fail with ENOTEMPTY (pm-i2xg)
- MCP narrow tools silently drop top-level filter keys (pm_list {type:Task} returns unfiltered) (pm-jozc)
- list/search --tags hard-refuses (exit 2) while create --tag auto-corrects — accept --tags as a never-block alias (pm-6l17)
- MCP tools/call structuredContent.result is always present but isError path lacks it — inconsistent envelope (pm-l40h)
- MCP server serverInfo.version is hardcoded '1.0.0' — should reflect package.json version (pm-2nvw)
- Fix inaccurate PR CI matrix description in CONTRIBUTING.md (pm-t73k)
- Fix MCP tool-count doc drift (18/21 -> 22, add pm_copy) and lock the claude-plugin smoke to the live tools/list count (pm-7tvx)
- Fix: --path/PM_PATH did not discover .agents/pm under a project root (never-block dead-end) (pm-ryik)
- Fix: pm close/close-many hard-failed without a reason via a generic, non-actionable error (P0 never-block) (pm-g799)
- pm-changelog classifier mis-routes feature titles containing the word 'remove'/'delete' into the Removed section (pm-ybiz)
- Document pm-changelog external repo dependency and pad-match fix in RELEASING.md (pm-97yv)
- writeFileAtomic cross-device rename safety: handle EXDEV when tmp and target are on different mounts (pm-6vv6)
- Drift-cache gc scope: pm gc --scope runtime should clear history-drift-cache.json (pm-7n8v)
- MCP ping method not handled — returns 'Unsupported MCP method' instead of empty response (pm-lold)
Security
- Pin CodeQL action refs to immutable SHAs in codeql.yml (pm-ji5c)
Other
- Warn in pm health when server-advertised max telemetry schema version exceeds client version (pm-dfhp)
- Ecosystem-wide PM living-context audit & forward-backlog rebuild (2026-06-07) (pm-8u2a)
- ADR: Agent self-repair via a centralized remediation registry surfaced through pm health --json and pm validate --fix-hints (pm-cc04)
- ADR: Test-coverage governance — 100% V8 thresholds with a curated include/exclude allowlist, a tests/unit file-count cap, and pure-logic extraction into small core modules (pm-7sq6)
- 2026-06-07 agent UX package ecosystem and path guardrail hardening (pm-yo3f)
- 2026-06-07 pm CLI ecosystem audit lanes (pm-xm98)
2026.6.7 - 2026-06-07
Added
- pm-governance-audit: onWrite/onRead hooks exemplar (hooks capability) (pm-7m8p)
- pm history-compact: checkpoint-based history stream compaction (pm-3pbq)
- Advanced relevance tuning (post-v0.1): cross-encoder reranking + query expansion (pm-7tsx)
- Configurable vector store collection name (post-v0.1 adapter optimization) (pm-usw2)
- pm copy <id>: clone an item to a new ID with optional title override (pm-m4nn)
- pm aggregate --sum/--avg: numeric aggregation over filtered items (pm-bvns)
- pm list --tree: recursive subtree rendering with indented hierarchy (pm-vbzc)
- Configurable semantic corpus character limit (search.embedding_corpus_max_characters) (pm-cxdg)
- Per-query hybrid weight override: pm search --semantic-weight (post-v0.1) (pm-cy8i)
Fixed
- Track removal of TOON upstream bracket-bug workaround when upstream fix ships (pm-idnz)
- Drift-scan cache can false-hit on mtime-preserving file copies (pm-up22)
- Search relevance evaluation harness (golden queries, nDCG) for regression detection (pm-22x2)
Security
- Harden afterCommand coverage and GitHub code-scanning visibility (pm-izid)
Other
- Agent command compatibility and package command discovery (pm-7etc)
- Package install fallback hints and extension collision plans (pm-e48i)
- Stabilize npx onboarding path for scoped pm package (pm-pgew)
- Publish pm-github starter package as a community reference (credential-requiring pattern) (pm-zw0n)
- Make list --ids repeatable for focused agent working-set refresh (pm-42tb)
- SDK testing helper for vector store adapter registrations (pm-475h)
- SDK testing helper for package manifest resource assertions (pm-xevy)
- SDK testing helpers for schema package registrations (pm-01bm)
- PR #123 review: make governance hook sidecar logging fail-open (pm-mzlu)
- Config-driven optional close reason via governance.require_close_reason (pm-peyv)
- As a maintainer tuning relevance, I want a golden-query eval harness, so that I can catch ranking regressions before release (pm-fhsg)
- As a PM with large item bodies, I want to raise the semantic corpus character limit, so that search indexes my full content instead of truncating it (pm-tnk5)
2026.6.6 - 2026-06-06
Added
- pm telemetry local-analytics subcommand (status/flush/stats/clear) (pm-6xdl)
- Add Claude Code rows to docs read-path and README start-here tables (pm-pwdx)
- As a new teammate, I want a single ONBOARDING.md, so that I become productive in two hours without accidentally triggering a release or corrupting the tracker (pm-10ml)
- Add AGENTS.md/README workflow-update checkbox to the PR template (pm-0sqs)
- Create ONBOARDING.md for new maintainers and first-time contributors (pm-oh5h)
- Add markdown broken-link check to the docs CI gate (pm-mp6c)
- Add pm stats --storage: aggregate history-stream metrics (pm-mnee)
- Add pm history --diff --field: filter the audit diff to one field's transitions (pm-g94b)
- pm history --diff: per-entry field-level before/after diffs (pm-puvn)
- Add operator-facing stale-lock cleanup to pm gc (locks scope) (pm-gbbn)
- Add MCP protocol handshake tests (initialize + tools/list + unknown-tool error) (pm-kl11)
- Add narrow MCP tools pm_notes, pm_learnings, pm_deps (agent self-documentation + deps) (pm-hywv)
Changed
- As a contributor closing items, I want documented changelog classification, so that my change appears in the correct CHANGELOG section without reading the generator source (pm-ijd9)
- Export PM_TOOL_PARAMETERS_SCHEMA_VERSION constant and bind all assertion sites (pm-r9sz)
- Generate pm_run action-list description from PM_TOOL_ACTIONS to end prose/enum drift (pm-fd8n)
Fixed
- File-backed schema sections (types/statuses/fields/type_workflows) leak into settings.json on writeSettings (pm-haak)
- MCP stdio server processes JSON-RPC lines concurrently → pipelined mutations on the same item lock-conflict (pm-3puw)
- PRD/contract drift: reminders_weight and events_weight missing from search.tuning docs (pm-75du)
- Add pm gc --scope locks: sweep expired lock debris from crashed processes (pm-d70h)
- MCP TOOL_SCHEMA_BASE additionalProperties:true silently swallows typo'd top-level args (pm-qxwu)
Other
- Telemetry schema versioning/negotiation preparation (pm-t4wb)
- Contract schema golden-file snapshot gate in CI (pm-d6kq)
- Document changelog classifier keyword routing for contributors (pm-5vsv)
- Clean up stale closed tracker-item references in docs/ header lines (pm-e376)
- Evaluate commander 15.0.0 major upgrade (current 14.0.3) (pm-7j8t)
- Drift-lock the .agents/plugins/marketplace.json (pm-local) manifest in the plugin contract test (pm-g3xl)
- History & storage observability: pm gc locks scope, pm history --diff before/after, pm stats --storage (pm-l709)
- MCP & contract platform maturity PR (pm-5k4v): narrow tools pm_notes/pm_learnings/pm_deps + schema-base hardening + action-list drift-gen + schema-version constant + handshake tests (pm-at83)
- Document the create vs mutateItem dual write-path contract (pm-k5r6)
- Document capture_level semantics for extension authors (pm-te9x)
- As a coding agent, I want narrow MCP tools for notes/learnings/deps, so that I can self-document and inspect dependencies with the same ergonomics as pm_comments (pm-77t3)
2026.6.5 - 2026-06-05
Added
- pm validate --fix-hints: machine-executable remediation commands per check (pm-6m3y)
- Structured remediation map on pm health --json for all non-extension checks (pm-0hnu)
- pm close-many: bulk-close matched items with shared reason and validate-close semantics (pm-i17g)
- pm update-many --ids: explicit ID-list filter for targeted bulk mutations (pm-1h99)
- pm search --status filter (parity with pm list) (pm-ec4s)
- pm list --updated-after/--created-after incremental date filters (pm-y138)
- Reusable external npm package ecosystem smoke harness (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 (pm-vhd9)
- Per-type workflow / allowed-transitions config (schema/workflows.json) (pm-f4r1)
- pm schema add-status: register custom statuses (complement to add-type) (pm-e77a)
- pm init --type-preset agile|ops|research: batch-register domain item types (pm-1lkm)
- pm schema list / pm schema show: inspect registered custom and built-in types (pm-qq69)
- First-party hooks capability exemplar (lifecycle hook) for pm-izsi completion (pm-s40s)
- Add generic create/update setter for extension item fields (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 (pm-ankr)
- 2026-06-02 commander SDK custom-field and extension-output hardening (pm-lwtx)
Fixed
- Sentry reliability gate blocks release on dogfood-generated expected CLI errors (brittle per-count + missing standup-export patterns) (pm-yohx)
- governance.create_default_type is not settable via pm config set (pm-jpwo)
- Auto Release 2026-06-01 tagged v2026.6.1 but npm publish never completed (latest npm = 2026.5.31) (pm-kcba)
- Warn on global service and renderer override footguns (pm-5teq)
- Fix GitHub #98 dependency --dep type parsing (pm-dlfq)
Removed
- pm schema remove-type: delete a custom type from types.json (pm-k8ik)
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 (pm-sz6w)
- Surface settings_read_invalid_schema warning proactively on affected commands (pm-7tcw)
- Agent context & bulk-ops primitives: incremental date filters, search --status, --ids targeting, close-many (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 (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 (pm-arew)
- Sentry gate expected handled CLI classifier refresh (pm-flbo)
- After-command hook affected item transition context (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 (pm-mt7k)
- SDK extension hook context and manifest capability guardrails (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 (pm-izsi)
- 2026-06-02 latest-main ecosystem dogfood and SDK review (pm-kddw)
2026.6.2 - 2026-06-02
Added
- pm-search-advanced: register a built-in SearchProvider exemplar (search capability) (pm-bqpg)
- pm-todos + pm-beads: migrate to registerImporter/registerExporter (importers capability exemplar) (pm-13bn)
- First-class importer/exporter registration: registerImporter/registerExporter accept command metadata (description/flags/intent/examples) (pm-7qjk)
Other
- 2026-06-01 package ecosystem SDK agent UX audit and hardening (pm-z0ip)
- 2026-05-31 late latest-main ecosystem dogfood and review closure (pm-etxf)
2026.6.1 - 2026-06-01
Added
- Extend SDK testing helpers to cover hooks, search providers, importers/exporters (pm-kfd8)
- Extension manifest pm_max_version (upper compatibility bound) (pm-4gw6)
- Declare pm_min_version in all 8 first-party package manifests (pm-nf2q)
- Build package-first pm ecosystem and install command (pm-59gj)
- SDK ergonomics: package-safe error base, version negotiation, document PM_CLI_PACKAGE_ROOT (pm-oxyo)
Changed
- Dedup create/update parsers + optional command-file splits (pm-8ehg)
- Vector store: prune orphans on reindex + reset on embedding-model/dimension change (pm-xutw)
Fixed
- Calendar: normalize recurrence exdates by instant + document count-window semantics (pm-qcsz)
Security
- ADR: Extension sandbox profiles are advisory governance attestations, not enforced isolation (pm-6ef3)
Other
- Governance test: enforce manifest pm_min_version and manifest_version on all first-party packages (pm-exrw)
- Ecosystem PM living-map audit & reorganization methodology (pm-knqw)
- Living-map verification & gap-closure pass (continuation, 2026-05-31) (pm-h31a)
- ADR: Startup-latency strategy (prebuilt JS, lazy per-command imports, external deps, no single bundle) (pm-irp1)
- ADR: Collision-checked random short IDs (configurable prefix + base36 token) (pm-12j1)
- ADR: Git-native filesystem is the database (one file per item; no server, daemon, or DB engine) (pm-i7i4)
- Verify living-map: ecosystem coverage gaps (pm-xmhn)
- Verify living-map: hierarchy, dependencies & ADR coverage (pm-uid0)
- Verify living-map: dedup & definition quality (pm-f6rm)
- Ecosystem-wide PM living-context map: audit, ADRs, roadmap, and forward backlog (2026-05-31) (pm-w7f2)
- Audit domain: Docs, onboarding, release, changelog & CI (pm-obxz)
- Audit domain: Config, schema, custom types & init (pm-4uxz)
- Audit domain: Telemetry, observability, Sentry, health/validate (pm-kxw0)
- Audit domain: MCP server, SDK & contracts (pm-rpc3)
- Audit domain: Extensions, packages & SDK extension API (pm-n15j)
- Audit domain: Search & semantic (keyword/semantic/hybrid, embeddings, vector stores) (pm-h7n6)
- Audit domain: Storage, item-store, history, TOON, restore (pm-ar08)
- Audit domain: Core CLI command surface & item lifecycle (pm-hqka)
- ADR: Stable CLI exit-code contract (0 success, 1 generic, 2 usage, 3 not_found, 4 conflict, 5 dependency_failed) (pm-x1z3)
- ADR: Never-block agent UX: high-frequency aliases are executable bootstrap rewrites, not suggestion text (pm-bwlz)
- ADR: Plugin hybrid model: pm is the git-native store; the editor/agent panel is a live session view (pm-7c4t)
- ADR: Date-based calendar versioning with daily automated release and manual same-day follow-ups (pm-ee1k)
- ADR: CHANGELOG is auto-generated from closed items by pm-changelog; never hand-edited (pm-6san)
- ADR: Health checks are advisory vs blocking: telemetry_* never flips ok:false (pm-jezo)
- ADR: Expected-error classification keeps Sentry signal-to-noise high (pm-c8qa)
- ADR: Local-first telemetry with 'redacted' capture as the privileged default (pm-mplj)
- ADR: Two extension-authoring idioms: defineExtension (package mode) vs import-free JSDoc (extension-only) (pm-vb5a)
- ADR: First-party packages ship hand-maintained .js alongside .ts (no per-package build) (pm-tsio)
- ADR: Compact-by-default is the agent path at the MCP boundary (pm-ko1g)
- ADR: Single-source contracts: cli-contracts.ts is the authoritative CLI+MCP+contracts surface (pm-2evy)
- ADR: Hand-rolled dependency-free MCP server (JSON-RPC over stdio) (pm-pif3)
- ADR: LanceDB pure-JSON snapshot vector store (no native bindings) (pm-164t)
- ADR: Non-blocking background semantic refresh (detached worker + reindex lock) (pm-vizt)
- ADR: Hybrid search = normalized linear interpolation with a configurable weight (pm-66ig)
- ADR: Governance presets (minimal/default/strict/custom) as the primary config surface (pm-ouvu)
- ADR: Config-driven runtime schema (4-file model) over hard-coded type/status/field registries (pm-a859)
- ADR: Dependency-free settings validator (replaced zod on the hot path) (pm-u7xx)
- ADR: Three-tier metadata cache (light scalars / bodies / collections) keyed by file stat (pm-vnie)
- ADR: Append-only JSONL history with SHA-256 hash chain (pm-hg0k)
- ADR: TOON as canonical item storage; JSON-Markdown is legacy read-only (pm-rvbt)
- ADR: Product vision & guiding principle — project management = context management (pm-oxq5)
- Refresh changelog after PR closeout merge (pm-2y28)
- 2026-05-31 external package audit and agent contract hardening (pm-kd9n)
- Runtime-resolved shell completion for custom statuses/types via helper command (pm-q4zx)
- Lazy extension activation: defer import+activate until a command needs contributions (pm-5wb6)
2026.5.31 - 2026-05-31
Added
- Non-blocking background search index refresh on mutations (pm-3ju0)
Changed
- Per-command code-splitting: lazy command-module imports drop the 943KB monolith + fast-glob from the read path (pm-t57d)
Fixed
- pm health ok:false from legacy unused 'index' required subdir (pm-yf31)
- Calendar date math is UTC-only: ignores event.timezone and all-day semantics (pm-0l88)
- Fix slow/oversized local vector snapshot and mislabeled search fallback (pm-f58e)
- Fix per-type default_status config was silently ignored at create (pm-y0gl)
- Fix Windows npm command resolution for extension package installs (pm-arax)
Other
- Make MCP status enum + shell completion runtime-resolved from schema (not hardcoded) (pm-jtdc)
- Defer eager per-command startup work: completion flag-strings, MCP tool schema build, telemetry flush spawn (pm-3mal)
- Calendar view/format did-you-mean + dependency and type-safety cleanup (pm-5oxq)
- 2026-05-30 package SDK dogfood audit and startup telemetry performance pass (pm-qmx3)
2026.5.30 - 2026-05-30
Added
- Reduce ESM module-resolution startup overhead (~85ms) via core bundling (pm-ss1d)
Fixed
- Semantic index not auto-refreshed on mutation: create then pm search --semantic misses the new item (stale index) (pm-bpaj)
- create rejects common type synonyms (Bug/bug, Change/change) instead of mapping to Issue/Chore (pm-4d1b)
- Suggestion-only command aliases (show/comment/note/view) still hard-fail as nonexistent_command instead of executing (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 (pm-wr74)
- Split metadata cache into light + collections tiers to cut list hot-path JSON parse (pm-jd3v)
- create's schedule-less calendar hint suggests rejected --event pipe form (accepts CSV) — blocks agents (pm-8c2s)
- Semantic auto-defaults are all-or-nothing: one config leaf disables ALL defaults and hard-errors reindex (pm-407c)
Other
- CLI perf, simplification, and best-practice remediation (2026-05-27) (pm-th6y)
2026.5.29 - 2026-05-29
Added
- Calendar best-practice: honor timezone, surface Milestone/Meeting items, ICS export (pm-xzrx)
- Model-agnostic search: provider settable via pm config + docs + index staleness surfacing (pm-7ilo)
Changed
- Code-quality refactors: split runUpdate/runCreate, cli-contracts barrel, shared dedup helpers, drop dead exports (pm-1b96)
Fixed
- pm update doesn't accept --expected/--actual aliases that pm close accepts (pm-1lws)
- pm comments/notes/learnings --add HTML-escapes angle brackets in stored text (pm-ydkl)
- MCP pm_create/pm_update crashed with 'raw.trim is not a function' when priority was sent as a JSON number (pm-9r7z)
2026.5.28 - 2026-05-28
Fixed
- Minor UX/correctness: test --add wording, dep-kind vocab, same-command did-you-mean, plan materialize, close inline resolution, scaffold defineExtension (pm-fl0c)
- Agent-UX footguns: create-type silent mistype + token-bloat in validate/search output (pm-edge)
2026.5.27 - 2026-05-27
Added
- Cut list/search latency: skip 4.9MB cache rewrite + drop bodies + onRead short-circuit (pm-4r5t)
- Bundle CLI with esbuild for sub-200ms startup (pm-gt82)
- Add --no-changed-fields flag and compact MCP mutation output to drop the redundant changed_fields array (pm-ch59)
- Add pm config set positional value form and shorten the invalid config-key error (pm-mf4j)
Changed
- Split large command files exceeding 2000 LOC (pm-mbdu)
- Deduplicate item/metadata to record widening casts behind a shared toItemRecord helper (pm-p5if)
Fixed
- pm health takes 8s and reports ok:false due to blocking telemetry flush to unreachable endpoint (pm-1lgy)
- Calendar: improve positional view UX (PM-CLI-Z Sentry) (pm-nb68)
- Improve unknown-option recovery with nearest, abbreviated, and cross-command flag suggestions plus list --sort aliases (pm-8nyc)
- Repeated loose-mapped --tag flags silently keep only the last value (agent-unfriendly) (pm-cf1u)
- Address pre-existing extension/SDK issues surfaced by PR #69 review (CodeRabbit) (pm-ll50)
- Surface extension command handler error messages instead of opaque extension_command_handler_failed code (pm-zwl7)
- Fix Auto Release failure: build dist before pm-changelog generation runs (pm-yf8t)
- Handle concurrent project package installs without EEXIST (pm-hw6z)
- pm-changelog generator silently drops items the bundled @unbrained/pm-cli SDK cannot read (pm-hybj)
Security
- Latest CLI quality, SDK, telemetry, search, and calendar remediation (pm-rnpb)
- Harden extension install against path traversal and fill missing health/validate MCP schema props (pm-qhu4)
- Add audited history-stream redaction command (pm-xk39)
Other
- Manual real-world E2E dogfood of full pm CLI surface (2026-05-27) (pm-gqx7)
- Calendar + SDK + vector-search + docs review (2026-05-27) (pm-a0w4)
- Code-quality & dead/duplicate code audit (2026-05-27) (pm-jvbt)
- Keep large modules maintainable via barrel re-export splits + explicit uncovered allowlist (pm-3cbk)
- Bump @sentry/node 10.53.1 to 10.54.0 (pm-0g2p)
- Dedupe history-redact + history-repair lock+ownership scaffolding (pm-kbm9)
- Agent-UX combined PR: compact mutation output (pm-ch59) + smarter unknown-flag recovery (pm-8nyc) (pm-70mi)
- Harden read-then-lock window uniformly across history-redact/restore/history-repair (pm-uer0)
- Create native Codex plugin for pm CLI (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 (pm-ash0)
- Dogfood 2026-05-20 low-severity CLI polish backlog (config UX, init verbosity, help alias bloat, default-safety, doc/validator drift) (pm-5k2w)
- Docs hygiene: stop shipping PRD.md in npm package, dedupe PRD<->docs, slim CHANGELOG, reconcile marketplace.json (pm-rjgh)
- Single-source guide-shell routing snippets across docs (pm-48vd)
- Single-source Plan workflow examples across plugin docs (pm-3y56)
- Single-source extension manifest and policy examples in docs (pm-2awd)
- Single-source Claude plugin capability inventory docs (pm-0d0q)
- Single-source Codex plugin docs tool surface (pm-d97r)
- Single-source extension governance policy defaults (pm-axd1)
- Single-source extension capability and policy-surface contract lists (pm-w98k)
- Deduplicate beads/todos index.ts package-runtime loader (install-safe mechanism needed) (pm-wwa7)
- Extract shared legacy settings test fixtures (pm-ibyi)
- Extract reusable semantic HTTP mock fixtures (pm-gvk2)
- Deduplicate Claude and Codex plugin MCP wrappers and smoke flows (pm-js0r)
- Deduplicate Beads and Todos package adapter runtimes (pm-ybfj)
- Deduplicate bundled package runtime option parsing helpers (pm-y5u0)
- Deduplicate files/docs linked-resource command implementations (pm-jzf4)
- Code dedup: extract shared CLI parser blocks and consolidate item-record casts (pm-why9)
- Generate full historical CHANGELOG.md through pm-changelog (pm-afl9)
- Verify and repair pm-changelog-generated main CHANGELOG release alignment (pm-5baq)
- Release @unbrained/pm-cli 2026.5.24 (pm-jpfc)
2026.5.24 - 2026-05-24
Added
- Default-safety policy for destructive pm commands (gc keeps delete-by-default; add pm delete --dry-run) (pm-tobi)
- Config-driven custom item types: wire schema/types.json into runtime schema (pm-e1va)
- pm schema add-type CLI + invalid-type error hint (pm-e1va) (pm-fy8o)
Fixed
- Recover 16 unreadable TOON item files: strict decoder mis-parses bracketed tokens followed by a colon inside quoted text fields (pm-iqgj)
- pm-changelog extension fails on large tracker JSON (pm-bu50)
- Linked test sandbox cleanup can fail with ENOTEMPTY (pm-u43m)
- pm update --blocked-by does not create a pm deps graph edge (pm-kyd6)
- Auto daily release silently skips releasable commits when CHANGELOG [Unreleased] is empty (pm-ot8r)
- pm update/create --test shares the B2 silent key-corruption (no cmd alias, no unknown-key rejection) (pm-swie)
Removed
- Deduplicate item-store mutation and delete lifecycle setup (pm-za3c)
- CLI ergonomics polish: concise init, help alias collapse, named priorities, package install hints, starter templates, delete dry-run (pm-fuat)
Security
- Update npm dependencies: minor version bumps (sentry/cli, toon, node types, vitest, tsx) (pm-a2g6)
- Deduplicate path containment helpers across package and extension code (pm-dpzc)
Other
- Deduplicate recurrence weekday ordering helper (pm-max1)
- Deduplicate item-type definition normalization across settings and registry (pm-v798)
- Deduplicate runtime terminal-status checks across query commands (pm-i04b)
- Centralize audit ownership-conflict guidance (pm-ols6)
- Deduplicate comments, notes, and learnings command stacks (pm-9y8q)
- Deduplicate lazy dynamic-import cache boilerplate in CLI registration (pm-c98b)
- Deduplicate health and validate history-drift checks (pm-qsk8)
- Deduplicate mutation author fallback resolution across commands (pm-xh0y)
- Deduplicate front-matter key-order contract literals in tests (pm-8fx3)
- Install and validate pm-changelog package (pm-7811)
- Extract shared direct CLI spawn helper for integration tests (pm-401l)
- Extract shared JSON error-envelope test assertions (pm-alqo)
- Extract shared extension fixture writer for tests (pm-j15d)
- Extract shared test item factories for command specs (pm-eltf)
- Extract shared temporary-directory lifecycle helpers for tests (pm-7tug)
- Deduplicate templates package runtime and legacy command implementation (pm-ypqp)
- Calendar agent ergonomics: equal start/end rejected; schedule-less Event items invisible (pm-uzmf)
- Dogfood 2026-05-21 follow-ups: test --add key validation, semantic-fallback labeling, close active-children info, stale blocker on close (pm-fu5d)
- history-repair command + legacy drift cleanup + replay dedup (pm-c3dx)
2026.5.23 - 2026-05-23
Changed
- Remove dead code: command-aware.ts module, 5 orphaned exported functions, unused undici dependency (pm-b7do)
Fixed
- Audited history-repair (re-anchor) command + clear legacy history drift so pm health is ok (pm-85hm)
- pm plan: materialize creates dependency cycle; decision/discovery/validation flag mismatch; --steps all unsupported (pm-6blp)
- Agent UX: pm update --status closed, explicit semantic/hybrid search, and pm create <type> <title> must never block agents (pm-j1v7)
- Calendar: pm cal <view> --date crashes (positional view + any flag) (pm-l292)
- pm health output stays large even with --brief/--skip flags; add a true one-line summary mode (pm-nbht)
- pm create --blocked-by stores free-text metadata, not a dependency edge or blocked status (agent-confusing) (pm-orrl)
- MCP pm_comments returns full comment history (no default limit) — token bloat on long-lived items (pm-6vfg)
- Reduce default verbosity of pm activity/history CLI output and add a compact mode to pm history (pm-3pbs)
- Sentry PM-CLI-R/PM-CLI-S: undefined-status .trim and undefined-tags .join crashes (fixed in HEAD, mark resolvedInNextRelease) (pm-d7us)
- MCP pm_run activity defaults to verbose raw history-patch dump (token waste for agents) (pm-8jd3)
- Dogfood 2026-05-20: CLI/agent-UX consistency fixes (append text forms, scope errors, --list parity, command typo suggestions) (pm-atsv)
- MCP pm_search defaults to full item bodies, blowing past agent token limits (pm-qrxs)
Security
- Harden secret-scan guardrail for GitHub token prefixes and local credential hygiene (pm-h4zb)
Other
- Session 2026-05-23: agent-UX + deps-graph integrity batch (multi-agent) (pm-uz25)
- Deduplicate history, restore, and redaction replay helpers (pm-pjs5)
- pm validate: ok:false on warn-only checks + dumps every item ID per field (pm-1nht)
2026.5.18 - 2026-05-18
Added
- Add pm plan list subcommand or did-you-mean to pm list --type Plan (pm-zpa5)
- pm list should default to --brief (full output via --full) to halve token cost (pm-b7sd)
- Add agent-optimized pm plan command with linked dependencies (pm-v7dj)
- Add built-in Plan item type and storage/search integration (pm-jauk)
- Drastically improve GitHub runner time and resource usage (free-tier only) (pm-tzwy)
- Add pm init checks for AGENTS/CLAUDE pm workflow guidance (pm-7t04)
- pm init footer + bundle calendar so cal/templates are discoverable (pm-8wwl)
- pm claim --if-available (skip when held) — reduce 533 ownership_conflict events (pm-d4bo)
- pm get/show: did-you-mean suggestions for unknown IDs (telemetry: 233 hits/30d) (pm-99x5)
- Auto-route pm update --status closed --close-reason to pm close (telemetry: 248 hits/30d) (pm-12ib)
- pm update with no fields should noop-succeed, not fail (telemetry: 128 hits/30d) (pm-7cup)
- Add --with-packages flag to pm init for one-shot package install (pm-hosd)
Fixed
- Suppress benign extension_service_override_collision when calendar+guide-shell both bundled (pm-5u9z)
- pm test --add causes immediate history drift via null timeout_seconds (pm-er4q)
- Clean project linked-file validation hygiene (pm-xz1p)
- CI: cache .agents/pm/search/lancedb + sentry release cache (pm-n28v)
- CI: cache vitest/.cache + tsbuildinfo for incremental builds + faster tests (pm-1pah)
- CI: skip non-source jobs on docs-only changes (pm-iv1u)
- CI: split quality+smoke gates into a parallel job, share dist via artifact (pm-27yz)
- Add regression coverage for pm init agent guidance workflows (pm-0nia)
- pm install <invalid> lacks did-you-mean for built-in aliases (pm-uuee)
- pm validate after fresh create is scary — downgrade default profile noise (pm-tylj)
- pm contracts default returns 286 KB / 9612 lines — token catastrophe for agents (pm-p8j6)
- pm bare command silent exit 0 — no help shown (pm-8rj2)
- pm install exits 0 on error (CRITICAL agent-blocker) (pm-naiv)
- CLI silently corrupts --tags '["a","b"]' JSON-array input (agent-unfriendly) (pm-klqo)
- auto-release.yml workflow_dispatch silently overrides explicit push=false to true (pm-qa2h)
- MCP pm_context crashes on caller-supplied projection flags (compact/brief/fields/includeBody) (pm-xy02)
- CI: smaller matrix on PRs, full matrix on main push only (pm-lkd7)
- Investigate validate/health telemetry classification (71-74% failure rate) (pm-bzx3)
- Telemetry queue tmp file orphan cleanup (83MB stale) (pm-nhka)
- Stop listing provided --flag as missing in error recovery bundle (pm-ixi1)
- Default project scope for files/docs/tests and simplify scope UX (pm-ntnf)
- CI: combine pnpm test + pnpm test:coverage into single coverage run (pm-hpjd)
- Fix CSV status filter and multi-status support in pm list (pm-ziv0)
- MCP pm_update --comment string crashes with 'values.map is not a function' (pm-qeu1)
- Fix TOON array-of-objects continuation lines double-indent (pm-ps85)
- MCP pm_list defaults to compact projection for agents (pm-2cqx)
- Cache item body in metadata cache for fast keyword search (pm-jw36)
- pm install writes absolute-home-path into tracked .managed-extensions.json (pm-u83w)
- Embedding timeout UX: improve ollama feedback for PM-CLI-A/9 (pm-ibp7)
- Sentry extension errors: cannot find module and activate failures (pm-p7av)
- Accept positional title argument in pm create (pm-7vm9)
- Fix: localeCompare on undefined in sort comparators (pm-b9y1)
- Fix: ENOENT lstat in extension path operations (pm-bh13)
- Perf: pm health takes 2.5s due to vectorization check (pm-tibg)
Other
- Opt CI JavaScript actions into Node 24 runtime (pm-1lef)
- Accept positional title for pm plan create like pm create does (pm-qbts)
- Accept pm init --yes alias for --defaults (pm-lwbr)
- Dogfood + remediation session 13 (2026-05-17) (pm-vmeo)
- Expose Plan workflow in SDK, MCP, plugins, docs, and dogfood (pm-aqat)
- Implement pm plan command family for agent harness workflows (pm-ze5g)
- Document pm init agent guidance context workflow (pm-1265)
- Expose agent guidance init option in settings, contracts, help, and config (pm-b8rf)
- Wire pm init approval flow and declined guidance persistence (pm-8rjn)
- Build idempotent AGENTS/CLAUDE pm guidance detector and writer (pm-g2nd)
- Smoke test after audit (pm-xmsn)
- Implement pm guide docs and skills modernization (pm-4z9m)
- Merge Dependabot PRs: dev+prod deps and pnpm/action-setup (pm-2723)
- 2026-05-03 latest PM CLI dogfood audit (pm-jrjt)
- Release @unbrained/pm-cli after 2026.5.12 (pm-dc5d)
2026.5.14 - 2026-05-14
Added
- Publish package gallery and marketplace metadata (pm-2b3l)
- Add reusable package-first temp-project dogfood script (pm-8l7d)
Changed
- Extract calendar UX into installable pm package (pm-pznn)
- Extract create templates into installable pm package (pm-2fgn)
- Extract advanced search and vectorization into installable pm package (pm-2rj1)
- Extract governance audit surfaces into installable package (pm-ixt3)
- Extract guide and completion UX into installable package (pm-zjuv)
- Define linked test runner package boundary (pm-7xk5)
Fixed
- Sync package JS runtimes to public SDK surface (pm-2t78)
- Hybrid semantic reindex should emit bounded progress and deterministic JSON completion (pm-6zqq)
- Expose runtime command-path state in extension explore (pm-5mua)
Other
- Simplify command inputs for setup-agnostic agent workflows (pm-ej01)
- Design full pm package manifest and resource model (pm-t5ud)
- Expose package runtime helpers through public SDK (pm-hkql)
- Decouple optional package actions from static SDK contracts (pm-wxxv)
- Migrate extension terminology to package-first docs and UX (pm-lwun)
2026.5.12 - 2026-05-12
Added
- Generalize pm package resources for project-management extensions (pm-su6i)
- Add package-first command aliases and pm install (pm-9x1c)
Fixed
- Suppress linked-test sandbox ENOENT seed races (pm-kk4t)
Other
- Run package-first CLI and SDK temp-project E2E (pm-gy6w)
- Implement pm upgrade for CLI, SDK, and packages (pm-bob2)
- Classify barebone core boundary and package migration matrix (pm-c933)
- Extract bundled import/export customizations into installable pm packages (pm-hxp2)
- Stop tracking runtime metadata cache (pm-4det)
2026.5.11 - 2026-05-11
Fixed
- Profile and optimize command startup latency (pm-m4ov)
- Fix Claude plugin smoke marketplace contract (pm-sw92)
Other
- Full-scope SDK and extension platform upgrade for app/CI integrations (pm-dhie)
2026.5.10 - 2026-05-10
Added
- Comments shorthand compatibility and docs parity (pm-cvwi)
Security
- 2026-05-09 latest-build full pm CLI dogfood audit and remediation (pm-m35h)
2026.5.6 - 2026-05-06
Fixed
- GitHub #21: document resilient global git-install recovery (pm-drje)
- GitHub #20: resilient mixed-frontmatter item-format migration (pm-w5j7)
Other
- Release @unbrained/pm-cli after 2026.5.4 (pm-0rjf)
2026.5.3-2 - 2026-05-04
Other
- Release @unbrained/pm-cli after 2026.5.2 (pm-0qv7)
2026.5.3 - 2026-05-03
Changed
- Code quality + architecture review with targeted tests (pm-lvww)
- Code quality review - latest refactor surface (pm-zk79)
- main.ts still has 4 extraction candidates (~1325 lines) (pm-sh6o)
- Duplicated parseLimit/parsePriority/parseType across 8+ command files (pm-hb8t)
Fixed
- Blocker: telemetry endpoint returning HTTP 521 (pm-ut35)
- PmCliError events leaking to Sentry via captureConsoleIntegration (pm-9iho)
- UX: Telemetry shows 84 'No update flags provided' errors - improve guidance (pm-sh4x)
Security
- Pin GitHub Actions to immutable SHAs (pm-hfny)
- Execute latest dogfood audit and targeted fixes (pm-mm3h)
- Security/privacy leakage gate - redact host/IP/token from tracked files (pm-m0fh)
Other
- 2026-05-03 Full PM CLI Re-Audit (Live Cycle) (pm-476d)
- Decision: Re-audit final verification and system health summary (pm-tdo5)
- Live remote infra + Sentry SaaS analysis (pm-2o82)
- CI/CD + telemetry/Sentry client re-audit (pm-44hv)
- Calendar + agent output audit (pm-wyvu)
- Search/vector/auto-indexing deep audit (critical path) (pm-4u2e)
- SDK + extension platform audit and ergonomics (pm-lvea)
- Dogfood full E2E lifecycle in temp sandbox (pm-g4zb)
- 2026-05-02 Comprehensive PM CLI Audit (v2026.5.2) (pm-5zkg)
- Telemetry + Sentry analysis and remediation (pm-xwl6)
- Search + Calendar + SDK deep validation (pm-937o)
- Dogfood lifecycle matrix in temp project (pm-cu50)
- CI/CD hardening sweep - workflows + release scripts (pm-0kd4)
- Decision: v2026.5.2 Audit Results - System Healthy (pm-dmam)
- Performance baseline: list-open reads all 636 items front-matter on every invocation (pm-f6wr)
- main.ts exceeds 5000+ lines - assess decomposition into per-command registration modules (pm-6c3h)
- CI: make package test scripts sandbox-first (pm-swja)
- Extract shared HTTP fetch/timeout/error patterns from providers.ts and vector-stores.ts (pm-p0p1)
2026.5.2 - 2026-05-02
Added
- Add vector dimension mismatch warning counter to LanceDB queries (pm-k213)
- Performance: list/filter operations scan all 625+ item files on each invocation (pm-cd2f)
- Agent-optimized documentation structure (pm-r9gu)
- Docs: Add practical SDK extension examples (pm-7k9o)
- Agent UX: Add --brief output mode and context suggestions (pm-32si)
- Architecture: Decompose extension loader types (pm-f9s0)
- Performance: Parallelize listAllFrontMatter I/O (pm-hiji)
- SDK: Export ItemFrontMatter and ItemDocument types (pm-slul)
- Code Quality: Extract shared primitives module (pm-5na9)
- Add --compact mode to pm activity for agent-friendly condensed output (pm-ne67)
- Audit latest CLI, SDK, calendar, and telemetry workflows (pm-3fti)
- Feature: Extensibility architecture verified - governance, custom types, agent UX (pm-oe33)
- Feature: Telemetry pipeline verified end-to-end (pm-0kjv)
- Feature: SDK exports complete with 78 public symbols (pm-92s0)
- Feature: Calendar fully functional with recurrence expansion (pm-409c)
- Feature: Core commands verified - all 10 types and lifecycle (pm-qwe2)
Fixed
- SDK: bundled extensions use internal imports instead of @unbrained/pm-cli/sdk (pm-qfuq)
- Code duplication: toErrorMessage and toNonEmptyString across 5+ files (pm-540l)
- Telemetry queue timeout: 21 events stuck with flush timeout (pm-sgmb)
- Telemetry: Fix queue bloat and move flush to background (pm-sgko)
- Search: Fix cosine similarity with L2 normalization (pm-h2pi)
- Project tracker validation hygiene warnings remain (pm-e0b5)
- pm health ok:false for normal telemetry queue draining is non-actionable noise (pm-gmnh)
- pm cal --include events|scheduled expands recurring events without default cap (pm-vg5h)
- Calendar recurring event line has redundant double-title (item title repeated in event title field) (pm-b1pd)
- pm templates bare command shows empty output (should list templates) (pm-dc2y)
- Calendar --include scheduled alias missing (calendar summary uses 'scheduled' but filter requires 'events') (pm-itb0)
- pm files --add bare path fails with misleading error (scope implied required) (pm-8r2r)
- Priority --priority error message missing 0..4 range and semantic labels (pm-1h7w)
- Telemetry queue oversized-event pruning not applied during flush phase (regression) (pm-on3q)
- Issue: Telemetry queue bloat from oversized result_summary payloads (pm-ntr0)
Removed
- Remove 15 dead root-level facade re-export files (pm-l9j6)
Security
- Chore: 2026-05-02 Phase 3 Audit - IP scrub, dogfood, analysis tooling (pm-2326)
- 2026-05-02 Full PM CLI Audit Phase 2: Dead Code Removal, Security Enhancement, Sentry Optimization (pm-kkmo)
- Enhance check-secrets.mjs with private IP detection rule (pm-daft)
- 2026-05-02 Full PM CLI Audit: Build Fix, Security, Performance, Telemetry (pm-nnhi)
- Documentation overhaul and public docs safety (pm-3042)
- Rewrite README and public documentation (pm-1sb2)
- Pin release dependency ranges for Dependabot hygiene (pm-q71q)
Other
- Release @unbrained/pm-cli 2026.5.2 (pm-5jw8)
- 2026-05-02 Full Audit: All Systems Verified (pm-ss8d)
- Lower Sentry tracesSampleRate from 1.0 to 0.2 for free plan quota (pm-wvhs)
- 2026-05-02 Comprehensive PM CLI Audit (pm-rrjv)
- Sentry CLI token needs broader scopes for issue analysis (pm-q4jp)
- Dead code: root-level facade re-export shims unused (pm-nr8k)
- Decision: 2026-05-02 Comprehensive Audit Results (pm-mve5)
- 2026-05-01 Full PM CLI Audit Implementation (pm-twpc)
- Telemetry: Create Grafana dashboard (pm-6js7)
- Telemetry: Backfill legacy source_context (pm-dqer)
- Docs: Create telemetry stack runbook (pm-2lbp)
- Verify remote telemetry stack receives events and data flows to [redacted_monitoring_ui] (pm-g8gj)
- 2026-05-01 Full PM CLI Dogfood Audit v2 (pm-2eb3)
- Chore: Prune stuck telemetry queue entries (pm-wrbo)
- Decision: Cap telemetry result_summary payload size (pm-q9yt)
- 2026-04-30 Full PM CLI Dogfood Audit (pm-23me)
2026.5.1-2 - 2026-05-01
Fixed
- Stabilize post-release cross-platform CI tests (pm-7d3m)
Other
- Release @unbrained/pm-cli after 2026.3.12 (pm-x6ni)
2026.5.1 - 2026-05-01
Added
- Feature: Telemetry Pipeline Audit - Fully Operational (pm-jkip)
- Feature: SDK & Extension System Audit - Comprehensive (pm-qdha)
- Feature: Calendar Subsystem Audit - All Passing (pm-7k60)
- Feature: Core Commands Audit - All Passing (pm-7kiy)
- List command large-output ergonomics (pm-a4z3)
- Add governance normalize command with dry-run and apply modes (pm-vi2v)
- Implement governance query controls from 2026-04-06 issue report (pm-jqgc)
- Implement context command runtime and surfaces (pm-iyqf)
- Narrow contracts --command output by default and add projection modes (pm-xlzl)
- Add dependency-cycle diagnostics to pm validate lifecycle checks (pm-i4ef)
- Expand aggregate group-by to support priority, status, assignee, tags (pm-bhhe)
- Analyze persisted telemetry and add remote analysis skill (pm-cakn)
- Implement CLI telemetry consent and runtime pipeline (pm-5v5w)
- Add files discovery subcommand for referenced paths (pm-n2ts)
- 2026-04-25 full dogfood audit remediation wave (pm-2hrt)
- Wave 8/9: add test-all limit/offset blast-radius controls (pm-5a4f)
- Health vectorization status and targeted refresh (pm-3ebr)
- Extend pm validate with low-signal metadata quality checks (pm-dw5s)
- Add governance batch-mutation mode with explicit ownership override planning (pm-lwps)
- Add activity filtering and stream mode for large program automation (pm-0g7a)
- Add calendar --full-period option and clarify period boundary wording (pm-euh6)
- Add lazy dynamic tag completion with optional eager expansion (pm-6qnu)
- Clarify ownership conflict guidance for force overrides (pm-8sgf)
- Extension help and contracts runtime introspection (pm-4bhw)
- Add dependency visualization command (pm deps) (pm-x85o)
- Automate duplicate-cluster detection and canonical mapping report (pm-7lum)
- List parent filtering and get recovery guidance (pm-v7o7)
- Search UX and projection controls (pm-qb71)
- Remove none token semantics across command surfaces (pm-rl4e)
- Add AGENTS rule to check existing pm items before creating new ones (pm-o5uw)
- External follow-up: add focused extension diagnostics triage summaries (pm-doek)
- Add extension adopt workflow for unmanaged extensions (pm-5dia)
- Bulk comments audit query surface (pm-ayyt)
- Health optional directory strictness and compatibility (pm-2i0i)
- Help System Redesign Across All Commands (pm-j162)
- Extend SDK contracts and Pi wrapper for extension lifecycle actions (pm-9ajy)
- Config key discovery and export actions (pm-kslz)
- Agent integration and docs hardening for calendar/reminders (pm-122q)
- Configurable item type registry (settings + extensions) (pm-x2k0)
- Background test service parity and release verification (pm-elsh)
- Configurable test-result tracking on PM items (pm-16f4)
- Background linked-test orchestration and run management (pm-bi0z)
- Add test-result tracking settings and config policy (pm-z9k7)
- Linked-test PM context parity controls and mismatch guardrails (pm-8izv)
- Dedicated extension doctor diagnostics surface (pm-gm9y)
- Sunset pm install command and migrate to extension manager installs (pm-8a2s)
- Implement extension source resolver and installer engine (pm-2poj)
- Strict skipped-test policy and linked-test assertion semantics (pm-wtq6)
- Issue3 Feature: Extract PM-id references from linked commands (pm-bf54)
- Issue2 Feature: Per-linked-test env directives (pm-dlvv)
- Issue2 Feature: Run-level env controls and shared-host-safe flags (pm-ec5o)
- Implement deterministic guard for ambiguous create log seeds (pm-m3mf)
- Enforce command-required linked tests at mutation time (pm-44iu)
- Linked-test sandbox project/global extension parity (pm-bkvx)
- Implement managed extension state and lifecycle health surfaces (pm-grst)
- Issue1: validate check-files full tracked scan mode (pm-j371)
- Exit/output and subprocess runtime hardening (pm-axlr)
- Governance sweep 2026-04-03 net-new remediation (pm-r7t2)
- Issue5: comments audit append policy path (pm-ahq1)
- Issue4: create strict vs progressive policy mode (pm-431e)
- Issue3: files add stable append diff mode (pm-6jps)
- Validation command and close-time metadata checks (pm-gtdx)
- Implement pm extension lifecycle command surface (pm-7ghv)
- Implement agent-first help/schema/error surfaces (pm-dqqa)
- Add glob-based linked artifact additions for files/docs (pm-3eu2)
- Stability regressions and update/file UX guidance hardening (pm-ap8l)
- Add reusable item templates for pm create (pm-780f)
- Extended schema fields v1.1 - parent, reviewer, risk, sprint, release (pm-2p6q)
- Docs, Contracts, and Verification Hardening (pm-i0iy)
- Command-Aware Human Output Redesign (pm-t2hj)
- Structured Error Guidance and Diagnostics (pm-frk8)
- Feature: comments force guidance parity (pm-7y8q)
- Feature: claim takeover on non-terminal items (pm-w9w4)
- Feature: update close_reason lifecycle integrity (pm-m4vu)
- Support pm update body end-to-end (pm-ghha)
- Implement missing-history stream policy and restore fallback (pm-kb21)
- Add history missing-stream policy setting and config support (pm-8wnm)
- Phase 2 docs, migration guidance, and release verification (pm-r9nf)
- Phase 2 SDK v2 contracts with backward-compat adapters (pm-0u1y)
- Phase 2 pluggable core service kernel (pm-qlo0)
- Phase 2 preflight and lifecycle interception engine (pm-977j)
- Phase 2 parser and command-contract override engine (pm-k1zw)
- Add notes and learnings command parity (pm-v1s1)
- Add files/docs repeated-add regressions and update flag guidance (pm-e0ab)
- Health history drift detection (pm-7vr9)
- Activate semantic defaults via local Ollama runtime detection (pm-zvn2)
- Stdin and PTY fail-safe behavior (pm-olxl)
- Implement flexible deadline/date parser behavior (pm-lau3)
- Canonical status alias normalization across CLI surfaces (pm-1r6p)
- Harden entry and add input resilience (pm-nhgt)
- Compatibility docs and verification hardening (pm-tob5)
- Flexible parser and stdin ingestion foundation (pm-e7fd)
- SDK publishing and stability contract (pm-oga6)
- Full registration runtime wiring (pm-zd6y)
- Core command-dispatch override engine (pm-al0h)
- Policy-driven option controls for create/update (pm-5bwo)
- Add option-policy schema and registry resolution (pm-gu1m)
- Required-option guidance and docs parity (pm-b3id)
- Dynamic type integration across CLI, storage, and completion (pm-277p)
- Add extension registration support for custom item types/options (pm-37pj)
- Calendar parity integrations and release hardening (pm-02gd)
- Calendar occurrence engine and advanced view filtering (pm-8m6s)
- Event and recurrence schema with mutation contracts (pm-0ab3)
- Add advanced event filters and bounded recurrence controls (pm-8kxm)
- Add create/update event and recurrence mutation flags (pm-enar)
- Add event and recurrence schema normalization (pm-f0v0)
- Calendar command with markdown default and multi-view rendering (pm-tuhf)
- Persistent reminder item fields and CLI mutation support (pm-c877)
- Add create/update reminder flags and mutation paths (pm-ysgr)
- Add TOON migration tests docs and verification (pm-ybpq)
- Command integration tests and docs for TOON storage (pm-u919)
- Automatic migration and legacy format gate (pm-z8bl)
- Dual-format item codec and storage support (pm-5cbm)
- Add include-body support across list variants (pm-ykib)
- Add tests and completion coverage for include-body list flag (pm-6e0p)
Changed
- Add scoped audit override mode for pm update metadata mutations (pm-umhv)
- Update-many: improve error message when no mutation flags provided (pm-twtu)
- Improve update-command close and audit-owner failure guidance from telemetry (pm-syt7)
- Align update-many status mutation support with help/contracts (pm-3cx8)
- Update docs and changelog for six audit findings (pm-9eaz)
- Add deterministic linked-test replacement mode for update test mutations (pm-bjpo)
- Implement pm update-many with dry-run checkpoints and rollback (pm-lf6s)
- Implement atomic dependency replacement mode for pm update (pm-tixl)
- Implement explicit clear/unassigned semantics and remove none token behavior (pm-d7id)
- Improve required option error/help guidance with examples (pm-bzyr)
- Update linked-test regressions docs and verification evidence (pm-dk0a)
- Publish governance refactor report (2026-04-04) (pm-2r70)
- Task: implement update close_reason flag and reopen auto-clear (pm-g8jp)
- Update body backfill normalization parity (pm-ihfm)
- Document update body support and ship verification evidence (pm-ipm8)
- Align update body contracts completion and regressions (pm-ha5a)
- Wire update body runtime mutation path (pm-eszd)
- Phase 2: update extension architecture and migration docs (pm-4epk)
- T5: Update docs for terminal compatibility guarantees (pm-qkva)
- Update docs and release evidence for default Ollama semantic behavior (pm-ptu0)
- Error2: Refactor commander usage mapping and dedupe error output (pm-eonv)
- T2: Refactor CLI error exits to graceful exitCode flow (pm-1119)
- Parser update: support +m and flexible date strings (pm-y8a8)
- C3: Update docs and release notes for comments UX (pm-bx5r)
- Update docs and verify status alias release readiness (pm-posc)
- Enforce option policies in create/update and help errors (pm-co62)
- Update completion and Pi wrapper for event recurrence flags (pm-5hbj)
- Update docs and finalize calendar/reminder release changes (pm-2v01)
- Update completion and Pi wrapper for calendar/reminder support (pm-qze9)
Fixed
- Auto-migrate previous-version trackers on first mutation (pm-yvwt)
- Context blocked-fallback test uses date-sensitive default deadline (pm-0xhj)
- SDK starter example leaves extension health warning (pm-mwiz)
- Add opt-in runtime probe mode for extension manage parity (pm-p0ij)
- Implement local telemetry queue retention_days TTL cleanup (pm-pxx0)
- Fix Grafana RabbitMQ queue panel metric selector mismatch (pm-r9ei)
- Validate UUID fields at telemetry ingestion boundary (pm-vhdc)
- Add pm version and source classification to telemetry payloads (pm-3dd9)
- Add extension project scaffold command or template (pm-wsui)
- Clarify or harden SDK import resolution for local extension installs (pm-1etl)
- Investigate search command latency from persisted telemetry (pm-bhmu)
- Calendar: allow --full-period for agenda view or improve error message (pm-8qpc)
- Templates command: document correct invocation syntax (positional vs --name) (pm-6y6i)
- Fix integration test: health check list missing telemetry entry (pm-hb6x)
- Strengthen SDK typing for extension registration contracts (pm-bqg4)
- Add telemetry runtime diagnostics to pm health (pm-300m)
- Enforce telemetry capture_level setting in runtime event collection (pm-gusd)
- Align default item types with Decision tracking guidance (pm-mpmv)
- Clarify strict create empty repeatable semantics (pm-k8i0)
- Reject undefined placeholder IDs in parent/dependency inputs (pm-g9yi)
- Align templates-save Pi contracts with supported CLI flags (pm-eg0a)
- Fix parser overrides for core commands without positional args (pm-7jkm)
- Fix validate --check-files false-positive on linked project paths (pm-m9tv)
- Fix LanceDB vector dimension mismatch blocking default search (pm-oyt8)
- Include active extension commands/actions in contracts output (pm-nnfc)
- Expose extension command schema details in runtime help (pm-ek2h)
- Replace invalid-id echo in get not-found guidance (pm-opbo)
- Add --parent filter support for list and list-* commands (pm-08zg)
- Add compact/full/fields search output controls with compact default (pm-nrxm)
- Allow unquoted multi-word search queries (pm-v6ob)
- Fix pm test run exit semantics for failed linked tests (pm-c1bn)
- Linked-test PM command context can drift from workspace dataset (pm-6pij)
- Fix cross-platform CI regressions surfaced by GitHub checks (pm-skyg)
- Add dependency mutation command for existing items (pm-zdec)
- Regression and release hardening (pm-qwp7)
- Phase 2: parser override regression and docs coverage (pm-6024)
- Terminal compatibility regression suite and docs parity (pm-t6f7)
- T4: Add terminal compatibility regression coverage (pm-gh7d)
- Add regression coverage for Ollama-backed semantic defaults (pm-9k33)
- Test1: Expand regression coverage for help/error/output UX (pm-jfpf)
- Cross-command regression verification for date parsing expansion (pm-x6l7)
- C2: Add comments shorthand regression coverage (pm-k0mr)
- Add status alias regression tests (pm-0kga)
- Document resilient input formats and lock regression coverage (pm-s9hl)
- E1: Expand override and no-extension regression matrix (pm-5chf)
- Ship regression tests docs and verification evidence (pm-r9dy)
- Expand recurrence regression and runtime contract tests (pm-5xih)
- Remove TOON front_matter wrapper from item files (pm-h3tp)
- Expand regression and release-readiness tests for calendar/reminders (pm-tyq3)
Removed
- Extend restore to recover missing or deleted item files from history (pm-g6qd)
Security
- Issue: Private IP address in committed pm task files (pm-xk8b)
- Ignore local .env files for telemetry/security operations (pm-qgvj)
- Remediate open GitHub findings and recurring checks (pm-i7w2)
- Track GitHub Dependabot alert #29 for picomatch (GHSA-3v7f-55p6-f55p) (pm-5e88)
- Track GitHub Dependabot alert #27 for undici (GHSA-4992-7rv2-5pvq) (pm-02c4)
- Track GitHub Dependabot alert #26 for undici (GHSA-v9p9-hfj2-hcw8) (pm-ylg3)
- Track GitHub Dependabot alert #25 for undici (GHSA-vrm6-8vpv-qv8q) (pm-s5vv)
- Track GitHub Dependabot alert #24 for undici (GHSA-2mjp-6q6p-2qxm) (pm-x4sy)
- Track GitHub Dependabot alert #23 for undici (GHSA-v9p9-hfj2-hcw8) (pm-53q4)
- Track GitHub Dependabot alert #22 for undici (GHSA-vrm6-8vpv-qv8q) (pm-i1rm)
- Track GitHub Dependabot alert #21 for undici (GHSA-4992-7rv2-5pvq) (pm-cg7l)
- Track GitHub Dependabot alert #20 for undici (GHSA-phc3-fgpg-7m6h) (pm-090w)
- Track GitHub Dependabot alert #19 for undici (GHSA-f269-vfmq-vjvj) (pm-rb9v)
- Track GitHub Dependabot alert #18 for undici (GHSA-2mjp-6q6p-2qxm) (pm-10no)
- Track GitHub Dependabot alert #13 for undici (GHSA-g9mf-h72j-4rw9) (pm-51y8)
- Track GitHub Dependabot alert #12 for undici (GHSA-cxrh-j4jr-qwg3) (pm-pagj)
- Track GitHub Dependabot alert #11 for undici (GHSA-9qxr-qj54-h672) (pm-tl4d)
- Track GitHub Dependabot alert #10 for undici (GHSA-m4v8-wqvr-p9f7) (pm-ipul)
- Track GitHub Dependabot alert #9 for undici (GHSA-3787-6prv-h9w3) (pm-d3i5)
- Track GitHub Dependabot alert #8 for undici (GHSA-wqq4-5wpv-mx2g) (pm-v6vi)
- Track GitHub Dependabot alert #7 for zod (GHSA-m95q-7qp3-xv42) (pm-4ydh)
- Track GitHub Dependabot alert #6 for undici (GHSA-r6ch-mqf9-qc9w) (pm-8m72)
- Track GitHub Dependabot alert #5 for fast-json-patch (GHSA-8gh8-hqwg-xf34) (pm-pacx)
- Track GitHub Dependabot alert #4 for undici (GHSA-f772-66g8-q5h3) (pm-eu59)
- Track GitHub Dependabot alert #3 for undici (GHSA-8qr4-xgw6-wmr3) (pm-bv2c)
- Track GitHub Dependabot alert #2 for undici (GHSA-q768-x9m6-m9qp) (pm-5p3z)
- Track GitHub Dependabot alert #1 for undici (GHSA-3cvr-822r-rqcc) (pm-ncbe)
- Documentation, migration, and safety posture (pm-31fj)
- D2: Update compatibility and security/trust guidance (pm-3949)
Other
- Run latest-build temp-project dogfood audit and remediate findings (pm-j16d)
- Epic: 2026-04-28 Full PM CLI Dogfood Audit (pm-wg1d)
- Chore: Telemetry queue steady-state has 100 pending entries (pm-2gmr)
- Decision: PM CLI audit confirms production readiness (pm-unbq)
- 2026-04-26 Comprehensive PM CLI Dogfood Audit - Full Results (pm-z87r)
- Continuous governance automation and policy enforcement (pm-5rjn)
- Telemetry and observability rollout (pm-lnq3)
- Configurable item types and required-option UX (pm-r15d)
- Agent context command ( / ) (pm-abhj)
- PM CLI 2026-04-06 audit findings remediation (pm-o7be)
- Follow-up: enhance calendar UX for agents and LLM parsing (pm-kglq)
- Track extension GitHub shorthand source documentation parity (pm-h8j3)
- Generate unknown-command remediation examples from runtime registry (pm-a01m)
- Implement search argument and projection mode changes (pm-0nxf)
- Generate shell completion flags from command contracts (pm-xhot)
- Implement and verify pm context command (pm-f583)
- SDK docs: document cli-contracts exports and extension capability requirements (pm-qrxb)
- Make lifecycle validate patterns configurable (pm-urxb)
- Core commands audit: full CRUD lifecycle verified with all item types (pm-ewxk)
- Extension system audit: install/manage/doctor/activate lifecycle fully working (pm-3s52)
- Calendar audit: all views verified working, reminders and deadlines render correctly (pm-71sj)
- Telemetry pipeline verified: all [redacted_service_count] services healthy, E2E event ingestion working (pm-3akm)
- 2026-04-26 comprehensive pm CLI dogfood audit (pm-8pzn)
- Run weekly GitHub findings review (pm-lou4)
- 2026-04-26 comprehensive dogfood audit stabilization (pm-mb4n)
- Backfill telemetry documentation files referenced in tracker links (pm-35wb)
- Align extension hook docs with runtime types and SDK surface (pm-hbtn)
- Execute telemetry + observability rollout implementation (pm-ny6y)
- C1: Publish explicit extension SDK exports (pm-l16r)
- Consolidate 2026-04-25 dogfood audit evidence and tracker links (pm-odcr)
- Clarify config policy value ergonomics for strict modes (pm-9ayo)
- Full-repo audit hardening pass (warnings + metadata alignment) (pm-4vm7)
- Run full verification and release evidence for audit remediation (pm-ac8x)
- Implement background start paths and test-runs command surface (pm-ormq)
- Implement PM-context parity mode and mismatch metadata for linked tests (pm-vrsn)
- GC safety ergonomics: dry-run and scoped cleanup (pm-xrm7)
- Wave 8/9: clarify get --json body field behavior (pm-gb25)
- Wave 8/9: restore replay patch compatibility and diagnostics (pm-n5cw)
- Wave 8/9: non-interactive help paging safeguards and --no-pager (pm-crk9)
- Implement Issue4 create progressive policy mode (pm-v7aw)
- Wave 8/9: event parse errors with field-specific attribution (pm-a3eq)
- Implement comments-audit command with filters/latest (pm-w1j3)
- M4 follow-up: exact-title lexical boost for deterministic search ranking (pm-4iga)
- External follow-up: reduce tracked-all orphaned noise from PM internals (pm-a228)
- Implement pm notes and pm learnings command stack (pm-c465)
- Help1: Centralize help composer and command narratives (pm-vf7n)
- Expose start-task pause-task close-task as first-class CLI aliases (pm-3www)
- Harden mutation-triggered vector refresh coverage across write paths (pm-bgd8)
- Implement pm dedupe-audit command modes and merge suggestions (pm-4n1a)
- Implement extension help and contracts runtime integration (pm-sucq)
- Implement list parent filter and get guidance updates (pm-jlsh)
- Implement list offset pagination and JSON stream mode (pm-ice4)
- M5 hardening: unknown extension capability diagnostics (pm-hzh6)
- M5 follow-up: validate extension registration handler types (pm-qkx0)
- External issue report remediation 2026-04-05 (pm-gt8u)
- Ship1: Full verification, closure evidence, commit, and push (pm-y76e)
- Sync docs and contracts for external audit remediation (pm-c8dz)
- Drive repository coverage gate back to 100 percent (pm-r28k)
- Implement extension doctor summary/deep diagnostics command (pm-hjrr)
- External follow-up: suppress EPIPE stack traces in piped output (pm-4emi)
- Implement pm validate and --validate-close behavior (pm-k6ml)
- Implement config list/export command actions (pm-5lmj)
- Implement health optional-directory defaults and strict mode (pm-t7xl)
- Governance standards alignment follow-up 2026-04-04 (pm-xjf9)
- Agent-optimized calendar and reminders (pm-qh3p)
- Follow-up: expand built-in item types for calendar-native work (pm-p5q3)
- Background linked-test service and item result tracking (pm-lm0j)
- Run background-service release verification and closure evidence (pm-9ik7)
- Sync contracts/completion/Pi for background test-run surfaces (pm-4moz)
- Persist bounded test run summaries on item records (pm-i2pc)
- T3: Harden linked-test subprocess anti-hang behavior (pm-dzrj)
- External audit follow-up: linked-test evidence and extension diagnostics (pm-5z9r)
- PM CLI governance and documentation overhaul (pm-wtsp)
- M5: Built-in todos import export extension (pm-3s0)
- M5: Built-in beads import extension (pm-odt)
- Extension lifecycle manager and SDK parity rollout (pm-m9jc)
- Overhaul extension and SDK documentation with install equivalence examples (pm-cdsf)
- Retire pm install path semantics with command removal (pm-cxn3)
- Docs, contracts, and verification sweep for external audit follow-up (pm-64f1)
- Implement fail-on-skipped policy and linked-test assertions (pm-au2z)
- Issue3: Validate stale PM-id command references (pm-br88)
- Issue2: Shared-host linked-test determinism (pm-9dp3)
- Issue3 Task: Contracts Pi docs and tests parity (pm-wvr0)
- Issue3 Task: Default-on validate command reference check (pm-2ajr)
- Issue2 Task: Structured linked-test failure classification (pm-4g5i)
- External audit Issue1 follow-up: log-seed ambiguity guard (pm-pb0g)
- Code/test/docs for create log-seed ambiguity guard (pm-l5tr)
- Linked-test parity and runnable command enforcement (pm-mf5z)
- Enforce command-required linked test mutations (pm-wn34)
- Implement sandbox seeding for project/global extension parity (pm-qtvv)
- Implement Issue5 comments audit append path (pm-8k10)
- Implement Issue3 files stable-append mutation mode (pm-xv39)
- Implement Issue1 validate scan-mode and candidate totals (pm-kshe)
- External audit follow-up: validation and large-output ergonomics (pm-qfg8)
- External audit follow-up docs sync and verification gate (pm-ykgu)
- Track open Dependabot PR #14 (pm-0jpx)
- Track open Dependabot PR #12 (pm-16pn)
- Track open Dependabot PR #10 (pm-eoil)
- Track open Dependabot PR #9 (pm-u4hy)
- Track open Dependabot PR #7 (pm-n8w4)
- Track open Dependabot PR #6 (pm-7akk)
- Track open Dependabot PR #5 (pm-akty)
- Verify extension manager rollout and deliver release evidence (pm-3gzy)
- Agent-First CLI UX v3 follow-up (pm-pfn8)
- Execute Agent-First CLI UX v3 implementation (pm-b21u)
- External audit follow-up: unresolved UX and dependency visualization gaps (pm-iswo)
- Sync docs/contracts/wrapper parity for unresolved external audit additions (pm-tcx8)
- M4: Keyword indexing and search command (pm-pmd)
- M2: RFC6902 patch generation per mutation (pm-p9z)
- M1: Item schema model and validation (pm-3gi)
- Differentiate pm list (active-only) from pm list-all (all items) (pm-zzt1)
- CLI UX Overhaul: Help, Errors, and Output (pm-izbd)
- CLI UX and Integrity Hardening (pm-hp31)
- Task: harden comments force guidance across help/docs/completion (pm-8k83)
- Task: allow claim takeover without force for non-terminal items (pm-05u4)
- History stream resilience and restore recovery hardening (pm-ofh9)
- Finalize tests docs verification and release evidence for history hardening (pm-0vnr)
- Implement shared history-stream policy helper and command enforcement (pm-1tyv)
- Full Override SDK + Extensions Platform (pm-x395)
- E2: Final verification and closure evidence (pm-rl7j)
- Phase 2: full verification matrix and closure evidence (pm-1had)
- Phase 2: publish SDK contracts for parser/preflight/services (pm-j24z)
- Phase 2: compatibility adapters and migration diagnostics (pm-ngdf)
- Phase 2: integrate service overrides into core modules (pm-leol)
- Phase 2: implement service override contracts and runtime registry (pm-78jt)
- Phase 2: lifecycle mutation safety and compatibility tests (pm-5mqd)
- Phase 2: implement extension preflight override pipeline (pm-sh14)
- Phase 2: wire parser override contracts in runtime (pm-nfii)
- Universal terminal compatibility hardening (pm-mudv)
- External audit issue remediation and compatibility hardening (pm-my6o)
- Health drift and vectorization integrity (pm-1hkq)
- Document and verify health drift/vectorization changes (pm-yo5m)
- Implement health vectorization targeted refresh (pm-v48k)
- Implement health history drift diagnostics (pm-x0vj)
- Output1: Implement command-aware non-JSON result summaries (pm-x3fh)
- Auto-enable semantic search when local Ollama is available (pm-67uh)
- Implement Ollama-aware semantic default resolution in runtime (pm-wn3r)
- Docs1: Refresh README/PRD/architecture/extensions/changelog (pm-qhcw)
- Error1: Introduce structured error model and builders (pm-gggs)
- T6: Run full verification, close items, and ship (pm-r4t0)
- T1: Implement stdin and PTY fail-safe behavior (pm-fas4)
- Deadline/date parsing compatibility hardening (pm-va6e)
- Docs/help refresh for expanded deadline/date inputs (pm-9sg4)
- Agent-friendly comments command UX hardening (pm-v3g3)
- C1: Implement intuitive comments argument parsing (pm-hcco)
- Status alias compatibility hardening (pm-g6a2)
- Implement centralized status alias normalization (pm-ptal)
- Wire resilient entry ingestion across mutation commands (pm-0pvk)
- Implement tolerant entry parser and stdin token utility (pm-luay)
- D1: Rewrite extension and architecture docs for full override (pm-8qne)
- C2: Backward-safe extension SDK compatibility shims (pm-bw3h)
- B3: Executable extension migration lifecycle (pm-twpm)
- B2: Wire search providers and vector adapters (pm-14qs)
- B1: Wire registerItemFields into runtime validation (pm-t0yd)
- A3: Hook context parity and lifecycle symmetry (pm-osk5)
- A2: Core override precedence and collision diagnostics (pm-t6xf)
- A1: Unified extension-first command router (pm-2bxh)
- Configurable option policies for core commands (pm-00yy)
- Align extension metadata and completion/wrapper parity (pm-h2eo)
- Support type-aware storage routing and safe type moves (pm-rv63)
- Build and wire runtime item type registry (pm-h1no)
- Calendar parity phase 2: events and recurrence (pm-vdrn)
- Document recurrence features and finalize release evidence (pm-tytr)
- Implement recurrence occurrence expansion in calendar views (pm-0c0g)
- Implement calendar command core views and filtering (pm-ezri)
- Implement reminder schema validation and deterministic ordering (pm-7e6n)
- TOON item storage migration (pm-bckz)
- Integrate command and extension format behavior (pm-3aga)
- Implement automatic migration and mutation gate (pm-s0ne)
- Implement dual-format codec and store lookup (pm-oex4)
- Implement item_format settings model (pm-9689)
- List JSON Body Projection Contract (pm-0lbm)
- Document include-body list contract and capture validation evidence (pm-gudp)
- Implement include-body retrieval in list command pipeline (pm-vsux)
- Release @unbrained/pm-cli 2026.3.12 (pm-lz4m)
2026.3.12 - 2026-03-13
Fixed
- Fix Beads Import Lossiness (pm-axl0)
Security
- Track and commit imported pm issue/history files (pm-rbdu)
- Sanitize publishable worktree before push (pm-mcli)
- Cut public release 2026.3.9 (pm-1h88)
Other
- Expand README quick start create example to full field surface (pm-mltd)
- Replace docs-as-contract tests with pm-data/runtime checks (pm-sevn)
- Generalize CLI help text for universal positioning (pm-30zl)
- Rewrite README for public users (pm-uc33)
- Maintain release readiness 2026-03-09 (Run 9) (pm-7vr0)
- Maintain release readiness 2026-03-09 (Run 8) (pm-2cr5)
- Maintain release readiness 2026-03-09 (Run 7) (pm-zre8)
- Maintain release readiness 2026-03-09 (Run 6) (pm-j0o4)
- Maintain release readiness 2026-03-09 (Run 5) (pm-6k5l)
2026.3.9 - 2026-03-09
Added
- M5 roadmap: Pi agent extension advanced ergonomics (pm-hbc1)
- Add integration test for pm list active-only behavior (pm-gus1)
- Add README badges and update CONTRIBUTING.md to reference docs/ (pm-x4f9)
- Add Node 25 to nightly CI and create docs/ architecture+extension guides (pm-aa6w)
- Add package.json npm metadata and GitHub community files (pm-ixbk)
- Add automated npm release workflow and Node 24 CI coverage (pm-mwe8)
- Pi wrapper action parity: add completion action (pm-oqe0)
- Add pm completion command for bash/zsh/fish shell completion (pm-7hx6)
- Add definition-of-done config baseline (pm-jdt8)
- Add issue-specific metadata fields to item schema and CLI (pm-rs40)
- Add confidence metadata flag support for create/update (pm-kpz5)
- Add med alias for risk flag values (pm-7w60)
- Add snake_case aliases for create/update acceptance and estimate flags (pm-mfza)
- Add --title and -t support for pm update (pm-w1r6)
- Add --ac alias parity for pm update acceptance criteria (pm-3qrp)
- Add --ac alias for create acceptance criteria (pm-vyqe)
- Add list-draft command parity for draft status (pm-ex1y)
- Repo restructure and module boundaries (pm-2c8)
Changed
- Pi wrapper all-fields create/update parity (pm-096j)
- Promote strategic metadata flags into canonical create/update contract (pm-phob)
- Release-readiness guard for update help/contract parity (pm-cujj)
- Release readiness refactor (pm-ote)
- M1: Core command set init create get update append delete claim release close (pm-06t)
- Installer scripts and update path (pm-tq1)
Fixed
- Release-readiness contract audit and next fix (2026-03-06 run 5) (pm-x89f)
- Release-readiness contract audit and next fix (2026-03-06 run 4) (pm-2joy)
- Release-readiness contract audit and next fix (2026-03-06 run 3) (pm-eamp)
- Release-readiness contract audit and next fix (2026-03-06 run) (pm-qkj9)
- Release readiness contract audit and next fix (pm-oadl)
- Deduplicate test-all linked test execution across items (pm-v6e)
- Fix sandbox runner passthrough for targeted test commands (pm-2rl)
Removed
- M4 follow-up: remove deleted items from semantic vector indexes (pm-fdla)
- Remove session-based ownership model (pm-5rh2)
- Implement pm delete command (pm-4yl0)
Security
- Release hardening: scoped npm + version policy + CI (pm-1hm2)
- Add npm provenance attestation to release workflow (pm-mwap)
- Fix devDependency security vulnerabilities via c8 and rollup updates (pm-r3fi)
- Harden include-linked symlink containment (pm-lxa0)
- Harden include-linked path containment (pm-q35x)
- M5: Enforce symlink-resolved extension entry boundary (pm-fsyv)
Other
- Pi wrapper workflow preset: close-task (pm-ewoq)
- Maintain release readiness 2026-03-09 (Run 4) (pm-eyoz)
- Maintain release readiness 2026-03-09 (Run 3) (pm-k4u5)
- Maintain release readiness 2026-03-09 (pm-o4ky)
- Release-readiness maintenance loop 2026-03-09 (pm-36zp)
- Make semantic search fully working using Ollama (pm-b4pb)
- Docs parity: mark Pi wrapper packaging polish as implemented (pm-du3c)
- Release-readiness maintenance loop 2026-03-08 run 2 (pm-3tjx)
- Guard todos import hierarchical ID preservation (pm-57lj)
- Restore full todos import metadata parity (pm-ecbn)
- Release-readiness maintenance loop 2026-03-08 run 1 (pm-vz16)
- Promote unblock-note to canonical workflow field (pm-1p6f)
- M4 follow-up: resolve search sonar warnings (pm-f35q)
- M4 follow-up: semantic/hybrid search limit=0 deterministic empty result (pm-6mn1)
- Preserve confidence in todos import mapping (pm-zoyg)
- Release-readiness maintenance loop 2026-03-08 run 1 (chore archival variant) (pm-knwz)
- M5 roadmap: Runtime wiring for extension registrations (pm-jvfw)
- M5 roadmap: Broader call-site expansion for hooks (pm-m6yd)
- M5 roadmap: Broader override surfaces (pm-bfd9)
- M5 roadmap: Broader command sandbox API boundary (pm-qype)
- M5 roadmap: Beads import extension parity polish (pm-imob)
- M4 roadmap: Broader multi-factor tuning for hybrid search (pm-qyyv)
- M4 roadmap: Advanced provider optimization (pm-ip91)
- M4 roadmap: Broader adapter optimization and persistence refinements (pm-8ikr)
- M5 roadmap: Pi tool wrapper packaging/distribution polish (pm-bdz5)
- M5 roadmap: Todos import/export extension parity polish (pm-pu4i)
- Release-readiness maintenance loop 2026-03-07 run 11 (pm-dyu6)
- Release-readiness maintenance loop 2026-03-07 run 10 (pm-u8fr)
- Release-readiness maintenance loop 2026-03-07 run 9 (pm-acx9)
- M4: Honor embedding batch + retry settings in semantic indexing (pm-i25f)
- Release-readiness maintenance loop 2026-03-07 run 8 (pm-a5ea)
- Release-readiness maintenance loop 2026-03-07 run 7 (pm-wjdr)
- Release-readiness maintenance loop 2026-03-07 run 6 (pm-mn6w)
- Release-readiness maintenance loop 2026-03-07 run 5 (pm-f0e9)
- Release-readiness maintenance loop 2026-03-07 run 4 (pm-iziy)
- Release-readiness maintenance loop 2026-03-07 run 3 (pm-204c)
- Release-readiness maintenance loop 2026-03-07 run 2 (pm-phpq)
- Normalize duplicate milestone epics in tracker (pm-d9yz)
- Bootstrap dogfood backlog and execute highest-priority gap (pm-ep96)
- README maintainer bootstrap parity with AGENTS (pm-8mkp)
- Optimize test-all dedupe across timeout variants (pm-cnil)
- Contributing maintainer bootstrap global-install parity (pm-m91u)
- Release-readiness loop: enforce global install bootstrap contract (pm-uh4d)
- Release-readiness audit and next hardening changeset (pm-lfae)
- Release-readiness verification and baseline dogfood sweep (pm-scca)
- Close-workflow contract guard across docs and runtime (pm-fvox)
- AGENTS closed-sweep guidance and contract guard (pm-gsd9)
- Sync prompt-03 create template with canonical contract (pm-wi28)
- Release-readiness maintenance loop 2026-03-06 (pm-tkie)
- Release readiness maintenance sweep (pm-r59c)
- Release-readiness drift audit and sync (pm-mpd6)
- Harden settings serialization contract coverage (pm-gm5l)
- Sync legacy prompt docs with create contract (pm-h22w)
- Sync AGENTS Pi create example with explicit contract (pm-oie4)
- Sync prompt docs with close workflow (pm-vx7l)
- Enforce close-command closure path (pm-3nv9)
- M5 follow-up: surface registerFlags on dynamic command help (pm-vqam)
- M5 hardening: enforce extension capability declarations (pm-mwwp)
- Harden sandbox guard for run-script test commands (pm-q813)
- M5 follow-up: classify applied extension migrations (pm-cw6c)
- M5 follow-up: enforce mandatory extension migration write gate (pm-2p5x)
- M5 follow-up: report pending extension migrations in health (pm-42oa)
- M5 follow-up: include built-in extensions in health probe (pm-l88i)
- M5 follow-up: dispatch lock lifecycle hooks (pm-671u)
- M3 follow-up: harden activity when history directory is missing (pm-er7n)
- M5 follow-up: isolate hook execution contexts (pm-3ses)
- M5 follow-up: Extension API registration surface baseline (pm-iuzs)
- M5 follow-up: dispatch onWrite hooks for create and restore (pm-f3q4)
- M5 follow-up: health extension activation probe (pm-pjj7)
- M5 follow-up: health history stream read hook dispatch (pm-ndb1)
- Harden chained sandbox env detection per segment (pm-wdgn)
- Reject flagged package-manager test runners in pm test --add (pm-mlc3)
- Harden recursive test-all detection for pnpm dlx and npm exec launchers (pm-11t5)
- Record explicit acceptance_criteria unset in create history metadata (pm-7pp6)
- Pi wrapper fallback path hardening (pm-e6qb)
- Harden recursive test-all detection for npx package specs (pm-8fvl)
- Pi wrapper numeric scalar flag parity (pm-ni7x)
- M4 roadmap: mutation-triggered semantic embedding refresh (pm-eg97)
- Build pm-cli v1 (pm-j7a)
- Milestone 5 - Extension System + Built-ins (pm-b1w)
- M5 follow-up: activity history directory read hook dispatch (pm-xyv3)
- M5 follow-up: isolate override and renderer contexts (pm-8d71)
- M5: Harden extension command handler context sandbox (pm-0e8w)
- M5 follow-up: validate extension hook registration handlers (pm-30lh)
- Harden recursive test-all detection for global-flag invocation forms (pm-k3zx)
- Milestone 6 - Hardening + Release Readiness (pm-jiw)
- M5 follow-up: normalize extension command path whitespace (pm-433d)
- M5 follow-up: dispatch onIndex hooks in gc command (pm-3aeu)
- Milestone 4 - Search (pm-f45)
- Milestone 2 - History + Restore (pm-c0r)
- Milestone 3 - Query + Operations (pm-54d)
- Milestone 1 - Core Item CRUD + Locking (pm-u9r)
- M5: Renderer and command extension points (pm-geq)
- M4: Hybrid ranking and include-linked option (pm-cwp)
- M5: Hook lifecycle (pm-p8p)
- M5: Built-in Pi tool wrapper extension (pm-igv)
- Create contract verification sample (pm-awo)
- M4: Mutation-triggered search cache invalidation (pm-zgkk)
- M4: Embedding provider abstraction (pm-yv2)
- M2: Append-only history writer (pm-pg9)
- M4: Vector store adapters for Qdrant and LanceDB (pm-kj4)
- M1: Markdown item parser and serializer (pm-l4o)
- M1: Lock acquire release with TTL and conflicts (pm-nkx)
- Milestone 0 - Foundations (pm-2xl)
- M3: test-all orchestration and dependency-failed exit handling (pm-66o)
- M0: Project scaffolding CLI entrypoint config loader (pm-k8v)
- M4: Strict keyword search filter validation parity (pm-r5ku)
- CI workflows and quality gates (pm-wo8)
- M1: ID generation and normalization (pm-dgb)
- M6: Fixture corpus for restore import and search (pm-si1)
- M6: CI matrix finalized (pm-8z7)
- M0: Error model and exit code mapping (pm-siz)
- M5: Extension manifest loader and sandbox boundary (pm-7sd)
- M0: Deterministic serializer utilities (pm-vdh)
- M4: Reindex command (pm-nj3)
- M3: list and list-* filters with deterministic sort (pm-r0m)
- M3: stats health and gc commands (pm-zau)
- Testing strategy and 100 percent coverage gates (pm-912)
- M2: Restore by timestamp or version with replay and hash validation (pm-9lc)
- M3: comments files docs and test commands (pm-kwl)
- M6: Command help and README examples validated in tests (pm-15o)
- M2: History and activity commands (pm-2fj)
- Packaging hardening for npm release (pm-cyj)
- Docs contract sync for release readiness (pm-pq8)
Changelog
remote
Report an issue