Platform: Windows (10.0.28020.2731)
Obsidian Version: 1.13.7
Plugin Version: 2.0.2-beta
Plugin doesn´t even load and crashes immediately:
src/gi.ts imports path-browserify as a mobile-safe substitute for Node's path module . This library only implements POSIX path semantics, so path.isAbsolute() never recognizes Windows-style paths (C:\Users..., UNC \server\share). Since Obsidian Desktop's vault adapter returns a native Windows path for basePath on Windows, this breaks GI.
Suggested fix
Branch on Obsidian's documented Platform.isWin flag (https://docs.obsidian.md/Reference/TypeScript+API/Platform):
eg:
import { Platform } from "obsidian";
function isAbsolutePath(p: string): boolean {
return Platform.isWin
? /^[a-zA-Z]:[\\/]/.test(p) || /^\\\\/.test(p) // Windows: drive-letter or UNC
: path.isAbsolute(p); // POSIX (path-browserify is fine here)
}
Similar branching possibly needed elsewhere
gi.ts is not the only place doing path/filesystem logic that could hide platform assumptions. The codebase already has one dedicated module for exactly this class of problem — src/sync2/cross-platform.ts — which centralizes filename-character sanitization, GitHub URL encoding, and rename-portability differences between Capacitor and POSIX cross-platform.ts:1-30 ...
Platform: Windows (10.0.28020.2731)
Obsidian Version: 1.13.7
Plugin Version: 2.0.2-beta
Plugin doesn´t even load and crashes immediately:
src/gi.ts imports path-browserify as a mobile-safe substitute for Node's path module . This library only implements POSIX path semantics, so path.isAbsolute() never recognizes Windows-style paths (C:\Users..., UNC \server\share). Since Obsidian Desktop's vault adapter returns a native Windows path for basePath on Windows, this breaks GI.
Suggested fix
Branch on Obsidian's documented Platform.isWin flag (https://docs.obsidian.md/Reference/TypeScript+API/Platform):
eg:
Similar branching possibly needed elsewhere
gi.ts is not the only place doing path/filesystem logic that could hide platform assumptions. The codebase already has one dedicated module for exactly this class of problem — src/sync2/cross-platform.ts — which centralizes filename-character sanitization, GitHub URL encoding, and rename-portability differences between Capacitor and POSIX cross-platform.ts:1-30 ...