fix: replace $HOME/.claude/ paths during local install (#820)#852
fix: replace $HOME/.claude/ paths during local install (#820)#8520xLeathery wants to merge 10 commits intogsd-build:mainfrom
Conversation
Command shipped in a92512a but was missing from all documentation. Added to help.md (full reference + common workflows), README.md command table, and USER-GUIDE.md command reference.
Add centralized path resolution layer (paths.cjs) that enables milestone-scoped directories for parallel milestone work. All 11 lib files refactored to use resolvePlanningPaths() instead of hardcoded .planning/ paths. Key changes: - New paths.cjs: resolvePlanningPaths(cwd, milestoneOverride) resolves abs/rel paths based on ACTIVE_MILESTONE file or --milestone CLI flag - --milestone <name> CLI flag parsed in gsd-tools.cjs - New commands: milestone create/switch/list/status - All init commands output milestone, is_multi_milestone, planning_base - Legacy mode (no ACTIVE_MILESTONE) returns identical paths to before - Auto-migration: first milestone create copies existing global state - 25 new tests for paths and milestone commands (457 total, 0 failures)
Replace hardcoded .planning/ paths in bash commands and commit
file lists with init JSON variables ({state_path}, {roadmap_path},
{planning_base}/...). Workflows without init calls gain appropriate
init calls. Global paths (PROJECT.md, codebase/) left unchanged.
…tusline, and docs (gsd-build#291) Phase 5: polish for concurrent milestone execution. - Milestone-scoped commit prefixes in execute-plan.md (v2.0/08-02) - cmdMilestoneSwitch warns about in-progress work before switching - /gsd:switch-milestone workflow and command - Statusline shows active milestone in cyan [v2.0] - new-milestone.md calls milestone create for multi-milestone mode - Help and README updated with switch-milestone and concurrent docs
…itch-warning tests (gsd-build#291) - USER-GUIDE: add /gsd:switch-milestone, concurrent milestones section, multi-milestone directory layout - CHANGELOG: add [Unreleased] entry for concurrent milestone execution - planner-subagent-prompt.md: replace hardcoded .planning/ paths with milestone-aware template variables - 4 new tests: switch in-progress warning, idle switch, same-milestone switch, and auto-migration on first milestone create (461 total)
…ration (gsd-build#99) Add structured bug reporting lifecycle: report → triage → investigate → fix → resolve. - Skill file, workflow, and bug-report template - CLI commands: bug list/update/resolve, init bugs, scaffold bugs - Severity inference from keywords (critical/high/medium/low) - Diagnostic log capture (git state, error output, log files) - Optional GitHub issue creation via gh CLI - 13 new tests across 4 test suites - Registered in help, README, USER-GUIDE, CHANGELOG - STATE.md and progress workflow track active bugs
…ion (gsd-build#210) Add fourth model profile (adaptive) that auto-selects models per-plan based on complexity scoring. Includes medium tier alignment with balanced profile, keyword regex precision fixes, enriched plan context (type, depends_on), usage logging, verifier adaptive resolution, and additional scoring signals (TDD, dependencies, test files). 528 tests passing.
) resolveModelInternal was converting every 'opus' result to 'inherit' before returning it. 'inherit' tells Claude Code's Task tool to use the parent session's model — which defaults to Sonnet 4.6, silently running quality/balanced-profile agents on the wrong model. Pass 'opus' directly; Claude Code's Task tool resolves it to the current Opus version. Orgs that block Opus will now get a clear error instead of a silent Sonnet downgrade. - Remove opus → 'inherit' conversion from all 3 return sites in resolveModelInternal (core.cjs) - Update 7 test assertions and fix validValues set (core.test.cjs) - Update model-profiles.md, model-profile-resolution.md, and adaptive-model-selection.md to reflect the change
Installs GSD commands as Kimi skills to the XDG path
~/.config/agents/skills/gsd-<name>/SKILL.md (invoked via /skill:gsd-<name>)
and agents as dual-file YAML + system prompt under ~/.kimi/agents/.
- Full Claude→Kimi tool name mapping (kimi_cli.tools.file:ReadFile, etc.)
- MCP tools excluded from agent tool lists
- ${VAR} escaping in agent system prompts
- --kimi --local guard with clear error message
- KIMI_CONFIG_DIR / KIMI_SKILLS_DIR env overrides
- 25 new tests in tests/kimi-config.test.cjs (553 total, 0 failures)
The installer only rewrote ~/.claude/ but missed the $HOME/.claude/ variant used in bash command contexts, causing MODULE_NOT_FOUND errors for local installs. Centralizes all path replacement into replacePathPatterns() and applies it consistently across all 5 copy sites.
|
Please I get the same issue on Windows |
glittercowboy
left a comment
There was a problem hiding this comment.
Review: Split Required
The path replacement fix for local installs is needed — $HOME/.claude/ paths not being rewritten causes MODULE_NOT_FOUND for projects outside $HOME.
However, this PR is 4,403 additions across 68 files, and the actual fix is a small fraction of that. The bulk is shared with #850 and #845:
- Kimi CLI support
- Adaptive model profiles
- Bug reporting system
- Switch-milestone command
- Opus model resolution fix
These three PRs (#850, #852, #845) share ~95% of the same diff and will conflict massively with each other. Only one can merge cleanly.
Requested action: Please extract the $HOME/.claude/ path replacement fix into a standalone PR (just the installer changes + the path-replacement test). Then consolidate the shared features (Kimi, adaptive, bug reporting) into a single feature PR.
|
fyi I had already submitted a PR for this here: #842 |
What
Centralizes path replacement into
replacePathPatterns()and adds$HOME/.claude/handling across all 5 install copy sites.Why
182 occurrences of
$HOME/.claude/across 49 source files were never rewritten by the installer — only~/.claude/was replaced. This causesMODULE_NOT_FOUNDerrors for local installs and when$HOMEis empty in subagent shells.Testing
Checklist
Breaking Changes
None