Track pm-cli 2026.10.19 as the parity oracle
The locked oracle was 2026.10.14. Advancing it to 2026.10.19 changes list projection and limits, successful close receipts, warn-governance release receipts, and UTF-16 compaction. This updates native behavior and differential fixtures to match the published package.
| Classification | Upstream reference | Native behavior |
|---|---|---|
| Intended change, 2026.10.15 | #1457 | An explicit producer --limit binds with --no-truncate; the implicit token ceiling and 10,000-row guard remain disabled. |
| Intended change, 2026.10.17 | #1465 | Foreign-owner release under warn governance includes ownership_warning:assignee_conflict; forced and bypass releases remain silent, and strict governance refuses. |
| Intended change, 2026.10.17 | #1464 | Successful warn-mode close returns follow_up.kind = complete_close_evidence with completion command tokens. Failure recovery retains its existing contract. |
| Intended change, 2026.10.17 | #1478 | The 240-unit UTF-16 cut steps back before a split surrogate pair. Bounded JSON and TOON retain a valid prefix. |
| Intended change, 2026.10.18 | #1481 | Explicit sort keys appear once in brief rows and projection metadata; title is already present. |
| Intended change, 2026.10.18 | #1489 | All-status and terminal-family filters retain brief defaults. Explicit --full and full SDK reads still restore metadata. |
| Upstream quirk retained | #1507 | Default brief list rows omit the implicit priority/time sort keys. |
| Upstream quirk retained | #1509 | Blocker details ignore legacy dependency aliases. |
| Upstream quirk retained | #1510 | Packet cursor recovery refers to --after despite accepting --cursor. |
| Upstream quirk retained | #1511 | Context continuation may repeat blocked items. |
| Upstream quirk retained | #1512 | Completion follows the oracle's floating-point rounding sequence. |
| Upstream quirk retained | #1513 | Packet budget fallbacks and unknown-error refusals remain compatible. |
| Upstream bug outside this native slice | #1514 | Injected extension-client author fallback is unchanged; this slice does not implement extension-client writes. |
| Native parity defect | PR 100 nullable sort review | Intent brief rows retain absent explicit sort values as null, matching ordinary brief output. |
Release reference: pm-cli v2026.10.19 CHANGELOG, sections 2026.10.15, 2026.10.17 and 2026.10.18. Detailed compatibility, coverage and revert proof.
For example, list --all stays brief unless --full is requested, and list --limit 2 --no-truncate still returns at most two producer rows. Successful warn closes return follow_up rather than failure-shaped recovery. UTF-16 cuts preserve the valid prefix in JSON and TOON.
Review round for thread PRRT_kwDOTwgMRs6uY9EN: --for triage --brief --sort parent and --sort deadline now retain an absent selected sort key as null. Previously, the full-to-brief projection omitted the key. Plain-directory SDK tests compare every supported sort key and alias in both orders; CLI tests compare exact JSON and TOON output for both nullable keys and both orders. TOON keeps its normal omission of null scalar fields. The full PR diff was reviewed for the same defect classes, with no additional instance found; the latest CodeRabbit review has no outside-diff findings.
With the new tests retained, reverting only project_brief_rows compiles successfully and fails both regressions: the SDK row-equality assertion and the CLI native/oracle byte comparison at the omitted parent: null. Both reverted commands exit 101; the restored implementation passes both linked tests (one test each). The proof is recorded on pm-rust-owzm and in the linked compatibility document.
Coverage removes the unreachable CLI lone-surrogate handler, redundant post-compaction validation, and unknown-sort-only fallback. Explicit limits now use one shared parser. The lossless codec remains supported through a documented ListOutput::with_json_overrides constructor and binary/library refusal tests. Tests cover short raw fragments without panics, optional deadlines, invalid limits with offsets, and no-truncate guard behavior. The non-git SDK close fixture now asserts the exact follow-up kind, missing flags, rendered command and full argument list, closed status and absence of failure recovery. Complete evidence returns neither guidance field in off, warn or strict mode. Thresholds and exclusions are unchanged.
Behavioral revert proof: keeping the new oracle and tests, six isolated behavior reverts each failed assertions for all-status projection, brief sort values, no-truncate limits, close follow-up, foreign-owner warn release, and pair-preserving cuts. The refined row-guard regression also fails when only page_envelope is restored to the pre-update function. Each run required an assertion failure and restored the final source afterward. The receipt regression additionally rejects six isolated production-behavior mutations: five malformed follow-up payloads (empty object, wrong kind, empty missing flags, empty arguments and wrong rendered command) plus the old close_item recovery routing. All six compile and fail assertions; restored source passes the focused test.
Validation of implementation 8bd7993e292e41badfcd598e0ef9ed356cc08bf4: the unchanged just release-check passed in CI on Linux (521 ordinary + 521 instrumented tests), macOS (517 + 517), and Windows (512 + 512). Each pass ran all 21 binaries with zero failed or ignored tests. Lines, functions, regions and branches reached 100% on every platform; Linux totals are 13,181 lines, 1,364 functions, 22,015 regions and 3,154 branches. Fmt, denied-warning clippy, private-item rustdoc, audit and regenerated changelog checks pass. Audit retains the existing RUSTSEC-2024-0449 maintenance warning. Implementation gate run.
The local clean-HOME ordinary pass passed all 521 tests. Its duplicate instrumented pass was deliberately stopped after the complete Linux CI aggregate passed, with its first 300 tests passed and no test timeout. Both linked focused regressions pass 1/1. Strict clean-environment summary health passes all eight checks with existing advisories. The touched item history verifies strictly: 71 records, no errors, current hash matches; all 58 records inherited from the prior review head remain byte-for-byte unchanged.
Final evidence commit 99d8f6334d149e99ff3472762e0cf6ba63e5770f changes only documentation and tracker records; production source and test files are identical to the verified implementation. On this exact final head, Linux and Windows just release-check aggregates passed with the same counts and 100% coverage above. All three platform Rust and latency jobs passed. The macOS aggregate was canceled before runner allocation with no executed steps; its unchanged job retry is now running. The full macOS gate already passed on the identical implementation source at 8bd7993e292e41badfcd598e0ef9ed356cc08bf4. The final-head macOS aggregate is the remaining CI gap, and is not counted as passing evidence. Final-head CI run, current PR checks.
Tracker: pm-rust-owzm, with related pm-rust-4ld8. The writer claim is released and the item remains in progress for orchestrator verification. pm-rust-qhem separately tracks 2026.10.20, open and unassigned, blocked by this certification. Supersedes #97 and #99; both have plain supersession comments and are closed.
The strict summary health command passes in a clean CI environment. Full tracker health separately retains two unchanged legacy chain mismatches in pm-rust-bj7a and pm-rust-unih, tracked by pm-rust-b4yl. Existing advisories are tracked by pm-rust-vuwe. History is preserved; these older chains are outside this change.