diff --git a/.devcontainer/templates/settings.json b/.devcontainer/templates/settings.json index bf8fd04..77ce5c3 100644 --- a/.devcontainer/templates/settings.json +++ b/.devcontainer/templates/settings.json @@ -1,12 +1,8 @@ { "env": { - "ANTHROPIC_AUTH_TOKEN": "{{your_api_key}}", - "ANTHROPIC_BASE_URL": "https://open.bigmodel.cn/api/anthropic", "API_TIMEOUT_MS": "3000000", - "CLAUDE_CODE_AUTO_COMPACT_WINDOW": "200000", "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1", "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1", - "CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "75", "CLAUDE_CODE_NO_FLICKER": "1" }, "enabledPlugins": { diff --git a/member/vscode.chat.md b/member/vscode.chat.md index da13f4a..659ffc9 100644 --- a/member/vscode.chat.md +++ b/member/vscode.chat.md @@ -1,2 +1,118 @@ # vscode 的对话记录 + +## 2026-04-29 13:03:12 + +/glm-plan-usage:usage-query + + +## 2026-04-29 13:05:47 + +升级当前 vscode 的 claude code 插件到 2.1.123 版本. + + +## 2026-04-30 14:40:01 + +分析 /workspace/.devcontainer/.volumes/bin/runcc.sh 脚本。进行优化: + +1. 在 runcc.sh 同目录下创建一个 .env 文件,存储环境变量。这样可以更方便地管理和修改环境变量,而不需要直接编辑 runcc.sh 脚本。在启动的时候检查是否有这个文件,如果有就加载其中的环境变量。 +2. 分析 runcc.sh , 看看哪些需要从 .env 文件读取 +3. 支持 ANTHROPIC_BASE_URL , ANTHROPIC_AUTH_TOKEN 从 .env 读取,需要让 runcc.sh 检查并将这2个变量从 ~/.claude/settings.json 中去掉,并且在 runcc.sh 中添加代码来加载 .env 文件中的环境变量。 +4. 可以支持从 `https://open.bigmodel.cn/api/anthropic` 使用 GLM Coding Plan 和 从 `https://api.deepseek.com/anthropic` 使用 DeepSeek。 +5. 预留支持其他厂家模型的使用方式。 + + +## 2026-04-30 14:55:10 + +调整 @.devcontainer/.volumes/bin/runcc.sh , 直接通过 CC_PROVIDER 来判断使用哪个变量作为模型的 base_url, auth_token . 例如, 如果 CC_PROVIDER=glm, 则使用 GLM_BASE_URL, GLM_AUTH_TOKEN, 如果 CC_PROVIDER=deepseek , 则使用 DEEPSEEK_BASE_URL, DEEPSEEK_AUTH_TOKEN 依次类推. 这样就不需要一个独立的 CUSTOM_BASE_URL 和 CUSTOM_AUTH_TOKEN + + +## 2026-04-30 15:05:22 + +由于 glm 的上下文是 200k, deepseek 的上下文是 1m , 需要调整 .env, runcc.sh 和 @scripts/status-line.sh + + +## 2026-04-30 15:12:24 + +分别执行 runcc.sh 和 runcc.sh -p deepseek 后, 通过 /content 检查,发现 设置的上下文窗口都是 200k + + +## 2026-04-30 15:13:41 + +你是谁? + + +## 2026-04-30 15:14:08 + +检查当前上下文窗口设置 + + +## 2026-04-30 15:21:21 + +去掉 setting.json 中的 CLAUDE_CODE_AUTO_COMPACT_WINDOW , 这不通用,不能实现通过 runcc.sh 分别启动 glm 和 deepseek . 需要想办法 通过 runcc.sh 和 .env 来处理. + + +## 2026-04-30 15:27:54 + +在 运行 runcc.sh 的时候,也可能没有 tmux 环境, 请检查在无 tmux 下是否生效. + + +## 2026-04-30 15:29:29 + +执行后还是存在问题: + + ▐▛███▜▌ Claude Code v2.1.123 +▝▜█████▛▘ deepseek-v4-pro with max effort · API Usage Billing + ▘▘ ▝▝ /workspace + +❯ /context + ⎿ Context Usage + ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ deepseek-v4-pro + ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛀ ⛀ 43.8k/200k tokens (22%) + ⛁ ⛁ ⛀ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ + ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ Estimated usage by category + ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛁ System prompt: 6.8k tokens (3.4%) + ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛁ System tools: 19k tokens (9.5%) + ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛁ MCP tools: 13.2k tokens (6.6%) + ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛁ Custom agents: 674 tokens (0.3%) + ⛶ ⛶ ⛶ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛁ Memory files: 2.4k tokens (1.2%) + ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛁ Skills: 1.7k tokens (0.8%) + ⛁ Messages: 84 tokens (0.0%) + ⛶ Free space: 123.2k (61.6%) + ⛝ Autocompact buffer: 33k tokens (16.5%) + + +## 2026-04-30 15:36:37 + +我执行 runcc.sh -p deepseek 后, 发现 setting.json 中 CLAUDE_CODE_AUTO_COMPACT_WINDOW 还是 200000 + + +## 2026-04-30 15:40:37 + +runcc.sh 中 SETTINGS_FILE 变量是否会造成影响? + + +## 2026-04-30 15:42:41 + +在 status-line.sh 显示的状态栏中,不管是启动 glm 还是 deepseek , 都没有在模型名字后正确的显示当前上下文大小. "版本:v2.1.123 | 模型:glm-5.1 | 上下文:61%" + + +## 2026-04-30 15:46:38 + +使用 tmux 通过 runcc.sh -p deepseek 启动一个实例, 检查 上下文窗口是否的确是 1M , 注意使用 `/content` 命令验证. + + +## 2026-04-30 15:52:23 + +使用 tmux 运行 runcc.sh 和 runcc.sh -p deepseek 分别测试,验证上下文窗口 + + +## 2026-04-30 16:08:02 + +在 status-line.sh 中对做了 DISABLE_COMPACT 的供应商模型,进行特别的标记,以提醒使用者这个情况,以便于使用者手动执行压缩. + + +## 2026-04-30 16:10:58 + +使用 tmux 分别对 runcc.sh , runcc.sh -p deepseek 进行测试, 看是否符合修改要求. + diff --git a/scripts/status-line.sh b/scripts/status-line.sh index aa07725..e85215a 100755 --- a/scripts/status-line.sh +++ b/scripts/status-line.sh @@ -3,15 +3,28 @@ input=$(cat) # Extract fields using jq -MODEL=$(echo "$input" | jq -r '.model.display_name' | sed 's/\[1m\]/[200k]/') +MODEL=$(echo "$input" | jq -r '.model.display_name') DIR=$(echo "$input" | jq -r '.workspace.current_dir') V=$(echo "$input" | jq -r '.version') +# 上下文窗口大小(由 runcc.sh 根据 Provider 设置并写入 settings.json, +# 默认 200000。GLM=200k, DeepSeek=1M) +CC_CONTEXT_WINDOW="${CC_CONTEXT_WINDOW:-200000}" + +# 格式化上下文窗口: 200000→200k, 1000000→1M +if [ "$CC_CONTEXT_WINDOW" -ge 1000000 ]; then + CW_DISPLAY="$((CC_CONTEXT_WINDOW / 1000000))M" +else + CW_DISPLAY="$((CC_CONTEXT_WINDOW / 1000))k" +fi + +# 模型名后追加上下文窗口大小(避免重复追加) +if [[ "$MODEL" != *"$CW_DISPLAY"* ]]; then + MODEL="${MODEL} [${CW_DISPLAY}]" +fi + # 计算上下文使用占比 -# JSON 中 used_percentage 是相对模型实际窗口(如 GLM 的 1M)计算的, -# 但 /context 命令显示的是相对 auto-compact 窗口(200k)的占比。 -# 因此需要用实际 token 数 / 200000 来获得正确的百分比。 -AUTO_COMPACT_WINDOW=200000 +AUTO_COMPACT_WINDOW="$CC_CONTEXT_WINDOW" PCT=$(echo "$input" | jq -r --argjson w "$AUTO_COMPACT_WINDOW" ' (( (.context_window.current_usage.input_tokens // 0) + @@ -34,4 +47,10 @@ elif git rev-parse --git-dir >/dev/null 2>&1; then REMOTE="🌐 $(git remote get-url origin 2>/dev/null)" fi -echo "版本:v$V | 模型:$MODEL | 上下文:${PCT}%" \ No newline at end of file +# DISABLE_COMPACT 提醒:无自动压缩,需手动 /compact 或 /clear +COMPACT_HINT="" +if [ "${DISABLE_COMPACT:-0}" = "1" ]; then + COMPACT_HINT=" | ⚠无自动压缩" +fi + +echo "版本:v$V | 模型:$MODEL | 上下文:${PCT}%${COMPACT_HINT}"