Skip to content
Merged
Show file tree
Hide file tree
Changes from 10 commits
Commits
Show all changes
98 commits
Select commit Hold shift + click to select a range
b76a11b
fix(state): stabilize fork migration parent links
cyq1017 May 31, 2026
1855033
test(state): cover same-second migration idempotency
Hmbown Jun 1, 2026
3df0189
feat(config): load typed ask permissions file
greyfreedom May 31, 2026
69cff93
docs(config): use exact path in permissions example
Hmbown Jun 1, 2026
4979190
feat(tools): add byte-level schema canonicalize for prefix-cache stab…
Jun 1, 2026
cb4f660
fix(tui): contain Windows shell process trees
aboimpinto Jun 1, 2026
382635e
fix(tui): harden Windows job cleanup
aboimpinto Jun 1, 2026
998af56
chore(release): harden deepseek-tui deprecation path
Hmbown Jun 1, 2026
bc34cd1
fix(tui): hold subagent cap until status reconciles
cyq1017 Jun 1, 2026
a09af20
feat(web_search): enable parallel execution for read-only search tool
Implementist Jun 1, 2026
14ea072
fix(tui): close Windows job before output joins
aboimpinto Jun 1, 2026
54a9399
test(tui): cover Windows job cleanup fallbacks
aboimpinto Jun 1, 2026
2c256d7
fix(tui): close Windows job before foreground joins
aboimpinto Jun 1, 2026
242899d
feat: run ToolCallBefore hooks before tool execution
aboimpinto May 27, 2026
796e95c
fix: address PR #2511 review comments
aboimpinto Jun 1, 2026
2622db4
fix: cargo fmt formatting for lint compliance
aboimpinto Jun 1, 2026
cc923d6
fix: address greptile review comments — remove double-firing, wrap bl…
aboimpinto Jun 1, 2026
77b57bd
fix: initialize hook_executor for fresh sessions to fix greptile P1 r…
aboimpinto Jun 1, 2026
2ca2927
fix: clippy needless_return and fmt compliance
aboimpinto Jun 1, 2026
bb64018
feat(tui): add configurable auto-compact threshold
Hmbown Jun 1, 2026
472cd44
fix(tui): expose auto-compact threshold in config view
Hmbown Jun 1, 2026
4ff9bba
fix(tui): keep config scope column visible
Hmbown Jun 1, 2026
7dfec0e
fix(config): honor workspace shell opt-in
cyq1017 Jun 1, 2026
1d8cbbd
fix(config): normalize windows workspace paths
cyq1017 Jun 1, 2026
3d5edfe
test(config): cover legacy workspace shell opt-in
Hmbown Jun 1, 2026
588e54f
fix(mcp): surface invalid stdio output
cyq1017 Jun 1, 2026
c81d1c2
test(mcp): cover invalid stdio preview redaction
Hmbown Jun 1, 2026
a976758
fix(tui): hint mention depth cap on misses
cyq1017 Jun 1, 2026
29f5766
fix(tui): narrow mention depth hint
cyq1017 Jun 1, 2026
e2201b8
fix(tui): read Wayland clipboard via wl-paste
cyq1017 Jun 1, 2026
9f33c4d
fix(tui): suppress wl-paste trailing newline
Hmbown Jun 1, 2026
1605d8d
fix(sandbox): allow tty device in seatbelt profile
cyq1017 Jun 1, 2026
46de1a9
fix(tui): refresh prompt on model switch
cyq1017 Jun 1, 2026
bc7f98a
fix(tui): refresh prompt on mode changes
Hmbown Jun 1, 2026
3b5727f
fix(tui): prefer codewhale settings path
cyq1017 Jun 1, 2026
0eb2ff5
fix(tui): isolate settings path fallback tests
cyq1017 Jun 1, 2026
91c5bb6
fix(tui): keep tui prefs under codewhale home
Hmbown Jun 1, 2026
c52769e
feat(tools): add parallel verifier ensemble
Hmbown Jun 1, 2026
57c10c7
fix(tui): compact tool-call UI and context
Hmbown Jun 1, 2026
d71cba6
test(tui): wait for background shell completion
cyq1017 Jun 1, 2026
eba019a
test(tui): align activity labels with semantic tools
Hmbown Jun 2, 2026
7c06cf5
fix(tui): guide bug reports toward failure causes
cyq1017 Jun 1, 2026
5a909ee
docs(providers): clarify local model tool calls
cyq1017 Jun 1, 2026
5f3cc3c
docs(rebrand): clarify state migration paths
cyq1017 Jun 1, 2026
3db7b40
docs(rebrand): address migration review notes
cyq1017 Jun 1, 2026
9bd08c2
docs(tui): document statusline footer items
cyq1017 Jun 1, 2026
ae2000b
docs(tui): align statusline customization limits
Hmbown Jun 2, 2026
fda2141
docs: clarify shell tool mode availability
cyq1017 Jun 1, 2026
9e93269
docs: polish mode availability table
cyq1017 Jun 1, 2026
cbd6239
docs: mark agent shell tools approval-gated
Hmbown Jun 2, 2026
908a25d
test(mcp): close stale-session mock responses cleanly
cyq1017 Jun 2, 2026
73cd721
feat(tui): add mention browser completions
cyq1017 Jun 1, 2026
f185d46
fix(tui): expose mention behavior in config
cyq1017 Jun 1, 2026
c81cdab
feat(tui): add bang shell command shortcut
reidliu41 Jun 2, 2026
5becfda
fix(tui): use effective model window in context inspector
cyq1017 Jun 1, 2026
c148b00
fix(npm): prefer binary version output
cyq1017 Jun 2, 2026
650d1a6
fix(subagent): guard truncated tool calls
cyq1017 Jun 1, 2026
537afcf
fix(subagent): cap truncated response retries
cyq1017 Jun 2, 2026
6144d64
fix(config): report legacy config migration
cyq1017 Jun 2, 2026
eff4e99
test(config): stabilize migration home on windows
cyq1017 Jun 2, 2026
0842b3f
test(config): use real legacy home on windows
cyq1017 Jun 2, 2026
556e0b4
fix(tui): use theme colors in sidebar panels instead of hardcoded pal…
Jun 1, 2026
b1cc344
fix(tui): force full repaint on theme switch to prevent stale sidebar…
Jun 1, 2026
baba81c
fix(tui): show session timestamps in listings
cyq1017 Jun 2, 2026
a41a382
docs(runtime): outline receipt export boundary
cyq1017 Jun 2, 2026
c92f3c3
feat(tui): expose current model in turn metadata
cyq1017 Jun 1, 2026
c2c36cc
feat: add NSIS installer and classroom admin checklist
May 25, 2026
e6de6f4
fix: address Gemini code review feedback
May 25, 2026
63b7c18
fix(release): ship NSIS installer artifact
Hmbown Jun 2, 2026
41edcd5
chore(release): bump local version to 0.8.50
Hmbown Jun 2, 2026
88f34fc
fix(tui): protect multiline drafts on arrow navigation
Hmbown Jun 2, 2026
eedeb52
fix(agent): pass through explicit AtlasCloud model ids
Hmbown Jun 2, 2026
4a09197
fix(tui): bound foreground shell reader drains
Hmbown Jun 2, 2026
b122b58
refs(#2264): Phase 2 — wire FrozenPrefix::verify() into turn_loop
encyc Jun 1, 2026
c9e4c8b
fix: clarify comment, avoid per-turn tool clone on happy path
encyc Jun 1, 2026
d58613a
test(client): add plan mode toggle byte-stability invariant test
Jun 1, 2026
139b542
test(ci): add Cache Guard CI test for prefix-cache stability
Jun 1, 2026
8532dcc
feat: add Xiaomi MiMo speech support
xyuai Jun 2, 2026
5f497e0
fix: harden Xiaomi MiMo speech flow
xyuai Jun 2, 2026
e763b44
docs(changelog): credit new harvests for v0.8.50 (#2514, #2519, #2503…
Hmbown Jun 2, 2026
e99ee5e
chore(release): sync tui crate CHANGELOG for version drift gate
Hmbown Jun 2, 2026
ddae758
fix: resolve clippy warnings in harvested PRs (needless-borrow, is_mu…
Hmbown Jun 2, 2026
6ab77ea
feat(i18n): localize all queue command messages across 7 locales
gordonlu Jun 2, 2026
19d5579
fix: avoid Instant overflow in turn_liveness tests on Windows
gordonlu Jun 2, 2026
478d45f
fmt: cargo fmt
gordonlu Jun 2, 2026
2501709
fix: restore two-line draft header layout
gordonlu Jun 2, 2026
cc60129
feat(i18n): add FanoutCounts MessageId, wire into FanoutCard stats line
gordonlu Jun 2, 2026
f48e398
Revert "fix: restore two-line draft header layout"
gordonlu Jun 2, 2026
97c615c
chore: add contribution gate workflows
nightt5879 Jun 2, 2026
dcf8350
fix: harden contribution gate bypasses
nightt5879 Jun 2, 2026
5059076
fix: read contribution allowlist from default branch
nightt5879 Jun 2, 2026
c8c20e0
fix: remove dead issue gate guard
nightt5879 Jun 2, 2026
dfe1884
fix: add contribution gate dry run mode
nightt5879 Jun 2, 2026
ea7fc47
fix: paginate pending allowlist PR lookup
nightt5879 Jun 2, 2026
b819423
docs(changelog): credit i18n and CI workflow harvests (#2568, #2566, …
Hmbown Jun 2, 2026
471a58f
chore(release): sync tui CHANGELOG after i18n/CI harvests
Hmbown Jun 2, 2026
9a3c545
fix(tui): move Paste to first position in right-click context menu
Hmbown Jun 2, 2026
f2df1d5
docs(changelog): note paste-first context menu fix
Hmbown Jun 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .github/workflows/auto-tag.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ on:
paths:
- 'Cargo.toml'
- 'npm/codewhale/package.json'
- 'npm/deepseek-tui/package.json'
workflow_dispatch:

permissions:
Expand Down
11 changes: 6 additions & 5 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -506,10 +506,11 @@ jobs:
body: |
> This release renames the project to **CodeWhale**. The legacy
> `deepseek` and `deepseek-tui` binaries continue to ship as
> deprecation shims for one release cycle; they print a one-line
> warning and forward to `codewhale` / `codewhale-tui`. They will
> be removed in v0.9.0. See `docs/REBRAND.md` for the full
> migration story.
> compatibility-only deprecation shims during v0.8.x; they print a
> one-line warning and forward to `codewhale` / `codewhale-tui`.
> They will be removed in v0.9.0. The legacy npm package
> `deepseek-tui` is deprecated and receives no further releases.
> See `docs/REBRAND.md` for the full migration story.

## Install

Expand Down Expand Up @@ -568,7 +569,7 @@ jobs:

The **portable** Windows archive skips the install script — extract and run from any directory.

Individual binaries are also attached below for scripting and the npm wrapper. Legacy `deepseek-*` and `deepseek-tui-*` assets ship for one release cycle so that existing `deepseek update` invocations on v0.8.40 keep working; they install the deprecation shims, which forward to the canonical binaries.
Individual binaries are also attached below for scripting and the npm wrapper. Legacy `deepseek-*` and `deepseek-tui-*` assets are compatibility-only deprecation shims for v0.8.x so that existing `deepseek update` invocations on v0.8.40 keep working; they forward to the canonical binaries. The legacy npm package `deepseek-tui` is deprecated and is not republished.

### Verify (recommended)

Expand Down
1 change: 1 addition & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 5 additions & 4 deletions README.ja-JP.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

## インストール

`codewhale` は自己完結型の Rust リリースバイナリのペアとしてインストールされます。`codewhale` はディスパッチャーで、同じ場所にある `codewhale-tui` ランタイムを起動して対話セッションを実行します。npm、Homebrew、Docker は両方を自動でインストールします。Cargo や手動インストールでは、両方を同じディレクトリ(通常は `PATH` 上のディレクトリ)に置いてください。実行に Node.js や Python のランタイムは不要です。
`codewhale` は自己完結型の Rust リリースバイナリのペアとしてインストールされます。`codewhale` はディスパッチャーで、同じ場所にある `codewhale-tui` ランタイムを起動して対話セッションを実行します。npmDocker は両方を自動でインストールします。Cargo や手動インストールでは、両方を同じディレクトリ(通常は `PATH` 上のディレクトリ)に置いてください。実行に Node.js や Python のランタイムは不要です。

```bash
# 1. npm — すでに Node を使っているなら最も簡単。npm パッケージは
Expand All @@ -21,8 +21,9 @@ npm install -g codewhale
cargo install codewhale-cli --locked # `codewhale` (エントリーポイント)
cargo install codewhale-tui --locked # `codewhale-tui` (TUI バイナリ)

# 3. Homebrew — macOS パッケージマネージャ。
# tap/formula 名は旧名のままですが、codewhale と codewhale-tui をインストールします。
# 3. Homebrew — 旧インストールとの互換用です。
# tap/formula はまだ旧 deepseek-tui 名を使っています。新規インストールでは、
# formula が改名されるまで npm、Cargo、Docker、直接ダウンロードを優先してください。
brew tap Hmbown/deepseek-tui
brew install deepseek-tui

Expand All @@ -48,7 +49,7 @@ docker run --rm -it \
```bash
codewhale update
npm install -g codewhale@latest
brew update && brew upgrade deepseek-tui
brew update && brew upgrade deepseek-tui # 旧 Homebrew インストールのみ
cargo install codewhale-cli --locked --force
cargo install codewhale-tui --locked --force
```
Expand Down
11 changes: 6 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@

`codewhale` installs as a matched pair of self-contained Rust release binaries:
the `codewhale` dispatcher command and the sibling `codewhale-tui` runtime it
launches for interactive sessions. npm, Homebrew, and Docker install both for
you; Cargo and manual installs must put both binaries in the same directory
launches for interactive sessions. npm and Docker install both for you; Cargo
and manual installs must put both binaries in the same directory
(normally a directory on your `PATH`). The npm package is only an
installer/wrapper for those release binaries; the agent does not run on Node.

Expand All @@ -27,8 +27,9 @@ npm install -g codewhale
cargo install codewhale-cli --locked # `codewhale` (entry point)
cargo install codewhale-tui --locked # `codewhale-tui` (TUI binary)

# 3. Homebrew — macOS package manager.
# The tap/formula name is legacy; it installs codewhale and codewhale-tui.
# 3. Homebrew — legacy compatibility only.
# The tap/formula still uses the old deepseek-tui name. Prefer npm, Cargo,
# Docker, or direct downloads for new installs until the formula is renamed.
brew tap Hmbown/deepseek-tui
brew install deepseek-tui

Expand Down Expand Up @@ -61,7 +62,7 @@ Already installed? Use the updater that matches the install path:
```bash
codewhale update # release-binary updater
npm install -g codewhale@latest # npm wrapper
brew update && brew upgrade deepseek-tui
brew update && brew upgrade deepseek-tui # legacy Homebrew installs only
cargo install codewhale-cli --locked --force
cargo install codewhale-tui --locked --force
```
Expand Down
9 changes: 5 additions & 4 deletions README.vi.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
## Cài đặt

`codewhale` được cài đặt dưới dạng một cặp binary tự chạy bằng Rust đồng bộ với nhau:
Lệnh điều phối `codewhale` (dispatcher) và môi trường chạy giao diện `codewhale-tui` (runtime) do nó khởi chạy để thực hiện các phiên làm việc tương tác. Các trình quản lý gói như npm, Homebrew, và Docker sẽ tự động cài đặt cả hai cho bạn; đối với Cargo hoặc cài đặt thủ công, bạn phải đặt cả hai tệp binary này trong cùng một thư mục (thông thường là một thư mục nằm trong biến môi trường `PATH` của bạn). Gói npm chỉ là một trình cài đặt/bao bọc (wrapper) cho các tệp binary phát hành này; agent không chạy trên môi trường Node.js.
Lệnh điều phối `codewhale` (dispatcher) và môi trường chạy giao diện `codewhale-tui` (runtime) do nó khởi chạy để thực hiện các phiên làm việc tương tác. npm và Docker sẽ tự động cài đặt cả hai cho bạn; đối với Cargo hoặc cài đặt thủ công, bạn phải đặt cả hai tệp binary này trong cùng một thư mục (thông thường là một thư mục nằm trong biến môi trường `PATH` của bạn). Gói npm chỉ là một trình cài đặt/bao bọc (wrapper) cho các tệp binary phát hành này; agent không chạy trên môi trường Node.js.

```bash
# 1. npm — dễ nhất nếu bạn đã cài đặt Node. Gói này sẽ tự động tải các
Expand All @@ -22,8 +22,9 @@ npm install -g codewhale
cargo install codewhale-cli --locked # cài đặt `codewhale` (điểm truy cập CLI chính)
cargo install codewhale-tui --locked # cài đặt `codewhale-tui` (giao diện TUI)

# 3. Homebrew — trình quản lý gói dành cho macOS.
# Tên tap/formula là tên cũ (legacy); nó sẽ cài đặt cả codewhale và codewhale-tui.
# 3. Homebrew — chỉ dành cho khả năng tương thích với cài đặt cũ.
# Tap/formula vẫn dùng tên deepseek-tui cũ. Với cài đặt mới, hãy ưu tiên
# npm, Cargo, Docker hoặc tải trực tiếp cho đến khi formula được đổi tên.
brew tap Hmbown/deepseek-tui
brew install deepseek-tui

Expand Down Expand Up @@ -56,7 +57,7 @@ docker run --rm -it \
```bash
codewhale update # trình cập nhật binary phát hành trực tiếp
npm install -g codewhale@latest # thông qua trình bao bọc npm
brew update && brew upgrade deepseek-tui
brew update && brew upgrade deepseek-tui # chỉ cho cài đặt Homebrew cũ
cargo install codewhale-cli --locked --force
cargo install codewhale-tui --locked --force
```
Expand Down
11 changes: 6 additions & 5 deletions README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
## 安装

`codewhale` 以一组自包含 Rust 发布二进制安装:`codewhale` 调度器命令,
以及它在交互会话中启动的同级 `codewhale-tui` 运行时。npm、Homebrew 和
Docker 会自动安装这两个二进制;Cargo 或手动下载时必须把两者放在同一目录
以及它在交互会话中启动的同级 `codewhale-tui` 运行时。npm 和 Docker
会自动安装这两个二进制;Cargo 或手动下载时必须把两者放在同一目录
(通常是 `PATH` 上的某个目录)。运行时不依赖 Node.js 或 Python。

```bash
Expand All @@ -24,8 +24,9 @@ npm install -g codewhale
cargo install codewhale-cli --locked # `codewhale` 入口
cargo install codewhale-tui --locked # `codewhale-tui` TUI 二进制

# 3. Homebrew —— macOS 包管理器。
# tap/formula 名称仍是旧名;实际安装 codewhale 和 codewhale-tui。
# 3. Homebrew —— 仅用于旧安装兼容。
# tap/formula 仍使用旧的 deepseek-tui 名称。新安装请优先使用
# npm、Cargo、Docker 或直接下载,直到 formula 完成改名。
brew tap Hmbown/deepseek-tui
brew install deepseek-tui

Expand Down Expand Up @@ -57,7 +58,7 @@ docker run --rm -it \
```bash
codewhale update # release 二进制更新器
npm install -g codewhale@latest # npm 包装器
brew update && brew upgrade deepseek-tui
brew update && brew upgrade deepseek-tui # 仅旧 Homebrew 安装
cargo install codewhale-cli --locked --force
cargo install codewhale-tui --locked --force
```
Expand Down
15 changes: 15 additions & 0 deletions config.example.toml
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,21 @@ allow_shell = true
approval_policy = "on-request" # on-request | untrusted | never
sandbox_mode = "workspace-write" # read-only | workspace-write | danger-full-access | external-sandbox

# Typed permission rules live in a sibling `permissions.toml` file, not in
# config.toml. This schema slice is ask-only and is parsed for follow-up
# approval-flow wiring; allow/deny records and UI persistence are intentionally
# out of scope here.
#
# Example ~/.codewhale/permissions.toml:
#
# [[rules]]
# tool = "exec_shell"
# command = "cargo test"
#
# [[rules]]
# tool = "read_file"
# path = "secrets/api_key.txt"

# ─────────────────────────────────────────────────────────────────────────────────
# External Sandbox Backend (pluggable remote execution)
# ─────────────────────────────────────────────────────────────────────────────────
Expand Down
1 change: 1 addition & 0 deletions crates/config/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ description = "Config schema and precedence model for DeepSeek workspace archite

[dependencies]
anyhow.workspace = true
codewhale-execpolicy = { path = "../execpolicy", version = "0.8.49" }
codewhale-secrets = { path = "../secrets", version = "0.8.49" }
dirs.workspace = true
serde.workspace = true
Expand Down
Loading
Loading