Skip to content

fix(windows): cmd fixture stdin, refusal classification, and remaining path-spelling fixes - #3034

Draft
devin-ai-integration[bot] wants to merge 3 commits into
masterfrom
devin/1791028948-windows-round2
Draft

devin-ai-integration[bot] wants to merge 3 commits into
masterfrom
devin/1791028948-windows-round2

Conversation

@devin-ai-integration

@devin-ai-integration devin-ai-integration Bot commented Oct 3, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Second batch of Windows test fixes on top of fix(windows): close path-spelling, DACL, and witness gaps #2966 (merged): a .cmd synthesis-provider fixture whose set /p slurped multi-line stdin and broke if parsing, an HTTP-refusal classification test that can never observe a refusal inside the 1s budget on Windows (kernel retries SYN ~2s), plus the remaining path-spelling, spool-opener, and canonical-identity fixes verified on this platform.
  • Verified on a real Windows Server 2022 box via a labeled delta rerun of all 95 unique failing names from the prior full sweep: 89 green, 3 legitimately #[cfg(unix)]-gated, 2 removed by fix/master-flakes-1003, 1 remaining red that belongs to the Lexical artifact restore trusts an unsettled ctime witness #2946 owner.

Motivation

Windows CI/partition runs fail on tests that assume POSIX semantics: cmd.exe line semantics in provider fixtures, loopback TCP refusal latency, verbatim \\?\ vs plain C:\ path identity, and unix-only hook-spool opener wiring. Each fix preserves the real Windows behavior contract rather than weakening assertions or stretching timeouts.

Changes

  • crates/tracedecay/tests/daemon_suite/advanced_workflow_journey_test.rs — .cmd fixture now compares prefix substrings (%input:~0,5%/%input:~0,6%). Root cause: the provider runs with an empty environment (env_clear), and cmd's set /p reads to EOF on bare \n, so %input% held the whole synthesize\n\n{json} payload and if /I "%input%"=="crash" aborted Exited{255}.
  • crates/tracedecay-cli/src/cloud.rs — a_refused_connection_is_network_unreachable: unix arm keeps the bound-non-listening instant refusal; windows arm accepts then RSTs (SO_LINGER=0) — the same NetworkUnreachable classifier reached deterministically inside FETCH_TIMEOUT (Windows refused-SYN retry is ~2s > 1s budget; measured).
  • crates/tracedecay-cli/src/sessions_cmd/refresh/tests.rs — cli directory asserted via canonical_existing_identity (plain C:\ convention) instead of canonicalize (verbatim \\?\).
  • crates/tracedecay/src/daemon/hook_v2_replay_consumer* + bootstrap.rs — portable (non-unix) spool opener wired through schedule_portable_project_server_warmup; wake_for_append accepts ModifyKind::Any.
  • crates/tracedecay-code-index-runtime/src/code_index_scheduler/registry{,/test_gates}.rs — test-gate keys normalized through canonical_existing_identity so verbatim and plain root spellings hit the same gate.
  • crates/tracedecay/src/doctor.rs — reset census gated on socket connectability, not the initialize deadline.
  • crates/tracedecay-sessions (jsonl admission, codex meta/observation, kimi, pi, ingest scheduler) — path/digest identity fixes so tests assert the real start_offset + read_through and canonical-path contracts on Windows; unix-only instrumentation (e.g. SessionMetaParseGate) cfg-gated while cross-platform assertions stay ungated.
  • Remaining files: same class of spelling/witness/DACL corrections across mcp handlers, dashboard-api, analytics, runtime-core resident memory (Win32_System_ProcessStatus), transport/mcp suite fixtures.

Test plan

  • Delta rerun of the 95 unique failing names from the previous full 8-partition sweep on binaries built from this tree (5064c9a37e = c35dd4dc4b + this diff): root-journeys 35/35, root-transport 30/30 (2 master-removed names), core-storage 13/13 (+3 unix-gated), runtime 8/9, root-lib 2/2, root-dashboard-api 1/1.
  • Fresh tracedecay.exe daemon binary built before every spawn-path run (daemon-spawning tests use target/perf/tracedecay.exe, not the test binaries).
  • cargo nextest run --workspace --no-fail-fast full sweep not rerun end-to-end; delta covers every previously-failing test name.
  • cargo clippy no new warnings (perf builds compile clean; only preexisting dead-code warnings on unix-only paths).
  • Known remaining red (owner-owned, not this PR): code_index_scheduler::tests::reconcile::clean_filtered_checkout_verifies_current_and_still_disproves_a_rewrite — initial reconcile_now() returns Noop{overflow_reconciled} on Windows; rewrite-witness contract tracked under Lexical artifact restore trusts an unsettled ctime witness #2946.

Checklist

  • CHANGELOG.md updated
  • No secrets, credentials, or .env files included
  • No weakening of assertions or increased timeout budgets; cfg-split arms assert each platform's real contract

Link to Devin session: https://app.devin.ai/sessions/8d318b7acc064553be69e3ceb810f26f
Open in Devin Desktop: https://app.devin.ai/desktop/session/8d318b7acc064553be69e3ceb810f26f?variant=devin
Requested by: @ScriptedAlchemy

Recovery validation

Reconciled the registry import conflict against current master and made the Windows reset-listener worker stop and join after the HTTP classification test. cargo check --workspace --all-targets --target x86_64-pc-windows-gnu passes on the recovered tree. Existing platform-specific warnings remain; this cross-compilation is not a new Windows runtime run.

@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".

  • Disable automatic comment, CI, and merge conflict monitoring

@changeset-bot

changeset-bot Bot commented Oct 3, 2026 •

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 64aa80a

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 force-pushed the devin/1791028948-windows-round2 branch from 5064c9a to 5c6c3a5 Compare October 3, 2026 12:05
Verified on Windows Server 2022 via a labeled delta rerun of all 95 previously-failing names: 89 green, 3 cfg(unix)-gated, 2 removed by master, 1 remaining red owned by #2946.

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

This branch has not been deployed

No deployments
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