diff --git a/claudecode/Chart.yaml b/claudecode/Chart.yaml index 680f0e76..b0a85afb 100644 --- a/claudecode/Chart.yaml +++ b/claudecode/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v2 -appVersion: '2.1.226' +appVersion: '2.1.229' description: Anthropic's official agentic coding CLI that lives in your terminal name: claudecode type: application -version: 0.1.15 +version: 0.1.17 diff --git a/claudecode/OlaresManifest.yaml b/claudecode/OlaresManifest.yaml index 42224162..11bb92a5 100644 --- a/claudecode/OlaresManifest.yaml +++ b/claudecode/OlaresManifest.yaml @@ -11,7 +11,7 @@ metadata: description: Anthropic's official agentic coding CLI that lives in your terminal appid: claudecode title: Claude Code - version: 0.1.15 + version: 0.1.17 categories: - Developer Tools - Productivity_v112 @@ -25,7 +25,7 @@ entrances: openMethod: window authLevel: internal spec: - versionName: '2.1.226' + versionName: '2.1.229' fullDescription: | **Overview** Claude Code is Anthropic's official agentic coding tool that lives in your terminal. It understands your codebase, executes routine tasks through natural language, and helps you move fast while staying in flow. @@ -54,22 +54,13 @@ spec: These vars are conditionally injected: blank strings and `false` toggles are *not* placed into the container env, so Claude Code sees them as truly unset (which is required — it treats `CLAUDE_CODE_USE_*` by presence, not value). upgradeDescription: | - **v0.1.15** + **v0.1.16** **Claude Code CLI** - - Pin install version from **2.1.191** to **2.1.226** (latest channel; `init-install-claude` uses chart `appVersion`). + - Pin install version from **2.1.226** to **2.1.229** (latest channel; `init-install-claude` uses chart `appVersion`). - **Base image (`beclab/harveyff-claudecode-base:0.5.7`, was 0.5.6)** - - Pre-install **certbot** + `python3-certbot` for Let's Encrypt / custom-domain TLS (same intent as opencode / clawdbot). - - Dockerfile: retry `apt-get update` and relax InRelease validity checks to avoid transient Debian mirror build failures. - - **Chart** - - Add `templates/certbot-wrapper.yaml`; `init-chmod-data` seeds `/opt/data/.config/letsencrypt/cli.ini` (RSA; writable config/work/logs under `/opt/data/letsencrypt/*`) and installs `~/.local/bin/certbot` so uid 1000 runs certbot without manual `--config-dir`. - - Bump all deployment image refs to **0.5.7**. - - **Upgrade / test** - - PVC and OAuth/API-key settings are preserved; Claude binary re-installs when the version sentinel changes. - - Verified on **olarestest001**: upload upgrade → `running`; `claude --version` → 2.1.226; certbot wrapper on PATH. + **Base image (`beclab/harveyff-claudecode-base:0.5.8`, was 0.5.7)** + - Baked `@olares/cli` upgraded to **1.12.7-cli.0** (from 1.12.6-cli.2). developer: Anthropic website: https://code.claude.com diff --git a/claudecode/docker/Dockerfile b/claudecode/docker/Dockerfile index 10b90568..d5352c2b 100644 --- a/claudecode/docker/Dockerfile +++ b/claudecode/docker/Dockerfile @@ -15,7 +15,7 @@ # Build & push: # docker buildx build \ # --platform linux/amd64,linux/arm64 \ -# -t beclab/harveyff-claudecode-base:0.5.7 \ +# -t beclab/harveyff-claudecode-base:0.5.8 \ # --push . # syntax=docker/dockerfile:1.7 @@ -25,7 +25,7 @@ # @olares/cli postinstall downloads the Go binary; copy vendor binary (not JS # wrapper) so the full verb set is available. skills CLI needs git to clone. FROM node:24-bookworm-slim AS olares-assets -ARG OLARES_CLI_NPM_VERSION=1.12.6-cli.2 +ARG OLARES_CLI_NPM_VERSION=1.12.7-cli.0 RUN set -eux; \ for i in 1 2 3 4 5; do \ diff --git a/claudecode/docker/README.md b/claudecode/docker/README.md index 1e91bab2..40ea41ec 100644 --- a/claudecode/docker/README.md +++ b/claudecode/docker/README.md @@ -45,13 +45,13 @@ Claude Code bundles its own. ```bash # Single-arch (local dev) -docker build -t beclab/harveyff-claudecode-base:0.5.7 . +docker build -t beclab/harveyff-claudecode-base:0.5.8 . # Multi-arch release (recommended, matches chart supportArch) docker buildx create --use --name claudecode-builder || true docker buildx build \ --platform linux/amd64,linux/arm64 \ - -t beclab/harveyff-claudecode-base:0.5.7 \ + -t beclab/harveyff-claudecode-base:0.5.8 \ --push . ``` diff --git a/claudecode/i18n/en-US/OlaresManifest.yaml b/claudecode/i18n/en-US/OlaresManifest.yaml index a68d2b67..21a210d4 100644 --- a/claudecode/i18n/en-US/OlaresManifest.yaml +++ b/claudecode/i18n/en-US/OlaresManifest.yaml @@ -29,19 +29,10 @@ spec: These vars are conditionally injected: blank strings and `false` toggles are *not* placed into the container env, so Claude Code sees them as truly unset (which is required — it treats `CLAUDE_CODE_USE_*` by presence, not value). upgradeDescription: | - **v0.1.15** + **v0.1.16** **Claude Code CLI** - - Pin install version from **2.1.191** to **2.1.226** (latest channel; `init-install-claude` uses chart `appVersion`). + - Pin install version from **2.1.226** to **2.1.229** (latest channel; `init-install-claude` uses chart `appVersion`). - **Base image (`beclab/harveyff-claudecode-base:0.5.7`, was 0.5.6)** - - Pre-install **certbot** + `python3-certbot` for Let's Encrypt / custom-domain TLS (same intent as opencode / clawdbot). - - Dockerfile: retry `apt-get update` and relax InRelease validity checks to avoid transient Debian mirror build failures. - - **Chart** - - Add `templates/certbot-wrapper.yaml`; `init-chmod-data` seeds `/opt/data/.config/letsencrypt/cli.ini` (RSA; writable config/work/logs under `/opt/data/letsencrypt/*`) and installs `~/.local/bin/certbot` so uid 1000 runs certbot without manual `--config-dir`. - - Bump all deployment image refs to **0.5.7**. - - **Upgrade / test** - - PVC and OAuth/API-key settings are preserved; Claude binary re-installs when the version sentinel changes. - - Verified on **olarestest001**: upload upgrade → `running`; `claude --version` → 2.1.226; certbot wrapper on PATH. + **Base image (`beclab/harveyff-claudecode-base:0.5.8`, was 0.5.7)** + - Baked `@olares/cli` upgraded to **1.12.7-cli.0** (from 1.12.6-cli.2). diff --git a/claudecode/i18n/zh-CN/OlaresManifest.yaml b/claudecode/i18n/zh-CN/OlaresManifest.yaml index 32085cb3..118c8e63 100644 --- a/claudecode/i18n/zh-CN/OlaresManifest.yaml +++ b/claudecode/i18n/zh-CN/OlaresManifest.yaml @@ -29,19 +29,10 @@ spec: 上述变量在 chart 中按条件注入:留空字符串或 `false` 时**不会**写入容器环境,Claude Code 会视其为真正"未设置"(必须如此——它对 `CLAUDE_CODE_USE_*` 的判断是按是否存在,而不是按值)。 upgradeDescription: | - **v0.1.15** + **v0.1.16** **Claude Code CLI** - - 安装版本由 **2.1.191** 升级至 **2.1.226**(latest 通道;`init-install-claude` 使用 chart `appVersion` 拉取)。 + - 安装版本由 **2.1.226** 升级至 **2.1.229**(latest 通道;`init-install-claude` 使用 chart `appVersion` 拉取)。 - **基础镜像(`beclab/harveyff-claudecode-base:0.5.7`,原 0.5.6)** - - 预装 **certbot** + `python3-certbot`,支持 Let's Encrypt / 自定义域名 TLS(与 opencode / clawdbot 同一套非 root 用法)。 - - Dockerfile:`apt-get update` 增加重试并放宽 InRelease 有效期校验,避免 Debian 镜像短暂不同步导致构建失败。 - - **Chart** - - 新增 `templates/certbot-wrapper.yaml`;`init-chmod-data` 写入 `/opt/data/.config/letsencrypt/cli.ini`(RSA;config/work/logs 位于 `/opt/data/letsencrypt/*`),并将 `~/.local/bin/certbot` 包装脚本安装到 PATH,uid 1000 可直接运行 certbot,无需手动传 `--config-dir`。 - - Deployment 中所有 init/主容器镜像统一为 **0.5.7**。 - - **升级与测试** - - 保留现有 PVC 与 OAuth/API Key 配置;版本 sentinel 变化时会重新安装 Claude 二进制。 - - 已在 **olarestest001** 验证:upload 升级 → `running`;`claude --version` → 2.1.226;certbot wrapper 可用。 + **基础镜像(`beclab/harveyff-claudecode-base:0.5.8`,原 0.5.7)** + - 镜像内置 `@olares/cli` 升级至 **1.12.7-cli.0**(原 1.12.6-cli.2)。 diff --git a/claudecode/templates/deployment.yaml b/claudecode/templates/deployment.yaml index 6bf52d3d..7e655848 100644 --- a/claudecode/templates/deployment.yaml +++ b/claudecode/templates/deployment.yaml @@ -37,6 +37,14 @@ spec: - | set -e mkdir -p /opt/data/.local/bin /opt/data/.claude/skills /opt/data/.install-state + # PATH prepends ~/.local/bin so a leftover olares-cli there (often a + # symlink into a cloned Olares tree on the PVC) shadows the image + # binary at /usr/local/bin. Relink every start; do not copy the + # ~85MiB binary and do not reorder PATH (npm -g installs must still + # win for tools the image does not ship). Target need not exist in + # this ubuntu init image — it is valid in the main container. + ln -sfn /usr/local/bin/olares-cli /opt/data/.local/bin/olares-cli + echo "[init-chmod-data] ~/.local/bin/olares-cli -> /usr/local/bin/olares-cli" # certbot (clawdbot-style): non-root defaults under $HOME=/opt/data; Olares TLS needs RSA. mkdir -p /opt/data/.config/letsencrypt \ /opt/data/letsencrypt/config \ @@ -71,7 +79,7 @@ spec: # Flatten Olares skills from /skills-staging into Claude Code's # user skills dir (~/.claude/skills = /opt/data/.claude/skills). - name: init-skills - image: "beclab/harveyff-claudecode-base:0.5.7" + image: "beclab/harveyff-claudecode-base:0.5.8" imagePullPolicy: IfNotPresent securityContext: runAsUser: 0 @@ -104,7 +112,7 @@ spec: # only writes under $HOME. A sentinel file makes subsequent # Pod starts skip the download. - name: init-install-claude - image: "beclab/harveyff-claudecode-base:0.5.7" + image: "beclab/harveyff-claudecode-base:0.5.8" imagePullPolicy: IfNotPresent securityContext: runAsUser: 1000 @@ -204,7 +212,7 @@ spec: # login / non-login / interactive / non-interactive shells all # see the claude binary on PATH. - name: claudecode - image: "beclab/harveyff-claudecode-base:0.5.7" + image: "beclab/harveyff-claudecode-base:0.5.8" imagePullPolicy: IfNotPresent workingDir: /opt/data securityContext: