You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Replace &>/dev/null with >/dev/null 2>&1 (POSIX)
- Require curl only (not wget) — matches official installer dependency
- Use bash instead of sh for piping installer (it requires bash)
- Quote ${TARGET} in su -c to prevent word splitting
- Pre-create ~/.local/state and ~/.claude directories
- Add 99-claude-onboarding.sh post-start hook to ensure
hasCompletedOnboarding is set when token auth is configured
Copy file name to clipboardExpand all lines: .devcontainer/CHANGELOG.md
+12-7Lines changed: 12 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,19 +10,15 @@
10
10
#### Skills
11
11
-**worktree** — New skill for git worktree creation, management, and cleanup. Covers `EnterWorktree` tool, `--worktree` CLI flag, `.worktreeinclude` setup, worktree naming conventions, cleanup lifecycle, and CodeForge integration (Project Manager auto-detection, agent isolation). Includes two reference files: manual worktree commands and parallel workflow patterns.
12
12
13
+
#### Claude Code Installation
14
+
-**Post-start onboarding hook** (`99-claude-onboarding.sh`) — ensures `hasCompletedOnboarding: true` in `.claude.json` when token auth is configured; catches overwrites from Claude Code CLI/extension that race with `postStartCommand`
15
+
13
16
### Changed
14
17
15
18
#### Claude Code Installation
16
19
-**Claude Code now installs as a native binary** — uses Anthropic's official installer (`https://claude.ai/install.sh`) via new `./features/claude-code-native` feature, replacing the npm-based `ghcr.io/anthropics/devcontainer-features/claude-code:1.0.5`
17
20
-**In-session auto-updater now works without root** — native binary at `~/.local/bin/claude` is owned by the container user, so `claude update` succeeds without permission issues
18
21
19
-
### Fixed
20
-
21
-
#### Claude Code Installation
22
-
-**Update script no longer silently discards errors** — background update output now captured to log file instead of being discarded via `&>/dev/null`
23
-
-**Update script simplified to native-binary-only** — removed npm fallback and `claude install` bootstrap code; added 60s timeout and transitional npm cleanup
24
-
-**Alias resolution simplified** — `_CLAUDE_BIN` now resolves directly to native binary path (removed npm and `/usr/local/bin` fallbacks)
25
-
26
22
#### System Prompt
27
23
-**`<git_worktrees>` section** — Updated to document Claude Code native worktree convention (`<repo>/.claude/worktrees/`) as the recommended approach alongside the legacy `.worktrees/` convention. Added `EnterWorktree` tool guidance, `.worktreeinclude` file documentation, and path convention comparison table.
28
24
@@ -59,6 +55,15 @@
59
55
60
56
### Fixed
61
57
58
+
#### Claude Code Installation
59
+
-**Update script no longer silently discards errors** — background update output now captured to log file instead of being discarded via `&>/dev/null`
60
+
-**Update script simplified to native-binary-only** — removed npm fallback and `claude install` bootstrap code; added 60s timeout and transitional npm cleanup
61
+
-**Alias resolution simplified** — `_CLAUDE_BIN` now resolves directly to native binary path (removed npm and `/usr/local/bin` fallbacks)
62
+
-**POSIX redirect** — replaced `&>/dev/null` with `>/dev/null 2>&1` in dependency check for portability
63
+
-**Installer shell** — changed `sh -s` to `bash -s` when piping the official installer (it requires bash)
64
+
-**Unquoted `${TARGET}`** — quoted variable in `su -c` command to prevent word splitting
65
+
-**Directory prep** — added `~/.local/state` and `~/.claude` pre-creation; consolidated `chown` to cover entire `~/.local` tree
66
+
62
67
#### Plugin Marketplace
63
68
-**`marketplace.json` schema fix** — changed all 11 plugin `source` fields from bare names (e.g., `"codeforge-lsp"`) to relative paths (`"./plugins/codeforge-lsp"`) so `claude plugin marketplace add` passes schema validation and all plugins register correctly
0 commit comments