diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 29599d87..e6d1d9ad 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -21,6 +21,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ dnsutils \ aggregate \ jq \ + nano \ + vim \ && apt-get clean && rm -rf /var/lib/apt/lists/* # Ensure default node user has access to /usr/local/share @@ -60,6 +62,10 @@ ENV PATH=$PATH:/usr/local/share/npm-global/bin # Set the default shell to zsh rather than sh ENV SHELL=/bin/zsh +# Set the default editor and visual +ENV EDITOR nano +ENV VISUAL nano + # Default powerline10k theme ARG ZSH_IN_DOCKER_VERSION=1.2.0 RUN sh -c "$(wget -O- https://github.com/deluan/zsh-in-docker/releases/download/v${ZSH_IN_DOCKER_VERSION}/zsh-in-docker.sh)" -- \ diff --git a/CHANGELOG.md b/CHANGELOG.md index 490313c1..da15b50b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,89 @@ # Changelog +## 1.0.62 + +- Added @-mention support with typeahead for custom agents. @ to invoke it +- Hooks: Added SessionStart hook for new session initialization +- /add-dir command now supports typeahead for directory paths +- Improved network connectivity check reliability + +## 1.0.61 + +- Transcript mode (Ctrl+R): Changed Esc to exit transcript mode rather than interrupt +- Settings: Added `--settings` flag to load settings from a JSON file +- Settings: Fixed resolution of settings files paths that are symlinks +- OTEL: Fixed reporting of wrong organization after authentication changes +- Slash commands: Fixed permissions checking for allowed-tools with Bash +- IDE: Added support for pasting images in VSCode MacOS using ⌘+V +- IDE: Added `CLAUDE_CODE_AUTO_CONNECT_IDE=false` for disabling IDE auto-connection +- Added `CLAUDE_CODE_SHELL_PREFIX` for wrapping Claude and user-provided shell commands run by Claude Code + +## 1.0.60 + +- You can now create custom subagents for specialized tasks! Run /agents to get started + +## 1.0.59 + +- SDK: Added tool confirmation support with canUseTool callback +- SDK: Allow specifying env for spawned process +- Hooks: Exposed PermissionDecision to hooks (including "ask") +- Hooks: UserPromptSubmit now supports additionalContext in advanced JSON output +- Fixed issue where some Max users that specified Opus would still see fallback to Sonnet + +## 1.0.58 + +- Added support for reading PDFs +- MCP: Improved server health status display in 'claude mcp list' +- Hooks: Added CLAUDE_PROJECT_DIR env var for hook commands + +## 1.0.57 + +- Added support for specifying a model in slash commands +- Improved permission messages to help Claude understand allowed tools +- Fix: Remove trailing newlines from bash output in terminal wrapping + +## 1.0.56 + +- Windows: Enabled shift+tab for mode switching on versions of Node.js that support terminal VT mode +- Fixes for WSL IDE detection +- Fix an issue causing awsRefreshHelper changes to .aws directory not to be picked up + +## 1.0.55 + +- Clarified knowledge cutoff for Opus 4 and Sonnet 4 models +- Windows: fixed Ctrl+Z crash +- SDK: Added ability to capture error logging +- Add --system-prompt-file option to override system prompt in print mode + +## 1.0.54 + +- Hooks: Added UserPromptSubmit hook and the current working directory to hook inputs +- Custom slash commands: Added argument-hint to frontmatter +- Windows: OAuth uses port 45454 and properly constructs browser URL +- Windows: mode switching now uses alt + m, and plan mode renders properly +- Shell: Switch to in-memory shell snapshot to fix file-related errors + +## 1.0.53 + +- Updated @-mention file truncation from 100 lines to 2000 lines +- Add helper script settings for AWS token refresh: awsAuthRefresh (for foreground operations like aws sso login) and awsCredentialExport (for background operation with STS-like response). + +## 1.0.52 + +- Added support for MCP server instructions + +## 1.0.51 + +- Added support for native Windows (requires Git for Windows) +- Added support for Bedrock API keys through environment variable AWS_BEARER_TOKEN_BEDROCK +- Settings: /doctor can now help you identify and fix invalid setting files +- `--append-system-prompt` can now be used in interactive mode, not just --print/-p. +- Increased auto-compact warning threshold from 60% to 80% +- Fixed an issue with handling user directories with spaces for shell snapshots +- OTEL resource now includes os.type, os.version, host.arch, and wsl.version (if running on Windows Subsystem for Linux) +- Custom slash commands: Fixed user-level commands in subdirectories +- Plan mode: Fixed issue where rejected plan from sub-task would get discarded + ## 1.0.48 - Fixed a bug in v1.0.45 where the app would sometimes freeze on launch @@ -17,7 +101,7 @@ - Fixed config file corruption issue by enforcing atomic writes - Updated prompt input undo to Ctrl+\_ to avoid breaking existing Ctrl+U behavior, matching zsh's undo shortcut - Stop Hooks: Fixed transcript path after /clear and fixed triggering when loop ends with tool call -- Custom slash commands: Restored namespacing in command names based on subdirectories. For example, .claude/frontend/component.md is now /frontend:component, not /component. +- Custom slash commands: Restored namespacing in command names based on subdirectories. For example, .claude/commands/frontend/component.md is now /frontend:component, not /component. ## 1.0.44 diff --git a/Script/run_devcontainer_claude_code.ps1 b/Script/run_devcontainer_claude_code.ps1 index 117202cf..5b99d7d8 100644 --- a/Script/run_devcontainer_claude_code.ps1 +++ b/Script/run_devcontainer_claude_code.ps1 @@ -37,6 +37,21 @@ param( Write-Host "--- DevContainer Startup & Connection Script ---" Write-Host "Using backend: $($Backend)" +# --- Prerequisite Check --- +Write-Host "Checking for required commands..." +try { + Get-Command $Backend -ErrorAction Stop | Out-Null + Write-Host "- $($Backend) command found." + Get-Command devcontainer -ErrorAction Stop | Out-Null + Write-Host "- devcontainer command found." +} +catch { + Write-Error "A required command is not installed or not in your PATH." + Write-Error "Please ensure '$($_.Exception.Message.Split(':')[0])' and 'devcontainer' are installed and accessible." + exit 1 +} + + # --- Backend-Specific Initialization --- if ($Backend -eq 'podman') { Write-Host "--- Podman Backend Initialization ---"