From 665001fe4ea5796952e9cde320984b8f78143b53 Mon Sep 17 00:00:00 2001 From: Eric Lee Date: Mon, 6 Jul 2026 17:12:35 -0700 Subject: [PATCH] chore: release v1.0.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bump version to 1.0.0 (pyproject / installer / TUI banner) and add the v1.0.0 news item across README, the docs/NEWS.md archive, and the Chinese README: 86 commits since v0.7.0 (#580-#668) wire the big subsystems end-to-end — goal-directed autonomy (/goal + /subgoal, Monitor tool, coordinator mode, /advisor restored), the hooks pipeline live in production, MCP completion (OAuth auth flow, live tool refresh, server instructions, `clawcodex mcp serve`), a hardened permission system, Claude Code look & feel on the TUI, and the reliability batch (compaction, retry + model fallback, parallel fan-out, bg-agent kill). Also: backfill the missing v0.7.0 item into docs/NEWS.md, sync the Chinese README news section to the English top-10, re-sync uv.lock (stale 0.5.0 entry + zhipuai removal), and link TODOS.md from both READMEs. Codebase stats refreshed: 1,170 Python files, 256,909 lines. Co-Authored-By: Claude Fable 5 --- README.md | 4 ++-- docs/NEWS.md | 2 ++ docs/i18n/README_ZH.md | 13 +++++++------ install.sh | 2 +- pyproject.toml | 2 +- ui-tui/src/gatewayClient.ts | 2 +- uv.lock | 37 +------------------------------------ 7 files changed, 15 insertions(+), 47 deletions(-) diff --git a/README.md b/README.md index b791241f8..630ae4a69 100644 --- a/README.md +++ b/README.md @@ -101,6 +101,7 @@ The `session`, `settings`, and `env` blocks are optional — sensible defaults a ## 📰 News +- **2026-07-06 (v1.0.0):** **ClawCodex v1.0.0 — the 1.0 release: goal-directed autonomy, hooks & MCP wired for production, and a hardened permission system** — 86 commits since v0.7.0 (#580–#668) finish wiring the big subsystems end-to-end and graduate ClawCodex to 1.0. **Goal-directed autonomy:** the `/goal` + `/subgoal` completion-condition loop keeps the agent working until an LLM judge confirms the goal is actually met (#664), the new Monitor tool streams long-running shell output with backpressure (#665), background-bash completion notifications (#663), coordinator mode wired end-to-end on the live paths (#634), and `/advisor` token-efficient worker/reviewer pairing restored on the Ink TUI (#668). **Hooks live in production:** configured hooks now actually fire — bootstrap Hooks abstraction (#583), UserPromptSubmit (#597), multi-scope + lifecycle hooks (#595), `if` pre-filters (#643), PreToolUse `permissionDecision` (#655), PermissionRequest hooks at the ask seam (#637), MCP elicitation hooks (#659), and teammate TaskCompleted / TeammateIdle stop hooks (#642). **MCP completion:** OAuth server auth via the `/mcp` flow (#662), live `tools/list_changed` refresh (#598, #604), server instructions injected into the system prompt (#654), and `clawcodex mcp serve` re-exposes ClawCodex tools as an MCP stdio server (#635). **Permission hardening:** readable approval boxes with broadenable, persistent session grants (#608–#611), compound-command permission parity (#622), Bash normalization hardening (#626), `disableBypassPermissionsMode` lockdown (#660), an honest refuse-to-start unsandboxed guard (#658), subprocess secret-scrubbing (#650), and a flag-gated LLM security-classifier lane for auto mode (#589). **TUI maturity:** faithful Claude Code look & feel — diff rendering, tool-call transcript, task list, composer + permission-mode badge, busy line (#612–#616) — plus a minimal vim editing engine (#667), Esc-interrupt with a defanged Ctrl+C (#625), fully editable multi-line input (#621), slash-command argument hints (#631), a persistent session-stats line (#657), and restored `/cost`, `/skills`, and `/model` (#627, #629, #630). **Reliability:** the production compaction pipeline is wired and auto-compact actually applies its result (#587, #607), full retry lane + model fallback + message-history caching (#586), parallel Agent fan-out with the concurrency-cap deadlock fixed (#590), killing a background agent really stops the run (#606), and output styles work end-to-end (#640). Codebase stats: 1,170 Python files, **256,909 lines** (up from 233,520 lines on 2026-06-11). - **2026-06-30 (v0.7.0):** **ClawCodex v0.7.0 — TUI auto-theming, faithful inline rendering & a Claude-Code-style tool trail** — the Ink TUI now detects your terminal's background color (OSC 11) on startup and selects the light/dark theme to match, so text stays readable on any terminal with no env var needed (#577). Inline mode renders *truly* inline like Claude Code: no screen wipe on launch, and no overlap with prior terminal output on startup or with the returning shell prompt on exit (#573, #575). The tool trail reads Claude-style — workspace-relative paths (`Read(src/foo.ts)`), `Grep(pattern)` labels, and a `Read N lines` result collapse (#574) — and the banner gains a 🦞 mascot with brighter secondary text on dark themes (#576). - **2026-06-24 (v0.6.0):** **ClawCodex v0.6.0 — interactive TUI REPL parity** — a batch of input ports brings the Python REPL to parity with the ink reference: a working slash-command menu (execute / complete / filter like the ink REPL), the sparkle spinner with a live token + elapsed busy row, context-aware prompt footer hints (interrupt / bash / grammar), the `?` shortcuts help panel, an `@` file-mention dropdown with in-place splice, double-press Ctrl+C / Ctrl+D to exit, Ctrl+R history search + double-Esc clear-draft, a `[Pasted text #N +K lines]` large-paste placeholder, and the completed command queue (drain queued prompts + dim preview). Login docs now list all 25 providers (#383). - **2026-06-23:** **One-click installer** — `curl -fsSL https://clawcodex.app/install.sh | bash` installs uv (no sudo), provisions Python 3.10+, clones to `~/.clawcodex`, creates a lock-pinned venv, and registers `clawcodex` on PATH; ships status / doctor / verify / update / uninstall subcommands, is safe to re-run, and works on macOS / Linux / WSL. @@ -110,8 +111,6 @@ The `session`, `settings`, and `env` blocks are optional — sensible defaults a - **2026-06-11:** **Codebase stats** — Total Python files: 1,093 files; Total Lines of Python Code: **233,520 lines** (up from 213,777 lines on 2026-05-29; ~+19.7k lines from the interactive command-system batch, the dynamic workflow engine + `/deep-research`, and the Tavily web-tooling refresh). - **2026-06-10 to 2026-06-11:** **Dynamic workflow engine + `/deep-research` (#262–#264, #266–#271)** — Python workflow engine core (`agent()`/`parallel()`/`pipeline()`/`phase()`, journaling, resume) wired end-to-end: Workflow tool, `/workflows` TUI dialog + status-line pill, per-agent retry, worktree isolation, result delivery, and the bundled `/deep-research` harness registered as a slash command. Reliability: LLM read timeout applied centrally to all openai-compatible providers (#269), parallel agents no longer serialize on the event loop (#270), and the deep-research synthesize step forbids tools so the report-writer can't loop (#271). Follow-ups: workflow max-turns cap fix (#272), deep-research verdict-enum fix (#273), rich `/workflows` live monitor with phase progress + per-agent stats (#287). - **2026-06-10:** **Web tooling refresh (#265)** — dead DuckDuckGo scraping replaced with a Tavily-backed WebSearch plus config-backed secrets storage; WebFetch rebuilt with deterministic markdown/text/html extraction (borrowed from opencode). -- **2026-05-30 to 2026-06-09:** **Interactive command-system parity (#230–#261)** — interactive ports of `/theme`, `/effort`, `/model`, `/logo`, `/mcp`, `/tasks`, `/diff`, `/export`, `/output-style`, `/statusline`, `/release-notes`, `/copy`, `/vim`, `/memory`, `/stickers`, and `/rename`, built on a new prompt-text primitive and interactive command bridge; skill registration and model tool-exposure wiring; the session-persistence producer (`SessionPersister` + agent-bridge wiring); plus extended thinking support (#249) and a model error-swallow fix (#250). -- **2026-05-29:** **Codebase stats** — Total Python files: 977 files; Total Lines of Python Code: **213,777 lines** (up from 183,768 lines on 2026-05-21; ~+30k lines from the remote-bridge parity port (phases 0–18) plus the `/buddy` companion subsystem and the CLI transport layer). 📚 Older items have moved to the full **[News archive](docs/NEWS.md)**. @@ -593,6 +592,7 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines. - **[CONTRIBUTING.md](CONTRIBUTING.md)** — Development guide - **[TESTING.md](docs/guide/TESTING.md)** — Testing guide - **[CHANGELOG.md](CHANGELOG.md)** — Version history +- **[TODOS.md](TODOS.md)** — Known gaps and deferred work *** diff --git a/docs/NEWS.md b/docs/NEWS.md index 0b73552fc..2016d6682 100644 --- a/docs/NEWS.md +++ b/docs/NEWS.md @@ -2,6 +2,8 @@ Full news history for ClawCodex. The [README News section](../README.md#-news) keeps only the 10 most recent items. +- **2026-07-06 (v1.0.0):** **ClawCodex v1.0.0 — the 1.0 release: goal-directed autonomy, hooks & MCP wired for production, and a hardened permission system** — 86 commits since v0.7.0 (#580–#668) finish wiring the big subsystems end-to-end and graduate ClawCodex to 1.0. **Goal-directed autonomy:** the `/goal` + `/subgoal` completion-condition loop keeps the agent working until an LLM judge confirms the goal is actually met (#664), the new Monitor tool streams long-running shell output with backpressure (#665), background-bash completion notifications (#663), coordinator mode wired end-to-end on the live paths (#634), and `/advisor` token-efficient worker/reviewer pairing restored on the Ink TUI (#668). **Hooks live in production:** configured hooks now actually fire — bootstrap Hooks abstraction (#583), UserPromptSubmit (#597), multi-scope + lifecycle hooks (#595), `if` pre-filters (#643), PreToolUse `permissionDecision` (#655), PermissionRequest hooks at the ask seam (#637), MCP elicitation hooks (#659), and teammate TaskCompleted / TeammateIdle stop hooks (#642). **MCP completion:** OAuth server auth via the `/mcp` flow (#662), live `tools/list_changed` refresh (#598, #604), server instructions injected into the system prompt (#654), and `clawcodex mcp serve` re-exposes ClawCodex tools as an MCP stdio server (#635). **Permission hardening:** readable approval boxes with broadenable, persistent session grants (#608–#611), compound-command permission parity (#622), Bash normalization hardening (#626), `disableBypassPermissionsMode` lockdown (#660), an honest refuse-to-start unsandboxed guard (#658), subprocess secret-scrubbing (#650), and a flag-gated LLM security-classifier lane for auto mode (#589). **TUI maturity:** faithful Claude Code look & feel — diff rendering, tool-call transcript, task list, composer + permission-mode badge, busy line (#612–#616) — plus a minimal vim editing engine (#667), Esc-interrupt with a defanged Ctrl+C (#625), fully editable multi-line input (#621), slash-command argument hints (#631), a persistent session-stats line (#657), and restored `/cost`, `/skills`, and `/model` (#627, #629, #630). **Reliability:** the production compaction pipeline is wired and auto-compact actually applies its result (#587, #607), full retry lane + model fallback + message-history caching (#586), parallel Agent fan-out with the concurrency-cap deadlock fixed (#590), killing a background agent really stops the run (#606), and output styles work end-to-end (#640). Codebase stats: 1,170 Python files, **256,909 lines** (up from 233,520 lines on 2026-06-11). +- **2026-06-30 (v0.7.0):** **ClawCodex v0.7.0 — TUI auto-theming, faithful inline rendering & a Claude-Code-style tool trail** — the Ink TUI now detects your terminal's background color (OSC 11) on startup and selects the light/dark theme to match, so text stays readable on any terminal with no env var needed (#577). Inline mode renders *truly* inline like Claude Code: no screen wipe on launch, and no overlap with prior terminal output on startup or with the returning shell prompt on exit (#573, #575). The tool trail reads Claude-style — workspace-relative paths (`Read(src/foo.ts)`), `Grep(pattern)` labels, and a `Read N lines` result collapse (#574) — and the banner gains a 🦞 mascot with brighter secondary text on dark themes (#576). - **2026-06-24 (v0.6.0):** **ClawCodex v0.6.0 — interactive TUI REPL parity** — a batch of input ports brings the Python REPL to parity with the ink reference: a working slash-command menu (execute / complete / filter like the ink REPL), the sparkle spinner with a live token + elapsed busy row, context-aware prompt footer hints (interrupt / bash / grammar), the `?` shortcuts help panel, an `@` file-mention dropdown with in-place splice, double-press Ctrl+C / Ctrl+D to exit, Ctrl+R history search + double-Esc clear-draft, a `[Pasted text #N +K lines]` large-paste placeholder, and the completed command queue (drain queued prompts + dim preview). Login docs now list all 25 providers (#383). - **2026-06-23:** **One-click installer** — `curl -fsSL https://clawcodex.app/install.sh | bash` installs uv (no sudo), provisions Python 3.10+, clones to `~/.clawcodex`, creates a lock-pinned venv, and registers `clawcodex` on PATH; ships status / doctor / verify / update / uninstall subcommands, is safe to re-run, and works on macOS / Linux / WSL. - **2026-06-21:** **18 new LLM providers — the registry grows 7 → 25 (#377)** — a data-driven `ProviderSpec` registry adds 18 OpenAI-compatible backends (nvidia-nim, fireworks, together, moonshot/Kimi, novita, siliconflow, deepinfra, stepfun, arcee, huggingface, volcengine, xiaomi-mimo, atlascloud, wanjie-ark, plus local ollama / vllm / sglang) alongside the hand-written providers; alias-aware config resolution, standard env-var key fallback (e.g. `TOGETHER_API_KEY`), and keyless local servers. diff --git a/docs/i18n/README_ZH.md b/docs/i18n/README_ZH.md index 2f39b6bca..6e9295291 100644 --- a/docs/i18n/README_ZH.md +++ b/docs/i18n/README_ZH.md @@ -63,16 +63,16 @@ python -m src.cli --dangerously-skip-permissions # 启动 REPL ## 📰 新闻 +- **2026-07-06(v1.0.0):** **ClawCodex v1.0.0 —— 1.0 正式版:目标驱动的自主性、hooks 与 MCP 的生产级接线、强化的权限系统** —— 自 v0.7.0 以来的 86 个提交(#580–#668)完成了各大子系统的端到端接线,ClawCodex 正式升级到 1.0。**目标驱动的自主性:** `/goal` + `/subgoal` 完成条件循环让 agent 持续工作,直到 LLM 评审确认目标真正达成(#664);新的 Monitor 工具以带背压的方式流式输出长时间运行的 shell 日志(#665);后台 bash 完成通知(#663);coordinator 模式在生产路径端到端接通(#634);`/advisor` 省 token 的 worker/reviewer 搭档模式在 Ink TUI 上恢复(#668)。**Hooks 进入生产:** 配置的 hooks 现在真正生效 —— bootstrap Hooks 抽象(#583)、UserPromptSubmit(#597)、多作用域 + 生命周期 hooks(#595)、`if` 预过滤(#643)、PreToolUse `permissionDecision`(#655)、权限询问点的 PermissionRequest hooks(#637)、MCP elicitation hooks(#659),以及 teammate TaskCompleted / TeammateIdle 停止 hooks(#642)。**MCP 补全:** 通过 `/mcp` 流程完成 OAuth 服务器认证(#662)、`tools/list_changed` 实时刷新(#598、#604)、服务器说明注入系统提示词(#654),`clawcodex mcp serve` 将 ClawCodex 工具重新暴露为 MCP stdio 服务器(#635)。**权限强化:** 可读的批准框与可扩展的持久会话授权(#608–#611)、复合命令权限对齐(#622)、Bash 归一化强化(#626)、`disableBypassPermissionsMode` 锁定(#660)、诚实的拒绝启动无沙箱守卫(#658)、子进程密钥擦除(#650),以及 auto 模式下由 flag 控制的 LLM 安全分类器通道(#589)。**TUI 成熟度:** 忠实还原 Claude Code 的观感 —— diff 渲染、工具调用记录、任务列表、composer + 权限模式徽章、busy 行(#612–#616)——外加精简的 vim 编辑引擎(#667)、Esc 中断 + 去武装的 Ctrl+C(#625)、完全可编辑的多行输入(#621)、斜杠命令参数提示(#631)、常驻会话统计行(#657),以及恢复的 `/cost`、`/skills` 与 `/model`(#627、#629、#630)。**可靠性:** 生产压缩管线接通、auto-compact 真正应用其结果(#587、#607),完整重试通道 + 模型回退 + 消息历史缓存(#586),并行 Agent 扇出并修复并发上限死锁(#590),杀死后台 agent 会真正停止运行(#606),输出样式端到端可用(#640)。代码库统计:Python 文件 1,170 个,**256,909 行**(高于 2026-06-11 的 233,520 行)。 +- **2026-06-30(v0.7.0):** **ClawCodex v0.7.0 —— TUI 自动主题、忠实的内联渲染与 Claude Code 风格的工具轨迹** —— Ink TUI 启动时会探测终端背景色(OSC 11)并自动匹配明/暗主题,任何终端上文字都清晰可读、无需环境变量(#577)。内联模式像 Claude Code 一样*真正*内联渲染:启动不清屏,启动时不与之前的终端输出重叠、退出时不与返回的 shell 提示符重叠(#573、#575)。工具轨迹采用 Claude 风格 —— 工作区相对路径(`Read(src/foo.ts)`)、`Grep(pattern)` 标签与 `Read N lines` 结果折叠(#574)——横幅新增 🦞 吉祥物,暗色主题下的次要文字更亮(#576)。 +- **2026-06-24(v0.6.0):** **ClawCodex v0.6.0 —— 交互式 TUI REPL 对齐** —— 一批输入侧移植让 Python REPL 与 ink 参考实现对齐:可用的斜杠命令菜单(像 ink REPL 一样执行 / 补全 / 过滤)、带实时 token 数 + 已用时长忙碌行的星光 spinner、上下文感知的提示符底部提示(中断 / bash / 语法)、`?` 快捷键帮助面板、`@` 文件提及下拉框(原位拼接)、双击 Ctrl+C / Ctrl+D 退出、Ctrl+R 历史搜索 + 双击 Esc 清空草稿、`[Pasted text #N +K lines]` 大段粘贴占位符,以及完成的命令队列(排空排队的提示 + 暗色预览)。登录文档现在列出全部 25 个 provider(#383)。 +- **2026-06-23:** **一键安装器** —— `curl -fsSL https://clawcodex.app/install.sh | bash` 自动安装 uv(无需 sudo)、准备 Python 3.10+、克隆到 `~/.clawcodex`、创建锁定版本的 venv,并把 `clawcodex` 注册到 PATH;附带 status / doctor / verify / update / uninstall 子命令,可安全重复运行,支持 macOS / Linux / WSL。 +- **2026-06-21:** **新增 18 个 LLM provider —— 注册表从 7 增至 25(#377)** —— 数据驱动的 `ProviderSpec` 注册表在手写 provider 之外新增 18 个 OpenAI 兼容后端(nvidia-nim、fireworks、together、moonshot/Kimi、novita、siliconflow、deepinfra、stepfun、arcee、huggingface、volcengine、xiaomi-mimo、atlascloud、wanjie-ark,以及本地 ollama / vllm / sglang);支持别名感知的配置解析、标准环境变量密钥回退(如 `TOGETHER_API_KEY`)与免密钥的本地服务器。 +- **2026-06-18:** **DeepSeek 前缀缓存利用 —— 巨大的 token 成本优势(#363)** —— ClawCodex 现在让请求前缀在多轮之间保持**字节级稳定**,使 DeepSeek 的自动 prompt 前缀缓存覆盖整个 `system + tools + history` 区段。每请求可变的部分(env、可变的 `MEMORY.md` 正文、plan 模式等)被移到对话历史*之后*的尾部 ``,即使 memory/env 变化也不会击穿缓存前缀。同时注册 DeepSeek 的 **1M token 上下文窗口**,把其 prompt 缓存用量映射到 Anthropic 的 `cache_read_input_tokens` 约定,并在 `/cost` 中展示每模型的**缓存命中率**与成本。**为什么意义重大 —— token 经济学:** Claude Fable 5 每 1M 输入/输出 token 收费 **$10 / $50**,而 **DeepSeek-V4-Pro 仅为 $0.435 / $0.87** —— 输入已**便宜约 23×**、输出**便宜约 57×**。由于**缓存命中的输入仅按正常输入价的 10% 计费**,agentic 编码实际产生的长上下文会话每 1M 输入 token 只需**约 $0.0435** —— 比 Fable 5 的输入**便宜约 230×**。ClawCodex 在这里解锁的 token 效率是**巨大的**。全部逻辑仅对 `deepseek` provider 生效 —— 其他 provider 的请求逐字节不变。后续修复:被截断的工具调用参数 JSON 现在会在共享的 OpenAI 兼容层尽力恢复,DeepSeek 流中断时保留部分工具参数而不是丢弃为 `{}`(#364)。 - **2026-06-16:** **Z.ai GLM-5.2 支持(#343)** —— 新增 `zai` provider,对接 Z.ai 的 OpenAI 兼容 GLM 编程套餐(`https://api.z.ai/api/coding/paas/v4`),提供 `GLM-5.1` 与 `GLM-5.2` 预览版;GLM-5.2 的编码能力可比肩 Claude Opus 4.7。首个用 GLM-5.2 端到端生成的应用——一个 [2026 世界杯介绍页](../../demos/wc26-intro/index.html)(动效首屏 + 实时倒计时、三个主办国、16 座球场、赛制说明与破纪录数据)。 - **2026-06-11:** **代码库统计** —— Python 文件总数:1,093 个;Python 代码总行数:**233,520 行**(高于 2026-05-29 的 213,777 行;新增约 1.97 万行,主要来自交互式命令系统批次、动态 workflow 引擎 + `/deep-research`,以及 Tavily 网络工具链更新)。 - **2026-06-10 至 2026-06-11:** **动态 workflow 引擎 + `/deep-research`(#262–#264、#266–#271)** —— Python workflow 引擎核心(`agent()`/`parallel()`/`pipeline()`/`phase()`、运行日志、断点恢复)完成端到端接线:Workflow 工具、`/workflows` TUI 对话框 + 状态栏指示、按 agent 重试、worktree 隔离、结果投递,以及注册为斜杠命令的内置 `/deep-research` 研究工作流。可靠性方面:LLM 读取超时统一应用到所有 openai 兼容 provider(#269),并行 agent 不再在事件循环上串行执行(#270),deep-research 的 synthesize 步骤禁用工具、避免报告撰写 agent 陷入循环(#271)。后续修复:workflow max-turns 上限修复(#272)、deep-research verdict 枚举修复(#273)、带阶段进度与各 agent 统计的 `/workflows` 实时监控(#287)。 - **2026-06-10:** **Web 工具链更新(#265)** —— 用基于 Tavily 的 WebSearch 取代已失效的 DuckDuckGo 抓取,并新增基于配置文件的密钥存储;WebFetch 重写为确定性的 markdown/text/html 提取(借鉴 opencode)。 -- **2026-05-30 至 2026-06-09:** **交互式命令系统对齐(#230–#261)** —— 交互式移植 `/theme`、`/effort`、`/model`、`/logo`、`/mcp`、`/tasks`、`/diff`、`/export`、`/output-style`、`/statusline`、`/release-notes`、`/copy`、`/vim`、`/memory`、`/stickers` 与 `/rename`,构建于新的 prompt-text 原语与交互式命令桥之上;技能注册与模型工具暴露接线;会话持久化生产者(`SessionPersister` + agent-bridge 接线);外加扩展思考支持(#249)与模型错误吞噬修复(#250)。 -- **2026-05-29:** **代码库统计** —— Python 文件总数:977 个;Python 代码总行数:**213,777 行**(高于 2026-05-21 的 183,768 行;新增约 3 万行,来自远程桥接对齐移植(阶段 0–18)、`/buddy` 虚拟伙伴子系统与 CLI 传输层)。 -- **2026-05-29:** **远程桥接对齐 + CLI 传输(#200–#226)** —— 完成远程控制桥接阶段 0–18 的完整移植:bridge API 客户端、子 CLI 会话运行器、免环境变量的 v2 编排器、多会话守护进程、worktree 启动、原地重连、带崩溃恢复的常驻模式、JWT 刷新,以及 v1 `WebSocketTransport` / `SerialBatchEventUploader` 写路径与混合分发。另含 CLI 传输工厂、合并式 worker 状态上传器与 `RemoteIO` 桥(#226);新增 `/buddy` 虚拟伙伴命令——孵化 / 抚摸 / 状态 / 静音(#225)。 -- **2026-05-21:** **代码库统计** —— Python 文件总数:890 个;Python 代码总行数:**183,768 行**(高于 2026-05-16 的 177,428 行;因 `src/tool_system/agent_loop.py` 合并进 `src/query/query.py`,文件数净减 4 个)。 -- **2026-05-21:** **`/advisor` 省 token 编码模式(#181–#193)** —— 让低成本 worker 模型(`haiku-4-5`,每 Mtok $1/$5)与高成本 reviewer(`opus-4-7`,$5/$25)搭档,仅在关键决策点咨询后者;典型会话比纯 opus 便宜约 6 倍。支持显式 `:` 语法、跨 provider 路由(例如经 litellm 使用 `deepseek/deepseek-v4-pro` worker + `claude-opus-4-7` advisor),并在状态栏实时显示 worker/advisor 的 token 数与美元成本。 -- **2026-05-16:** **代码库统计** —— Python 文件总数:894 个;Python 代码总行数:**177,428 行**(高于 2026-05-14 的 167,034 行;两天新增约 1.04 万行,主要是 ESC 取消加固与图像处理对齐)。 📚 更早的条目已移至完整的 **[News 归档](../NEWS.md)**。 @@ -548,6 +548,7 @@ python -m pytest tests/ -v - **[CONTRIBUTING.md](../../CONTRIBUTING.md)** —— 开发指南 - **[TESTING.md](../guide/TESTING.md)** —— 测试指南 - **[CHANGELOG.md](../../CHANGELOG.md)** —— 版本历史 +- **[TODOS.md](../../TODOS.md)** —— 已知差距与待办事项 *** diff --git a/install.sh b/install.sh index 4eba6f94c..6fb3a0561 100755 --- a/install.sh +++ b/install.sh @@ -48,7 +48,7 @@ trap 'log_err "Installer crash at line $LINENO: $BASH_COMMAND"' ERR # ============================================================================ # Config (read-only defaults) # ============================================================================ -readonly INSTALLER_VERSION="0.7.0" +readonly INSTALLER_VERSION="1.0.0" # REPO_REF is intentionally NOT readonly — it gets reassigned when the user # passes --ref. We have no version tags, so the default is the main branch; # --ref is the escape hatch for installing a specific commit/tag/branch. diff --git a/pyproject.toml b/pyproject.toml index ffcf7fd15..31336ad43 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "clawcodex" -version = "0.7.0" +version = "1.0.0" description = "A production-oriented Python rebuild of Claude Code — real architecture, reliable CLI agent" readme = "README.md" license = {text = "MIT"} diff --git a/ui-tui/src/gatewayClient.ts b/ui-tui/src/gatewayClient.ts index 928193e93..b5582fc57 100644 --- a/ui-tui/src/gatewayClient.ts +++ b/ui-tui/src/gatewayClient.ts @@ -30,7 +30,7 @@ const MAX_LOG_LINES = 500 const RPC_TIMEOUT_MS = 5_000 // clawcodex app version shown in the banner ("clawcodex v{version}"). Keep in // sync with the installer (install.sh INSTALLER_VERSION). -const CLAWCODEX_VERSION = '0.7.0' +const CLAWCODEX_VERSION = '1.0.0' /** Command that launches the clawcodex agent-server (set by the Python launcher). */ function resolveAgentCmd(): string[] { diff --git a/uv.lock b/uv.lock index 7d33114bf..2d51f790c 100644 --- a/uv.lock +++ b/uv.lock @@ -100,15 +100,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/4a/57/3b7d4dd193ade4641c865bc2b93aeeb71162e81fc348b8dad020215601ed/build-1.4.2-py3-none-any.whl", hash = "sha256:7a4d8651ea877cb2a89458b1b198f2e69f536c95e89129dbf5d448045d60db88", size = 24643, upload-time = "2026-03-25T14:20:26.568Z" }, ] -[[package]] -name = "cachetools" -version = "7.0.5" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/af/dd/57fe3fdb6e65b25a5987fd2cdc7e22db0aef508b91634d2e57d22928d41b/cachetools-7.0.5.tar.gz", hash = "sha256:0cd042c24377200c1dcd225f8b7b12b0ca53cc2c961b43757e774ebe190fd990", size = 37367, upload-time = "2026-03-09T20:51:29.451Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/06/f3/39cf3367b8107baa44f861dc802cbf16263c945b62d8265d36034fc07bea/cachetools-7.0.5-py3-none-any.whl", hash = "sha256:46bc8ebefbe485407621d0a4264b23c080cedd913921bad7ac3ed2f26c183114", size = 13918, upload-time = "2026-03-09T20:51:27.33Z" }, -] - [[package]] name = "certifi" version = "2026.2.25" @@ -307,7 +298,7 @@ wheels = [ [[package]] name = "clawcodex" -version = "0.5.0" +version = "1.0.0" source = { editable = "." } dependencies = [ { name = "anthropic" }, @@ -324,7 +315,6 @@ dependencies = [ { name = "textual" }, { name = "tiktoken" }, { name = "websockets" }, - { name = "zhipuai" }, ] [package.optional-dependencies] @@ -357,7 +347,6 @@ requires-dist = [ { name = "tiktoken", specifier = ">=0.7.0" }, { name = "twine", marker = "extra == 'dev'", specifier = ">=5.0.0" }, { name = "websockets", specifier = ">=14.0" }, - { name = "zhipuai" }, ] provides-extras = ["dev"] @@ -560,15 +549,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/1a/89/843b53614b47f97fe1abc13f9a86efa5ec9e275292c457af1d4a60dc80e0/cryptography-46.0.6-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:6728c49e3b2c180ef26f8e9f0a883a2c585638db64cf265b49c9ba10652d430e", size = 3409955, upload-time = "2026-03-25T23:34:48.465Z" }, ] -[[package]] -name = "dataclasses" -version = "0.8" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1f/12/7919c5d8b9c497f9180db15ea8ead6499812ea8264a6ae18766d93c59fe5/dataclasses-0.8.tar.gz", hash = "sha256:8479067f342acf957dc82ec415d355ab5edb7e7646b90dc6e2fd1d96ad084c97", size = 36581, upload-time = "2020-11-13T14:40:30.139Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/fe/ca/75fac5856ab5cfa51bbbcefa250182e50441074fdc3f803f6e76451fab43/dataclasses-0.8-py3-none-any.whl", hash = "sha256:0201d89fa866f68c8ebd9d08ee6ff50c0b255f8ec63a71c16fda7af82bb887bf", size = 19041, upload-time = "2020-11-13T14:40:29.194Z" }, -] - [[package]] name = "distro" version = "1.9.0" @@ -2209,21 +2189,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6f/28/258ebab549c2bf3e64d2b0217b973467394a9cea8c42f70418ca2c5d0d2e/websockets-16.0-py3-none-any.whl", hash = "sha256:1637db62fad1dc833276dded54215f2c7fa46912301a24bd94d45d46a011ceec", size = 171598, upload-time = "2026-01-10T09:23:45.395Z" }, ] -[[package]] -name = "zhipuai" -version = "1.0.7" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cachetools" }, - { name = "dataclasses" }, - { name = "pyjwt" }, - { name = "requests" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/3d/13/77cd9b2f3cad0f2fe6baded20fc20a02c3e62f14487117c296fdd2abeec0/zhipuai-1.0.7.tar.gz", hash = "sha256:b80f699543d83cce8648acf1ce32bc2725d1c1c443baffa5882abc2cc704d581", size = 5901, upload-time = "2023-06-12T12:15:31.812Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a5/b5/cb50cd478426b17503154585be799e09506b70944e2fe2402aa029987fa2/zhipuai-1.0.7-py3-none-any.whl", hash = "sha256:360c01b8c2698f366061452e86d5a36a5ff68a576ea33940da98e4806f232530", size = 7873, upload-time = "2023-06-12T12:15:30.355Z" }, -] - [[package]] name = "zipp" version = "3.23.0"