Native search and item collection commands byte-identical to the pm CLI oracle
Adds native compact keyword search and item files/docs/test collections, compared byte for byte against the locked pm CLI 2026.10.14 oracle. Search covers weighted literal tokens and phrases, filters, ranking, bounded output and continuations. Collection edits retain canonical item/history bytes, no-op preservation, recovery journals and serialized native writers.
Status CSV tokens are parsed once for validation and selection. For example, search rust --status "all," previously returned no rows; it now selects all statuses and echoes all, while cursor fingerprints retain the raw option. Gate-lease locking treats only WouldBlock as contention and preserves other I/O failures with their path and source. Missing or whitespace-only unpublished payloads produce a lock conflict; nonempty malformed payloads retain stale handling.
Permanent advisory leases serialize native gate creation, reclamation and release, with explicit unlock before close and identity checks before tombstone reclamation. Mixed-runtime concurrent gate reclamation remains outside this guarantee. Mutation attribution includes bounded Codex/Claude probes, and compatibility documentation now describes that scope. Ownership differential subprocesses use the shared runtime environment helper.
Validation:
just release-checkpasses 385 normal and 385 instrumented tests locally on Node 26.12.0 with isolated HOME/Git configuration. Required source coverage is 8892/8892 lines, 868/868 functions, 13907/13907 regions and 2150/2150 branches. Formatting, strict clippy, private rustdoc, identity audit, required oracle comparisons, dependency audit and changelog verification pass at unchanged thresholds. The existing allowed unsafe-libyaml maintenance warning is unchanged.- Exact oracle regressions:
search_status_csv_matches_oracleandunpublished_lock_payload_refusals_match_oracle. Unit regressions cover lease diagnostics and unpublished/malformed payload classification. Reverting only each relevant behavior fails its regression with 0 passed and 1 failed; fixed source bytes were restored exactly. - An existing claim-race acceptance exhausted its 3-second fixture wait during publication. Both replay trackers now declare 30 seconds, matching the neighboring concurrency fixture. All six races retain exact loser envelopes, one-winner assertions, durable-byte checks and oracle history verification. The focused linked PM test passes.
- Final-head CI passes all six Rust and release-gate jobs across Ubuntu, macOS and Windows for
c3a0b5cab257ea6ee7cf9a8d62f3837011ede3c1. Every release job enforces all four unchanged 100% source coverage thresholds. CodeQL Rust analysis also passes. CI was polled at 60-second intervals and completed within the 45-minute wait limit.
Tracker integrity remains an explicit unresolved issue: initial Round 3 writes mistakenly used the changelog-only SDK 2026.10.9, whose normalization dropped linked-test updater metadata before hashing. Oracle verification reports before_hash_mismatch at search entry 44 and collections entry 74. All original history prefixes remain byte-identical and current items match their latest after_hash values. Subsequent writes use the repo-pinned 2026.10.14 oracle; no history was rewritten or re-anchored. pm-rust-b4yl tracks follow-up. Default strict health skips history_drift and is not evidence of history integrity.
Tracking: search, collections, concurrency fixture. Existing direct ownership text formatting is tracked separately in pm-rust-4jq3; the earlier empty-tag refusal gap remains pm-rust-bu9t. Items remain open for orchestrator verification.