Skip to content

fix: repair main's preflight — API snapshot, RUSTSEC-2026-0285, platform-boundary violations - #1219

Merged
zackees merged 4 commits into
mainfrom
fix/api-snapshot-drift
Sep 26, 2026
Merged

zackees merged 4 commits into
mainfrom
fix/api-snapshot-drift

Conversation

@zackees

@zackees zackees commented Sep 26, 2026 •

Copy link
Copy Markdown
Owner

Repairs main's PR preflight, which fails for every PR (blocks #1217, part of zackees/setup-soldr#528). Three causes:

  1. Stale public API snapshot (from 210cabf): docs/api_snapshot_rust.txt regenerated for the new exports (f2c2a22).
  2. RUSTSEC-2026-0285 (rustls 0.23.40): root Cargo.lock bumped to rustls 0.23.45 (8ab797d, cherry-picked from fix(deps): rustls 0.23.45 for RUSTSEC-2026-0285 #1218).
  3. 13 platform-boundary Dylint errors in crates/running-process-platform-internal/src/foreground.rs (from 1f21fe8) and src/semantic_priority.rs (from 210cabf) (8e9a333):
    • Unix foreground::exec and the host-specific foreground tests move to platform_{linux,macos,win}/foreground.rs. The neutral facade glob-re-exports the selected tree through the single cfg_select! in lib.rs. Windows exports no exec, same as before.
    • ProcessPriority::nice_value now reads per-tree PRIORITY_NICE_LOW/PRIORITY_NICE_HIGH (Windows 1/-15, Unix 10/-5) instead of cfg!(windows).
    • Test fixtures build Commands through foreground::tests::fixture_command, so the existing spawn-path allowlist entry still covers them. No new waivers, allowlist entries or baselines.
    • The public API is unchanged, and the snapshot still matches.

Supersedes #1218.

RED → GREEN (cargo dylint --pattern running-process-platform-boundary --workspace, nightly-2026-04-16)

  • Before: could not compile running-process-platform-internal due to 13 previous errors at foreground.rs:41,43,59,99,111,129,154,174,205,215×2 and semantic_priority.rs:24,25.
  • After: exit 0, no diagnostics.

Validation (local, Linux x86_64)

  • ./lint: All checks passed, including the spawn-path guard and the API snapshot gate
  • cargo fmt --all -- --check: pass
  • cargo clippy --workspace --all-targets -D warnings: pass on host, x86_64-pc-windows-msvc, aarch64-apple-darwin and x86_64-apple-darwin
  • cargo build --workspace: pass
  • cargo audit --deny warnings: pass
  • cargo test -p running-process-platform-internal: 128 pass, including all moved foreground tests. 1 failure is environmental and unrelated: current_executable_exposes_a_gnu_build_id, because the local linker emits no GNU build-id note.
  • Dylint for the Windows/macOS targets could not run locally because their C build scripts need a cross C toolchain. Clippy covers those cfg trees.

🤖 Generated with Claude Code

4. Stale baseline count (tests/test_platform_boundary.py::test_bootstrap_ledgers_are_valid, assert 443 == 429): 265b024 added 14 baseline rows for exactly the foreground.rs / semantic_priority.rs violations without updating the test. With those violations moved into the platform trees, the rows are stale and are removed; the ledger is back to 429 rows (validate_ledger, manifest_dependency_violations, neutral_facade_contract_violations all empty).

zackees and others added 3 commits September 25, 2026 21:23
210cabf (expose canonical process migration primitives) added public
re-exports without regenerating docs/api_snapshot_rust.txt, so the
public API snapshot gate fails every preflight. The diff is additive
only: no rename, removal or reordered parameter (#849).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
cargo audit --deny warnings fails on main (scheduled Security audit and
every PR) on rustls 0.23.40. Lockfile-only bump to the patched 0.23.45
(rustls-webpki 0.103.13 -> 0.103.15 follows).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…latform trees

Fixes the 13 platform-boundary Dylint errors on main from 1f21fe8
(foreground.rs) and 210cabf (semantic_priority.rs):

- Unix `foreground::exec` and the host-specific foreground tests now live
  in platform_{linux,macos,win}/foreground.rs; the neutral facade
  re-exports the selected tree via lib.rs's single cfg_select!.
- ProcessPriority::nice_value reads PRIORITY_NICE_LOW/HIGH constants
  defined per tree (Windows 1/-15, Unix 10/-5) instead of cfg!(windows).
- Test fixtures build Commands through foreground::tests::fixture_command
  so the reviewed spawn-path allowlist entry still covers them.

No public API change; docs/api_snapshot_rust.txt unchanged.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@zackees zackees changed the title docs(api): regenerate the public API snapshot for 210cabf2's exports fix: repair main's preflight — API snapshot, RUSTSEC-2026-0285, platform-boundary violations Sep 26, 2026
…emoved

265b024 recorded the foreground.rs / semantic_priority.rs host selectors
and native imports in the migration baseline (429 -> 443 rows) without
updating test_bootstrap_ledgers_are_valid, which still expects 429. The
previous commit moved that code into the platform trees, so the rows are
stale; removing them returns the ledger to 429 and shrinks the debt.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@codecov

codecov Bot commented Sep 26, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 94.78261% with 6 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
...platform-internal/src/platform_linux/foreground.rs 96.33% 4 Missing ⚠️
...process-platform-internal/src/semantic_priority.rs 0.00% 2 Missing ⚠️

📢 Thoughts on this report? Let us know!

@zackees
zackees merged commit 5acb3ff into main Sep 26, 2026
29 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant