danielmiessler / danielmiessler/LifeOS

Doctor.ts Windows probes: false negatives from POSIX-only which(), missing .exe/.cmd resolution, exec-bit and shebang checks

Open
#1,810 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
19k
Forks
2.5k
Avg merge
8d 17h
Merged PRs (30d)
1

Description

Splitting this out of #1730 (which tracked the setupUserSeparation symlink EPERM and is closed) — the Windows probe fixes described in my comments there never had a dedicated issue, so they cannot be tracked or closed on their own. Filing per that thread.

On a native Windows (win32, Git Bash) install, LIFEOS/TOOLS/Doctor.ts reports false negatives for most capabilities:

1. which() splits PATH on ':' instead of path.delimiter (';' on win32), so nothing on PATH resolves.
2. No .exe/.cmd/.bat probing — bare-name lookups miss Windows binaries; Bun.which() handles this if used.
3. Browser candidate paths are macOS/Linux only — no Windows Chrome/Brave install paths.
4. Unix exec-bit check fails on NTFS where the concept does not apply — needs a win32 skip.
5. Shebang check assumes /bin/bash resolution; on win32 the interpreter needs basename-on-PATH resolution.

All five are patched locally (verified working on Windows 11 + Git Bash, LifeOS v7.28.3) and I am happy to share the diff. As of v7.28.3 and current main, upstream Doctor.ts still carries the POSIX-only logic.

Environment: Windows 11 Home, Bun, LifeOS v7.28.3.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start in LIFEOS/TOOLS/Doctor.ts and inspect the PATH, browser candidate, executable-bit, and shebang probe logic. Verify the changes on native Windows 11 with Git Bash; done means Windows executables and browser installations resolve correctly without POSIX-only failures, while POSIX behavior remains intact.

Written by the indexing model from the issue text.

Assessment

Tech stack
bun, typescript
Domain
operating-systems, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.