2026.8.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 elemento pm-h8tpeh

Changed

Fixed

  • Allow linked tests to opt out of source-workspace injection for self-sandboxing repo-wide gates elemento pm-efkvdy
  • Linked-test schema context changes non-PM repository checks, so commands that pass directly fail when recorded and run through pm test elemento pm-e97jyf
  • GH-1089: expose reproducible execution through supported CLI and MCP process configuration elemento pm-gh1089
  • Budget recovery can recommend a smaller ceiling than the request that already truncated elemento pm-xam9bt

Security

  • Linked-test commands are merge-unioned workspace data executed with shell:true — no provenance, allowlist, or confirmation boundary elemento pm-ed28wi
  • Cross-harness provenance adapters: automatically resolve native model, version, and effort signals beyond Claude without identity flags elemento pm-c0lrdm

Other

  • Cross-process reproducibility gate: prove CLI and MCP deterministic runs are byte-identical and fail on ambient time leaks elemento pm-vklr99
  • Expose agent probe controls and versioned legacy-author vocabulary through pm config and SDK mutation APIs elemento 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 elemento pm-cha95z

2026.8.22

Fixed

  • GH-1078: Complete-list certification accepts absent or contradictory truth receipts and emits stale recovery elemento pm-gh1078
  • GH-1076: read-only duplicates rejects universal JSON output controls elemento pm-gh1076
  • GH-1074: package doctor cannot distinguish a safe declining service override from a global interceptor elemento pm-gh1074
  • GH-1073: pm init accepts a whitespace id prefix that makes later creates fail elemento pm-gh1073
  • GH-1075: Windows Node 24 nightly validation failed at main 3e7ac007 elemento 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 elemento 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 elemento pm-rggtvd

Security

  • GH-1072: pm install leaks user allow-scripts config into isolated package installs elemento pm-gh1072

2026.8.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 elemento pm-ob9z4y

Changed

  • Provide consistent tracker preflight and executable recovery across SDK, CLI, and MCP elemento pm-6qiwan

Fixed

  • The blocks ceiling counts fabricated and evidence-cited ordering edges identically, so the historical ordering reconstruction another item mandates cannot land elemento 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 elemento 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 elemento 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 elemento 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 elemento pm-flnefm

Other

  • ADR: Ordering assurance partitions evidence-cited blocks from uncited blocks elemento pm-jhpby4

2026.8.20

Added

  • GH-796: no reopen transition for terminal items, so recurrence is recorded as a duplicate instead of a reopening elemento pm-83cz0o

Fixed

  • GH-529: init --agent-guidance emits run-tests.mjs linked-test example that may not exist in the target repo elemento pm-surv
  • GH-527: semantic staleness warning recommends 'pm reindex' which is absent from the base install elemento pm-qljv
  • CodSpeed instrument cache can stall simulation setup until the hosted benchmark gate is canceled elemento pm-w16muu
  • Make context intents and low-token projection fields fully discoverable elemento pm-gy885b

Other

2026.8.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 elemento pm-15qgul
  • Core command flag_invocations misclassify valueless booleans as required string values elemento 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 elemento 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 elemento pm-9sui7t
  • Plan positional-action help is undiscoverable: pm plan create --help is rejected as an unknown command elemento 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 elemento pm-y0htkd
  • Context calibration recovery names a nonexistent package script elemento pm-xa3t0o

Other

  • Every executable command and positional action publishes a typed, validated argument contract elemento pm-ya7x55

2026.8.18

Added

  • Alias shim layer: config-aware hidden aliases with one-line migration hints (foundation for all consolidations) elemento pm-0z7n

Fixed

  • A commit pushed directly to the default branch can never be released: both analyzer-evidence fallbacks presuppose a pull request, and nothing declares that precondition elemento pm-u1baah
  • GH-1052: typed fail-closed whole-list SDK primitive elemento pm-y4aaol
  • Packed Bun SDK import fails on node:module stripTypeScriptTypes elemento pm-ikj8ve
  • GH-1051: package catalog rejects universal output-budget controls elemento pm-2firut
  • Bun event streaming falls back to authoritative history without node:sqlite elemento pm-b8hwfr
  • Surface replication gate scopes trigger activation to relevant diff content elemento pm-mrhwow
  • CodeQL: remove generated-code artifact path interpolation from exporter integration harness elemento pm-ozxkm2
  • Exporter artifact-channel contract: clean stdout, bounded receipts, and binary-safe streaming elemento pm-dilou2
  • GH-1048: Windows Node 24 numeric EDQUOT fixtures construct NaN on platforms that do not declare that errno elemento pm-y4kovm
  • Queued daily releases recognize an already-published same-day release before analyzer provenance elemento pm-dm2vfz

Security

  • Adopt Dependabot PR \#1046 pinned CodeQL 4.37.7 and TruffleHog 3.97.0 refresh elemento pm-pp6al9

Deprecated

  • ADR: noun-verb CLI grammar — accepted consolidation principles and alias-preserving deprecation policy elemento 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 elemento pm-wt43zj
  • Consolidate the 8 list-\* status variants into pm list --status (list-all/open/draft/in-progress/blocked/closed/canceled become hidden aliases) elemento 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 elemento 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 elemento pm-ez1dfg

2026.8.17

Added

  • History-derived defect recurrence gate: turn resolved incident patterns into targeted local and hosted CI protections elemento 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 elemento pm-f6zjpq

Fixed

  • Linked tests retain high-volume Vitest output without aborting elemento 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 elemento pm-3crymx
  • The relationship lexicon cannot express recurrence, so a defect family fixed thirty times is thirty unrelated nodes to every graph algorithm elemento 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 elemento 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 elemento pm-suhxny
  • GH-1033: read fields selectors can erase identity and requested empty collections elemento pm-4fwgaz
  • GH-1036/GH-1040: history integrity verdicts and repairs are incompatible across supported CLI versions elemento pm-0wfdim
  • GH-1032: extension manifests silently accept unenforced version-floor spellings elemento pm-qqoumq
  • GH-1038: docs linked-resource pair syntax corrupts URLs and splits labeled entries elemento pm-fpdk37
  • GH-1039: graph impact discards dependency direction and makes the direction selector inert elemento pm-jn1x30

Other

  • Decision: adopt reviewed defect-evidence field constraints into audited workspace history elemento pm-4smp5b
  • Defect-escape ratchet: every escaped defect must land a gate that would have caught it, tracked as evidence on the fixing item elemento 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 elemento pm-0pzgit
  • Disposition the test-only escape hatch published through the ./cli entrypoint: 86 internal functions are consumer-visible API with no support intent elemento pm-rf120g

2026.8.16

Fixed

  • Workspace history integrity refusals escape typed CLI recovery and become high Sentry faults elemento pm-2zkvxm
  • GH-1019/GH-1020/GH-1021: Node 24 nightly platform regressions after PR \#1016 elemento pm-zno2iu
  • GH-814/GH-821/GH-1034: SDK metadata reads must distinguish missing, invalid, and unreadable tracker roots from empty elemento pm-23xkss
  • GH-1028: history-author-acknowledge bulk mutation lacks dry-run and misreports empty selection elemento pm-mcxk8v
  • GH-1030: contracts --json --full is wholly omitted by the default output budget elemento pm-2qvq7a
  • Auto Release blocker closure ignores successful recovery dispatch and reruns the stale tag-push workflow elemento pm-db8onn
  • A commit pushed directly to the default branch can never be released: both analyzer-evidence fallbacks presuppose a pull request, and nothing declares that precondition elemento pm-u1baah

Other

  • PR \#1035 final review convergence: POSIX enumeration wording and plan-level replication ratchet elemento pm-k9l7e1
  • PR \#1035 exact-head review follow-up: sandbox-safe proof, completion uniqueness, replacement equivalence, and test isolation elemento 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 elemento pm-4ok4ex

2026.8.15

Fixed

  • Provide an audited repair and severity-migration contract for legacy invalid provenance elemento pm-76fkpp
  • Detect extension-host pm-cli version skew before a workspace reports healthy elemento pm-643e0k
  • Restore strict unknown-key parity for docs linked-artifact additions elemento pm-22rzjp
  • Surface replication gate scopes trigger activation to relevant diff content elemento pm-mrhwow
  • Make every failing health verdict self-indexing and attach gate severity to findings elemento pm-larv4r
  • GH-1004: history-repair remains writer-version-specific across 2026.8.7 and 2026.8.13 elemento pm-igdvfq
  • Assurance gates preserve zero-valued counts and report actionable source failures elemento pm-xmmafu
  • 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 elemento pm-8nev0o
  • 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 elemento 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 elemento 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 elemento pm-e5gl05
  • GH-1008: assurance measurements accept unknown source kinds and contracts hide the valid vocabulary elemento pm-atnfh4
  • GH-1007: assurance gate declarations omit trigger and escape the typed refusal contract elemento 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 elemento pm-t7wn04
  • GH-1011: Windows Node 24 nightly cache fixture loses the authoritative linked-test collection elemento 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 elemento pm-dpqa3h

2026.8.14

Fixed

  • Unsupported assurance triggers bypass the typed evaluation-refusal boundary and surface as high-severity Sentry faults elemento 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 elemento 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 elemento 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 elemento 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 elemento pm-eugaqy
  • Every core and first-party package command declares an attributable agent intent elemento pm-7i97c3
  • Exact command-path summaries expose intent, flags, and format-aware output ceilings elemento pm-pmrae8
  • Default output ceilings bind representative read surfaces with depth-heavy negative controls elemento 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 elemento 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 elemento 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 elemento 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 elemento 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 elemento pm-h06944

Security

  • GHSA-2v37-7h3g-55p8: pin patched nanoid in the Vite/PostCSS development graph elemento pm-5dwz1a

Other

  • Quota-aware branch protection: external AI review limits must never block merges elemento pm-e02lgu
  • Refresh compatible Greptile 3.4, TypeScript-ESLint 8.67, and jscpd 5.0.15 tooling elemento pm-87hmdw
  • Isolate the merge SDK bundle from focused-entrypoint chunk fanout elemento 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 elemento 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 elemento pm-hnc9w7
  • ADR: Graph structural ratchets measure recorded nodes and informative edges elemento pm-dwj33e