Skip to content

Proposal: upstream native Windows support for codedb #621

@nsxdavid

Description

@nsxdavid

Hi! I have a working native Windows port of codedb and would like maintainer guidance on whether and how to upstream it.

This is a functioning Windows version: codedb builds and runs natively on Windows, MCP works, the CLI works, indexing/search paths work, and the Windows binary passes the MCP e2e suite.

Local validation on Windows:

zig build test
Build Summary: 23/23 steps succeeded
832/839 tests passed
7 skipped
python scripts/e2e_mcp_test.py --binary zig-out/bin/codedb.exe --project .
Results: 20/20 passed

The port handles the Windows-specific issues that previously blocked native support:

  • Windows stack pressure from large inline buffers and command-frame merging
  • POSIX-only file/path assumptions, including / separators, /tmp, and Unix-style root checks
  • Windows root/path safety, including drive roots, system directories, backslash traversal, and temp paths
  • HOME vs USERPROFILE handling for data directories, projects, and snapshots
  • Windows process/argv behavior for CLI subprocesses
  • MCP startup and tool handling on Windows
  • daemon transport through Windows named pipes

The Windows-specific behavior is guarded by platform checks, and the existing non-Windows code paths are preserved.

I saw the earlier Windows issue/PR stack (#170-#184, #234). I understand that previous work became stale after the Zig 0.16 migration, and that the later tracking issues were closed as "no Windows support planned." I'm opening this as a fresh proposal because there is now a working native Windows version based on the current codebase with passing Windows validation.

The two questions I'd like maintainer guidance on are:

  1. Would you consider supporting Windows now that the blocking issues have been resolved in a working implementation?
  2. If yes, how would you like the PR submitted? In particular, what branch should it be based on and what target branch should it open against?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions