fix(daemon): unify Windows project root identity - #1969
ScriptedAlchemy wants to merge 2 commits into
Conversation
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 65176d2165
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| .canonicalize() | ||
| .unwrap_or_else(|_| project_path.clone()); | ||
| let canonical_project_path = | ||
| tracedecay_runtime_core::path_safety::canonical_root_identity(project_path); |
There was a problem hiding this comment.
Preserve the plain spelling in the route key
On Windows, canonical_root_identity strips the \\?\ prefix here, but ProjectRouteKey::from_handshake immediately passes this existing path through authority::canonical_identity_path, whose canonicalization restores the verbatim prefix. Thus project_route_for_handshake returns a plain project_root but a verbatim route.project_path; the new daemon_project_route_uses_the_product_root_identity assertion fails on Windows and the route identity remains byte-split. Construct the route key without undoing the product-root normalization.
AGENTS.md reference: AGENTS.md:L186-L187
Useful? React with 👍 / 👎.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Windows canonicalization yields
\\?\D:\..., while product root identity usesD:\.... Daemon admission, route keys, and the production-composition harness could therefore look up the same mounted project under different byte spellings and report it unavailable.Resolve daemon entry points through
canonical_root_identity, normalize theProjectRouteKeyproject field and harness server lookup to the same plain host spelling, and align the LSP/Hermes assertions with that authority. The harness still reports a typed error when the project path cannot be canonicalized.Validation: the exact daemon root-identity and MCP cached-route tests pass locally, as do the CLI LSP identity and Hermes resolver tests. Native Windows CI is running for the corrected head.