claude-code-pilot 3.3.0 → 3.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,16 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [3.3.1] - 2026-06-30
9
+
10
+ Portability hotfix for local installs. Drop-in upgrade from v3.3.0.
11
+
12
+ ### Fixed
13
+ - **Local installs no longer hardcode the installing user's home directory into `.claude/settings.json`.** Hook commands and the statusLine for `--local` installs now use the `$CLAUDE_PROJECT_DIR/.claude/` prefix (resolved by Claude Code at hook runtime) instead of an absolute path like `/Users/<name>/Projects/<proj>/.claude/`. A committed or shared `.claude/` is now portable across machines and teammates, and hooks resolve correctly from monorepo subdirectories. `--global` installs are unchanged (still absolute). Regression introduced in v3.2.x by the monorepo-subdirectory fix (commit `1bf3ed4`).
14
+
15
+ ### Added
16
+ - `tests/lib/01-install-chain.test.js`: `install-local-portable-hook-paths` assertion — a `--local` install's settings.json contains no absolute `/Users/` path and uses the `$CLAUDE_PROJECT_DIR/.claude/` hook prefix.
17
+
8
18
  ## [3.3.0] - 2026-06-29
9
19
 
10
20
  The Resync II — a post-v3.2 audit + cherry-pick of high-value additions from the ECC (2.0.0-rc.1) and GSD (1.42.1) upstreams, behind three mandatory preflight gates, followed by a full GSD↔ECC coherence pass. Drop-in upgrade from v3.2.x.
package/bin/install.js CHANGED
@@ -42,7 +42,17 @@ const targetDir = isGlobal
42
42
  ? (process.env.CLAUDE_CONFIG_DIR || path.join(os.homedir(), '.claude'))
43
43
  : path.join(process.cwd(), '.claude');
44
44
  const locationLabel = isGlobal ? targetDir.replace(os.homedir(), '~') : '.claude/';
45
- const pathPrefix = `${targetDir.replace(/\\/g, '/')}/`;
45
+ // Portable prefix for installed content (settings.json hook commands, statusLine,
46
+ // and .md/.sh path references). For --global, hooks live under the user's home
47
+ // `.claude` with no project root to anchor to, so we use the absolute targetDir.
48
+ // For --local, we anchor to the `$CLAUDE_PROJECT_DIR` env var that Claude Code
49
+ // injects (absolute project root) at hook/command execution time. This resolves
50
+ // correctly from any monorepo subdirectory AND avoids baking the installing
51
+ // user's home directory into a committed/shared `.claude/` (portable across
52
+ // machines and teammates). See debug session: local-install-hardcoded-home-path.
53
+ const pathPrefix = isGlobal
54
+ ? `${targetDir.replace(/\\/g, '/')}/`
55
+ : '$CLAUDE_PROJECT_DIR/.claude/';
46
56
  const projectRoot = isGlobal ? os.homedir() : process.cwd();
47
57
 
48
58
  // --- Templates ---
package/manifest.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "3.3.0",
2
+ "version": "3.3.1",
3
3
  "bundled": {
4
4
  "gsd": {
5
5
  "version": "1.42.1",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-code-pilot",
3
- "version": "3.3.0",
3
+ "version": "3.3.1",
4
4
  "description": "Claude Code Pilot -- universal AI coding companion with spec-driven development, session persistence, and auto-setup.",
5
5
  "bin": {
6
6
  "claude-code-pilot": "bin/install.js"