fix(windows): support Unicode repository paths - #1816
Conversation
Signed-off-by: Daichi Matsumoto <222130627+z2250389@users.noreply.github.com>
|
Thanks for opening this — it has been seen, and it is queued. This note is automated, but it is not a brush-off: it exists so you know where your PR stands instead of having to guess from silence. Current review status: working through a backlog. What that means for this PR, concretely:
Things that will genuinely speed it up whenever review does happen:
If this fixes a bug, a reproduction we can run is worth more than a description of the symptom. Thanks for contributing, and sorry in advance for the wait. |
|
Thank you for the careful Windows work and the focused regression coverage. I checked this against current I have labeled this as a high-priority Windows UX bug and routed it for focused review. Since the PR remains a draft, we will treat “ready for review” as the contributor handoff. The current CI matrix is green. Our review queue is full, so detailed review may take a little time, but this is now classified and visible. Thanks again for isolating the platform boundaries and covering them separately. |
What does this PR do?
Fixes #1240.
Windows still passed UTF-8 repository paths to narrow CRT filesystem APIs at three boundaries:
stat(), so valid Unicode repositories reportedroot_exists=false.opendir()/readdir(), so Unicode folders were omitted or could not be opened.stat(), so UI indexing failed even after navigation succeeded.This replaces those calls with the existing UTF-8-aware filesystem helpers (
cbm_is_dir,cbm_opendir,cbm_readdir, andcbm_closedir) and adds reproduce-first regression tests for Git discovery, UI browsing, MCP session context, and UI indexing.Validation
daemon_application httpd git_context— 113 passed, 6 Windows platform skipsC:/Users/〈Path to folder〉/道具箱/〈repo〉, indexed successfully, and detected branchmainThe full Windows cppcheck sweep was timeboxed after 35 minutes; it reported four pre-existing findings on untouched lines and no finding on the changed lines.
Checklist
git commit -s) — required, CI rejects unsigned commits (DCO, see CONTRIBUTING.md)make -f Makefile.cbm test) — targeted affected suites pass; the full Windows suite has existing platform failuresmake -f Makefile.cbm lint-ci) — diff-scoped checks pass; full Windows cppcheck reports existing findings and exceeded the 35-minute local timebox