Skip to content

fix(platform): port native validation and runtime recovery fixes - #4626

Merged
ScriptedAlchemy merged 10 commits into
masterfrom
fix/platform-native-validation
Oct 31, 2026
Merged

ScriptedAlchemy merged 10 commits into
masterfrom
fix/platform-native-validation

Conversation

@ScriptedAlchemy

@ScriptedAlchemy ScriptedAlchemy commented Oct 30, 2026 •

Copy link
Copy Markdown
Owner

Why

#4584 carried about 30 fix commits from another session on a Renovate branch. It conflicted with master and never landed, because the earlier combined PR #4589 didn't include it. This PR ports its net change onto current code. It is based on integration/legacy-removal (#4623) so the legacy-removal conflicts are resolved once. Once #4623 merges, it will be retargeted to master.

What it brings

  • Windows
    • A rules_rust patch so link actions don't overwrite sealed metadata outputs.
    • Explicit daemon transport ownership.
    • Supervised shutdown of the ChatGPT-extension server, and the daemon authority location.
  • Sessions: transcript progress uses the canonical native rewrite witness, and generations chain across transcript replacements.
  • Hooks
    • Codex PostCompact joins the per-session projection owner.
    • Receipt handoff and recovery tests are deterministic.
  • Code index: changed incumbents are recaptured through bounded supersession, and retained rebuilds return to authoritative reconciliation.
  • MCP: a retired response is recovered only for read-only tools. Each new connection gets a new request identity, so effectful calls are never replayed.
  • Fixtures
    • TLS certificates within native validity limits. This fixes the four core_cli_suite remote_cli_test HTTPS cases that failed on master.
    • Socket paths within Unix limits.
    • Canonical fixture roots.

Conflict resolution

Where #4584 conflicted with the legacy removal, the removal won:

The hook HEAD-resolution and hook-scope changes were already on master as 72772d128b, so they are skipped. The ChatGPT-extension embed was regenerated.

Verification

  • bazel build --config=clippy //crates/...: clean.
  • bazel test //...: 173/173 pass, including core_cli_suite.
  • ChatGPT extension: tsc --noEmit clean, and check:embedded reports the embed is current.
  • gen_builds produced no changes. rustfmt is clean on every changed Rust file.

Supersedes #4584.

🤖 Generated with Claude Code


Devin Review

Ports the net change of #4584, about 30 commits from another session that
never landed, onto the legacy-removal integration branch:

- Windows: rules_rust patch separating link metadata outputs, explicit
  daemon transport ownership, supervised ChatGPT-extension shutdown, and
  the daemon authority location.
- Sessions: transcript progress uses the canonical native rewrite
  witness; generations chain across transcript replacements.
- Hooks: Codex PostCompact joins the per-session projection owner;
  receipt handoff and recovery tests are deterministic.
- Code index: changed incumbents are recaptured through bounded
  supersession; retained rebuilds return to authoritative reconciliation.
- MCP: a retired response is recovered only for a read-only tool; each
  new connection gets a new application request identity, so effectful
  calls are never replayed.
- Fixtures: TLS certificates within native validity limits (fixes the
  remote_cli_test HTTPS cases), socket paths within Unix limits,
  canonical fixture roots.

Conflicts resolved for the legacy removal:
- the pre-lease task-lock process test stays deleted;
- the serve-client `data.code` error fallback is not restored;
- re-exports of the deleted MCP test helpers stay dropped;
- the Windows service helpers use tracedecay_private_fs::windows;
- the portable broker returns Ok(None) on the build-match refusal.

The HEAD-resolution and hook-scope changes were already on master as
72772d1. The ChatGPT-extension embed was regenerated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@changeset-bot

changeset-bot Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: b4dc269

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Devin Review

@ScriptedAlchemy
ScriptedAlchemy changed the base branch from integration/legacy-removal to master October 30, 2026 06:25
@ScriptedAlchemy
ScriptedAlchemy enabled auto-merge (squash) October 30, 2026 06:25
ScriptedAlchemy and others added 2 commits October 29, 2026 23:29
Windows dynamic execution ran an unsandboxed local rustc with lock-free
output beside the remote branch. The losing copy wrote the execroot while
the winning result landed, so Test Windows failed on every PR since #4629
with missing .rlib/.pdb outputs and output-digest mismatches.

Restore remote-only Rustc on Windows with sequential local fallback for
worker infrastructure errors. Linux and macOS keep sandboxed dynamic
execution.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ScriptedAlchemy and others added 5 commits October 30, 2026 12:51
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Keep the canonical toolchain patch and the Windows sealed-metadata fix.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Master landed rules-rust-windows-action-outputs.patch (c9b0f57), which
gives Windows link actions their own metadata output and drops stripped
PDBs. It replaces this branch's rustc.bzl hunks from
rules-rust-windows-metadata-outputs.patch, so that patch is cut down to
the hunk master lacks, Windows Clippy's own metadata output, as
rules-rust-windows-clippy-metadata.patch.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Keep the short SDK fixture homes from #4644 instead of the older /tmp
workaround. This fixture matches the five passing Mac daemon journeys.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ScriptedAlchemy
ScriptedAlchemy merged commit e0516f0 into master Oct 31, 2026
17 checks passed
ScriptedAlchemy added a commit that referenced this pull request Oct 31, 2026
#4626 narrowed the test-only RMCP re-exports to cfg(all(test, unix)).
Keep that gate and this branch's removal of the root
RmcpInitializeResponseDecorator alias.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ScriptedAlchemy added a commit that referenced this pull request Oct 31, 2026
#4626 already stopped discarding the compaction error: it logs the error
and keeps the fixed "daemon compaction failed" reason. Keep that over
this branch's reason with the error text interpolated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ScriptedAlchemy added a commit that referenced this pull request Oct 31, 2026
#4626 platform-gated the daemon logging imports in branch_add.rs and
pr_autotrack.rs. Keep those gates and this branch's canonical_or_original
import, which the ungated callers on every platform still use.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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