singularity-forge/src
TÂCHES 8c228b8dbb fix: robust node_modules symlink handling to prevent extension loading failures (#1762)
The ensureNodeModulesSymlink function silently failed when: a real
directory existed instead of a symlink, the symlink target moved after
npm upgrade, or the symlink pointed to a deleted location. All three
cases left extensions unable to resolve @gsd/* packages, making GSD
completely non-functional.

Three fixes:
1. Use lstatSync to detect real directories vs symlinks and handle each
2. Verify the symlink target actually exists before considering it valid
3. Log a warning on symlinkSync failure instead of silently swallowing
4. Move ensureNodeModulesSymlink before the early-return version check
   so it runs on EVERY launch, not just during resource syncs

Closes #1688

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 09:19:43 -06:00
..
resources fix: lazy-load @gsd/pi-tui in shared/ui.ts to prevent /exit crash (#1761) 2026-03-21 09:19:41 -06:00
tests fix: robust node_modules symlink handling to prevent extension loading failures (#1762) 2026-03-21 09:19:43 -06:00
app-paths.ts feat: add GSD_HOME env var to override global ~/.gsd directory (#1566) 2026-03-20 08:29:01 -06:00
bundled-extension-paths.ts Fix packaging verification and path portability (#378) 2026-03-14 12:28:14 -06:00
bundled-resource-path.ts M001: The Minimal Machine — linear auto-loop, sole-authority state, sidecar queue, WorktreeResolver (#1419) 2026-03-19 14:56:00 -06:00
cli.ts feat: feat(ui): minimal GSD welcome screen on startup (#1584) 2026-03-20 08:11:06 -06:00
extension-discovery.ts fix: apply pi manifest opt-out to extension-discovery.ts (#1545) 2026-03-20 08:11:51 -06:00
extension-registry.ts feat: add GSD_HOME env var to override global ~/.gsd directory (#1566) 2026-03-20 08:29:01 -06:00
headless-answers.ts refactor(headless): remove duplicate jsonLine, use serializeJsonLine from pi-coding-agent (#1039) 2026-03-17 18:35:00 -06:00
headless-context.ts refactor(headless): split 772-line god file into events, UI, and context modules (#1047) 2026-03-17 18:36:20 -06:00
headless-events.ts refactor(headless): split 772-line god file into events, UI, and context modules (#1047) 2026-03-17 18:36:20 -06:00
headless-query.ts M001: The Minimal Machine — linear auto-loop, sole-authority state, sidecar queue, WorktreeResolver (#1419) 2026-03-19 14:56:00 -06:00
headless-ui.ts refactor(headless): split 772-line god file into events, UI, and context modules (#1047) 2026-03-17 18:36:20 -06:00
headless.ts fix: increase headless new-milestone timeout and limit investigation scope (#1230) 2026-03-18 13:54:34 -06:00
help-text.ts feat: add -w/--worktree CLI flag for isolated worktree sessions (#1247) 2026-03-18 14:57:25 -06:00
loader.ts feat: add extension manifest + registry for user-managed enable/disable (#1238) 2026-03-18 14:12:19 -06:00
logo.ts fix: abort squash-merge on conflict and stop auto-mode instead of looping (#merge-bug-fix) 2026-03-12 15:32:39 -06:00
mcp-server.ts feat: add VS Code extension scaffold and MCP server compiled module 2026-03-16 16:46:20 -05:00
models-resolver.ts refactor: remove unnecessary 'as any' casts, dead exports, and duplicate code (#786) 2026-03-16 21:47:04 -06:00
onboarding.ts feat: add anthropic-vertex provider for Claude on Vertex AI (#1533) 2026-03-19 23:14:13 -06:00
pi-migration.ts Merge pull request #151 from dbachelder/fix/pi-provider-reuse-and-extension-loading 2026-03-12 22:25:15 -06:00
remote-questions-config.ts feat: add GSD_HOME env var to override global ~/.gsd directory (#1566) 2026-03-20 08:29:01 -06:00
resource-loader.ts fix: robust node_modules symlink handling to prevent extension loading failures (#1762) 2026-03-21 09:19:43 -06:00
startup-timings.ts Improve startup performance with lazy extension loading (#1336) 2026-03-19 07:38:50 -06:00
tool-bootstrap.ts M001: The Minimal Machine — linear auto-loop, sole-authority state, sidecar queue, WorktreeResolver (#1419) 2026-03-19 14:56:00 -06:00
update-check.ts feat: add /gsd update slash command for in-session self-update (#964) 2026-03-17 16:13:02 -06:00
update-cmd.ts feat: add gsd update subcommand for self-update 2026-03-13 18:47:33 -03:00
welcome-screen.ts fix(splash): replace box corners with full-width bars for visual unity with auto-mode widget (#1654) 2026-03-20 15:42:18 -06:00
wizard.ts fix: Phase 1 quick wins — bug fixes, security hardening, and performance 2026-03-16 13:18:02 -05:00
worktree-cli.ts M001: The Minimal Machine — linear auto-loop, sole-authority state, sidecar queue, WorktreeResolver (#1419) 2026-03-19 14:56:00 -06:00
worktree-name-gen.ts feat: add -w/--worktree CLI flag for isolated worktree sessions (#1247) 2026-03-18 14:57:25 -06:00