---
name: win-path-literal-not-absolute-on-linux
description: "Windows-style \"C:/…\" path literal in a test is NOT absolute on Linux → cross-platform test bug a single-OS gate misses"
metadata: 
  node_type: memory
  type: project
  originSessionId: d095b3e4-b4dc-4ff4-8597-17c8faaa35fc
---

BLOCKED v0.22.0 (F-026 pickertruth) at PR#46 CI: `spt-daemon lifecycle::tests::resolve_endpoint_drop_dir_cases` FAILED on **Linux/kitsubito** only, deterministic (0.012s unit assertion, NOT the seedmap/two_tier flake class — rerun is useless).

**Root cause:** test hardcodes `abs = Path::new("C:/abs/drop")` and asserts it passes through `resolve_endpoint_drop_dir` unchanged. On Linux `"C:/abs/drop"` is **not absolute** (`Path::is_absolute()` is platform-defined — only `/`-leading is absolute on unix; drive-letter is a Windows concept). So the resolver correctly JOINS it under cwd → `left=Some("C:/Users/x/projects/spt-core/C:/abs/drop")` vs `right=Some("C:/abs/drop")`. PASSES on Windows (abs there), FAILS on Linux. Prod code is correct; the TEST literal isn't cross-platform. Introduced SI-1 commit a18d4e2.

**Fix (executor):** cfg-gate the absolute-path cases — unix `/abs/drop`, windows `C:\abs\drop` — or build via `PathBuf` per-OS. Not deployah's fix (I'm publisher); todlando fixes, doyle re-gates.

**Gate-methodology gap (the bigger lesson):** doyle's wave-final gate was **single-platform** (1505/1505 on one OS) → the Linux CI leg was the FIRST cross-platform run, so it caught what the gate didn't. Cross-platform-sensitive code (paths, separators, is_absolute, line endings) needs BOTH-OS legs in the gate, not just CI. Kin [[gate-clean-target-not-incremental]].

**Release-driver takeaway:** a deterministic unit-test fail with zero code delta from a green gate is NOT a flake to rerun — diagnose it (often platform-specific or gate-was-single-OS). Classify with the actual left/right values before calling flake. [[seedmap-test-collides-live-daemon]] is the OPPOSITE (real flake); don't conflate.
