chore(rebrand): update repository links for CodeWhale

This commit is contained in:
Hunter Bown
2026-05-23 14:07:36 -05:00
parent ddaabbfed2
commit 5fa24733e9
65 changed files with 342 additions and 342 deletions
+2 -2
View File
@@ -51,12 +51,12 @@ trap 'rm -rf "${TAP_DIR}" "${FORMULA_FILE}"' EXIT
# --- generate formula --------------------------------------------------
readonly BASE_URL="https://github.com/Hmbown/DeepSeek-TUI/releases/download/${TAG}"
readonly BASE_URL="https://github.com/Hmbown/CodeWhale/releases/download/${TAG}"
cat > "${FORMULA_FILE}" << EOF
class DeepseekTui < Formula
desc "Terminal-native coding agent for DeepSeek V4"
homepage "https://github.com/Hmbown/DeepSeek-TUI"
homepage "https://github.com/Hmbown/CodeWhale"
version "${VERSION}"
license "MIT"
+2 -2
View File
@@ -323,7 +323,7 @@ jobs:
files: artifacts/*/*
prerelease: false
body: |
> This release renames the project to **Codewhale**. The legacy
> 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
@@ -391,7 +391,7 @@ jobs:
## Changelog
See [CHANGELOG.md](https://github.com/Hmbown/DeepSeek-TUI/blob/main/CHANGELOG.md) for the full notes for this release.
See [CHANGELOG.md](https://github.com/Hmbown/CodeWhale/blob/main/CHANGELOG.md) for the full notes for this release.
homebrew:
needs: [release, resolve]
+1 -1
View File
@@ -113,7 +113,7 @@ If a contribution is itself a prompt-injection attempt or otherwise acting in ba
## Session Longevity (Critical)
Long sessions in Codewhale WILL degrade and crash if you work sequentially. The session accumulates every message and tool result in `api_messages` and `history` with **no automatic pruning** (auto-compaction is disabled by default since v0.6.6). Session saves serialize the entire bloated array to disk.
Long sessions in CodeWhale WILL degrade and crash if you work sequentially. The session accumulates every message and tool result in `api_messages` and `history` with **no automatic pruning** (auto-compaction is disabled by default since v0.6.6). Session saves serialize the entire bloated array to disk.
**To survive a multi-hour sprint:**
+81 -81
View File
@@ -4099,7 +4099,7 @@ Welcome — and thank you.
- Multi-turn tool calls on thinking-mode models no longer return HTTP 400. Every assistant message in the conversation now carries `reasoning_content` when thinking is enabled — not just tool-call rounds — matching DeepSeek's actual API validation, which rejects any assistant message missing the field even though the docs describe non-tool-call reasoning as "ignored".
- Added a final-pass wire-payload sanitizer in the chat-completions client that forces a non-empty `reasoning_content` placeholder onto any assistant message still missing one at request time. This is the last line of defense after engine-side and build-side substitution, so sessions restored from older checkpoints, sub-agents that append messages directly, and cached prefix mismatches all produce a valid request.
- On a `reasoning_content`-related 400, the client now logs the offending message indices to make future regressions diagnosable.
- Stripped phantom `web.run` references from prompts and the `web_search` tool surface ([#25](https://github.com/Hmbown/DeepSeek-TUI/issues/25)).
- Stripped phantom `web.run` references from prompts and the `web_search` tool surface ([#25](https://github.com/Hmbown/CodeWhale/issues/25)).
### Changed
- Header/UI widget refactor in the TUI (`crates/tui/src/tui/ui.rs`, `widgets/header.rs`) — internal cleanup, no user-visible behavior change.
@@ -4595,83 +4595,83 @@ Welcome — and thank you.
- Hooks system and config profiles
- Example skills and launch assets
[Unreleased]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.41...HEAD
[0.8.41]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.40...v0.8.41
[0.8.40]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.39...v0.8.40
[0.8.39]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.38...v0.8.39
[0.8.38]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.37...v0.8.38
[0.8.37]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.36...v0.8.37
[0.8.36]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.35...v0.8.36
[0.8.35]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.34...v0.8.35
[0.8.34]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.33...v0.8.34
[0.8.33]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.32...v0.8.33
[0.8.32]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.31...v0.8.32
[0.8.31]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.30...v0.8.31
[0.8.30]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.29...v0.8.30
[0.8.29]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.28...v0.8.29
[0.8.28]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.27...v0.8.28
[0.8.27]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.26...v0.8.27
[0.8.26]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.25...v0.8.26
[0.8.25]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.24...v0.8.25
[0.8.24]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.23...v0.8.24
[0.8.23]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.22...v0.8.23
[0.8.22]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.21...v0.8.22
[0.8.21]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.20...v0.8.21
[0.8.20]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.19...v0.8.20
[0.8.19]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.18...v0.8.19
[0.8.18]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.17...v0.8.18
[0.8.17]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.16...v0.8.17
[0.8.16]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.15...v0.8.16
[0.8.15]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.13...v0.8.15
[0.8.13]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.12...v0.8.13
[0.8.12]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.11...v0.8.12
[0.8.11]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.10...v0.8.11
[0.8.10]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.8...v0.8.10
[0.8.8]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.7...v0.8.8
[0.8.7]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.6...v0.8.7
[0.8.6]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.5...v0.8.6
[0.8.5]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.4...v0.8.5
[0.8.4]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.3...v0.8.4
[0.8.3]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.2...v0.8.3
[0.8.2]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.1...v0.8.2
[0.8.1]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.0...v0.8.1
[0.8.0]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.7.9...v0.8.0
[0.7.9]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.7.8...v0.7.9
[0.7.8]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.7.7...v0.7.8
[0.7.7]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.7.6...v0.7.7
[0.7.6]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.7.5...v0.7.6
[0.6.1]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.6.0...v0.6.1
[0.6.0]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.4.9...v0.6.0
[0.4.9]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.4.8...v0.4.9
[0.4.8]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.33...v0.4.8
[0.3.33]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.32...v0.3.33
[0.3.32]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.31...v0.3.32
[0.3.31]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.28...v0.3.31
[0.3.28]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.27...v0.3.28
[0.3.23]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.22...v0.3.23
[0.3.22]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.21...v0.3.22
[0.3.21]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.17...v0.3.21
[0.3.17]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.16...v0.3.17
[0.3.16]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.14...v0.3.16
[0.3.14]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.13...v0.3.14
[0.3.13]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.12...v0.3.13
[0.3.12]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.11...v0.3.12
[0.3.11]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.10...v0.3.11
[0.3.10]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.6...v0.3.10
[0.3.6]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.5...v0.3.6
[0.3.5]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.4...v0.3.5
[0.3.4]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.3...v0.3.4
[0.3.3]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.2...v0.3.3
[0.3.2]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.1...v0.3.2
[0.3.1]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.0...v0.3.1
[0.3.0]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.2.2...v0.3.0
[0.2.2]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.2.0...v0.2.2
[0.2.0]: https://github.com/Hmbown/DeepSeek-TUI/releases/tag/v0.2.0
[0.0.2]: https://github.com/Hmbown/DeepSeek-TUI/releases/tag/v0.0.2
[0.0.1]: https://github.com/Hmbown/DeepSeek-TUI/releases/tag/v0.0.1
[0.1.9]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.1.8...v0.1.9
[0.1.8]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.1.7...v0.1.8
[0.1.7]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.1.6...v0.1.7
[0.1.6]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.1.5...v0.1.6
[0.1.5]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.1.0...v0.1.5
[0.1.0]: https://github.com/Hmbown/DeepSeek-TUI/releases/tag/v0.1.0
[Unreleased]: https://github.com/Hmbown/CodeWhale/compare/v0.8.41...HEAD
[0.8.41]: https://github.com/Hmbown/CodeWhale/compare/v0.8.40...v0.8.41
[0.8.40]: https://github.com/Hmbown/CodeWhale/compare/v0.8.39...v0.8.40
[0.8.39]: https://github.com/Hmbown/CodeWhale/compare/v0.8.38...v0.8.39
[0.8.38]: https://github.com/Hmbown/CodeWhale/compare/v0.8.37...v0.8.38
[0.8.37]: https://github.com/Hmbown/CodeWhale/compare/v0.8.36...v0.8.37
[0.8.36]: https://github.com/Hmbown/CodeWhale/compare/v0.8.35...v0.8.36
[0.8.35]: https://github.com/Hmbown/CodeWhale/compare/v0.8.34...v0.8.35
[0.8.34]: https://github.com/Hmbown/CodeWhale/compare/v0.8.33...v0.8.34
[0.8.33]: https://github.com/Hmbown/CodeWhale/compare/v0.8.32...v0.8.33
[0.8.32]: https://github.com/Hmbown/CodeWhale/compare/v0.8.31...v0.8.32
[0.8.31]: https://github.com/Hmbown/CodeWhale/compare/v0.8.30...v0.8.31
[0.8.30]: https://github.com/Hmbown/CodeWhale/compare/v0.8.29...v0.8.30
[0.8.29]: https://github.com/Hmbown/CodeWhale/compare/v0.8.28...v0.8.29
[0.8.28]: https://github.com/Hmbown/CodeWhale/compare/v0.8.27...v0.8.28
[0.8.27]: https://github.com/Hmbown/CodeWhale/compare/v0.8.26...v0.8.27
[0.8.26]: https://github.com/Hmbown/CodeWhale/compare/v0.8.25...v0.8.26
[0.8.25]: https://github.com/Hmbown/CodeWhale/compare/v0.8.24...v0.8.25
[0.8.24]: https://github.com/Hmbown/CodeWhale/compare/v0.8.23...v0.8.24
[0.8.23]: https://github.com/Hmbown/CodeWhale/compare/v0.8.22...v0.8.23
[0.8.22]: https://github.com/Hmbown/CodeWhale/compare/v0.8.21...v0.8.22
[0.8.21]: https://github.com/Hmbown/CodeWhale/compare/v0.8.20...v0.8.21
[0.8.20]: https://github.com/Hmbown/CodeWhale/compare/v0.8.19...v0.8.20
[0.8.19]: https://github.com/Hmbown/CodeWhale/compare/v0.8.18...v0.8.19
[0.8.18]: https://github.com/Hmbown/CodeWhale/compare/v0.8.17...v0.8.18
[0.8.17]: https://github.com/Hmbown/CodeWhale/compare/v0.8.16...v0.8.17
[0.8.16]: https://github.com/Hmbown/CodeWhale/compare/v0.8.15...v0.8.16
[0.8.15]: https://github.com/Hmbown/CodeWhale/compare/v0.8.13...v0.8.15
[0.8.13]: https://github.com/Hmbown/CodeWhale/compare/v0.8.12...v0.8.13
[0.8.12]: https://github.com/Hmbown/CodeWhale/compare/v0.8.11...v0.8.12
[0.8.11]: https://github.com/Hmbown/CodeWhale/compare/v0.8.10...v0.8.11
[0.8.10]: https://github.com/Hmbown/CodeWhale/compare/v0.8.8...v0.8.10
[0.8.8]: https://github.com/Hmbown/CodeWhale/compare/v0.8.7...v0.8.8
[0.8.7]: https://github.com/Hmbown/CodeWhale/compare/v0.8.6...v0.8.7
[0.8.6]: https://github.com/Hmbown/CodeWhale/compare/v0.8.5...v0.8.6
[0.8.5]: https://github.com/Hmbown/CodeWhale/compare/v0.8.4...v0.8.5
[0.8.4]: https://github.com/Hmbown/CodeWhale/compare/v0.8.3...v0.8.4
[0.8.3]: https://github.com/Hmbown/CodeWhale/compare/v0.8.2...v0.8.3
[0.8.2]: https://github.com/Hmbown/CodeWhale/compare/v0.8.1...v0.8.2
[0.8.1]: https://github.com/Hmbown/CodeWhale/compare/v0.8.0...v0.8.1
[0.8.0]: https://github.com/Hmbown/CodeWhale/compare/v0.7.9...v0.8.0
[0.7.9]: https://github.com/Hmbown/CodeWhale/compare/v0.7.8...v0.7.9
[0.7.8]: https://github.com/Hmbown/CodeWhale/compare/v0.7.7...v0.7.8
[0.7.7]: https://github.com/Hmbown/CodeWhale/compare/v0.7.6...v0.7.7
[0.7.6]: https://github.com/Hmbown/CodeWhale/compare/v0.7.5...v0.7.6
[0.6.1]: https://github.com/Hmbown/CodeWhale/compare/v0.6.0...v0.6.1
[0.6.0]: https://github.com/Hmbown/CodeWhale/compare/v0.4.9...v0.6.0
[0.4.9]: https://github.com/Hmbown/CodeWhale/compare/v0.4.8...v0.4.9
[0.4.8]: https://github.com/Hmbown/CodeWhale/compare/v0.3.33...v0.4.8
[0.3.33]: https://github.com/Hmbown/CodeWhale/compare/v0.3.32...v0.3.33
[0.3.32]: https://github.com/Hmbown/CodeWhale/compare/v0.3.31...v0.3.32
[0.3.31]: https://github.com/Hmbown/CodeWhale/compare/v0.3.28...v0.3.31
[0.3.28]: https://github.com/Hmbown/CodeWhale/compare/v0.3.27...v0.3.28
[0.3.23]: https://github.com/Hmbown/CodeWhale/compare/v0.3.22...v0.3.23
[0.3.22]: https://github.com/Hmbown/CodeWhale/compare/v0.3.21...v0.3.22
[0.3.21]: https://github.com/Hmbown/CodeWhale/compare/v0.3.17...v0.3.21
[0.3.17]: https://github.com/Hmbown/CodeWhale/compare/v0.3.16...v0.3.17
[0.3.16]: https://github.com/Hmbown/CodeWhale/compare/v0.3.14...v0.3.16
[0.3.14]: https://github.com/Hmbown/CodeWhale/compare/v0.3.13...v0.3.14
[0.3.13]: https://github.com/Hmbown/CodeWhale/compare/v0.3.12...v0.3.13
[0.3.12]: https://github.com/Hmbown/CodeWhale/compare/v0.3.11...v0.3.12
[0.3.11]: https://github.com/Hmbown/CodeWhale/compare/v0.3.10...v0.3.11
[0.3.10]: https://github.com/Hmbown/CodeWhale/compare/v0.3.6...v0.3.10
[0.3.6]: https://github.com/Hmbown/CodeWhale/compare/v0.3.5...v0.3.6
[0.3.5]: https://github.com/Hmbown/CodeWhale/compare/v0.3.4...v0.3.5
[0.3.4]: https://github.com/Hmbown/CodeWhale/compare/v0.3.3...v0.3.4
[0.3.3]: https://github.com/Hmbown/CodeWhale/compare/v0.3.2...v0.3.3
[0.3.2]: https://github.com/Hmbown/CodeWhale/compare/v0.3.1...v0.3.2
[0.3.1]: https://github.com/Hmbown/CodeWhale/compare/v0.3.0...v0.3.1
[0.3.0]: https://github.com/Hmbown/CodeWhale/compare/v0.2.2...v0.3.0
[0.2.2]: https://github.com/Hmbown/CodeWhale/compare/v0.2.0...v0.2.2
[0.2.0]: https://github.com/Hmbown/CodeWhale/releases/tag/v0.2.0
[0.0.2]: https://github.com/Hmbown/CodeWhale/releases/tag/v0.0.2
[0.0.1]: https://github.com/Hmbown/CodeWhale/releases/tag/v0.0.1
[0.1.9]: https://github.com/Hmbown/CodeWhale/compare/v0.1.8...v0.1.9
[0.1.8]: https://github.com/Hmbown/CodeWhale/compare/v0.1.7...v0.1.8
[0.1.7]: https://github.com/Hmbown/CodeWhale/compare/v0.1.6...v0.1.7
[0.1.6]: https://github.com/Hmbown/CodeWhale/compare/v0.1.5...v0.1.6
[0.1.5]: https://github.com/Hmbown/CodeWhale/compare/v0.1.0...v0.1.5
[0.1.0]: https://github.com/Hmbown/CodeWhale/releases/tag/v0.1.0
+1 -1
View File
@@ -15,7 +15,7 @@ Thank you for your interest in contributing to codewhale! This document provides
1. Fork and clone the repository:
```bash
git clone https://github.com/YOUR_USERNAME/DeepSeek-TUI.git
cd DeepSeek-TUI
cd CodeWhale
```
2. Build the project:
+1 -1
View File
@@ -27,7 +27,7 @@ edition = "2024"
# confusing E0658 from rustc.
rust-version = "1.88"
license = "MIT"
repository = "https://github.com/Hmbown/DeepSeek-TUI"
repository = "https://github.com/Hmbown/CodeWhale"
[workspace.dependencies]
anyhow = "1.0.100"
+1 -1
View File
@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:1
# Codewhale multi-arch Docker image (#501)
# CodeWhale multi-arch Docker image (#501)
#
# Build: docker buildx build --platform linux/amd64,linux/arm64 -t codewhale:latest .
# Run: docker run --rm -it -e DEEPSEEK_API_KEY -v codewhale-home:/home/codewhale/.deepseek codewhale
+10 -10
View File
@@ -1,4 +1,4 @@
# 🐳 Codewhale
# 🐳 CodeWhale
> **このターミナルネイティブのコーディングエージェントは、DeepSeek V4 の 100 万トークンのコンテキストウィンドウとプレフィックスキャッシュ機能を中心に構築されています。単一のバイナリとして配布され、Node.js や Python のランタイムは不要です。MCP クライアント、サンドボックス、永続的なタスクキューも標準で同梱されています。**
@@ -24,7 +24,7 @@ brew tap Hmbown/deepseek-tui
brew install deepseek-tui
# 4. 直接ダウンロード — Node もツールチェーンも不要。
# https://github.com/Hmbown/DeepSeek-TUI/releases
# https://github.com/Hmbown/CodeWhale/releases
# Linux x64/ARM64、macOS x64/ARM64、Windows x64 向けのビルド済みバイナリがあります。
# 5. Docker — ビルド済みリリースイメージ。
@@ -49,10 +49,10 @@ cargo install codewhale-cli --locked --force
cargo install codewhale-tui --locked --force
```
[![CI](https://github.com/Hmbown/DeepSeek-TUI/actions/workflows/ci.yml/badge.svg)](https://github.com/Hmbown/DeepSeek-TUI/actions/workflows/ci.yml)
[![CI](https://github.com/Hmbown/CodeWhale/actions/workflows/ci.yml/badge.svg)](https://github.com/Hmbown/CodeWhale/actions/workflows/ci.yml)
[![npm](https://img.shields.io/npm/v/codewhale)](https://www.npmjs.com/package/codewhale)
[![crates.io](https://img.shields.io/crates/v/codewhale-cli?label=crates.io)](https://crates.io/crates/codewhale-cli)
[![DeepWiki](https://img.shields.io/badge/DeepWiki-Ask_AI-_.svg?style=flat&color=0052D9&labelColor=000000&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAyCAYAAAAnWDnqAAAAAXNSR0IArs4c6QAAA05JREFUaEPtmUtyEzEQhtWTQyQLHNak2AB7ZnyXZMEjXMGeK/AIi+QuHrMnbChYY7MIh8g01fJoopFb0uhhEqqcbWTp06/uv1saEDv4O3n3dV60RfP947Mm9/SQc0ICFQgzfc4CYZoTPAswgSJCCUJUnAAoRHOAUOcATwbmVLWdGoH//PB8mnKqScAhsD0kYP3j/Yt5LPQe2KvcXmGvRHcDnpxfL2zOYJ1mFwrryWTz0advv1Ut4CJgf5uhDuDj5eUcAUoahrdY/56ebRWeraTjMt/00Sh3UDtjgHtQNHwcRGOC98BJEAEymycmYcWwOprTgcB6VZ5JK5TAJ+fXGLBm3FDAmn6oPPjR4rKCAoJCal2eAiQp2x0vxTPB3ALO2CRkwmDy5WohzBDwSEFKRwPbknEggCPB/imwrycgxX2NzoMCHhPkDwqYMr9tRcP5qNrMZHkVnOjRMWwLCcr8ohBVb1OMjxLwGCvjTikrsBOiA6fNyCrm8V1rP93iVPpwaE+gO0SsWmPiXB+jikdf6SizrT5qKasx5j8ABbHpFTx+vFXp9EnYQmLx02h1QTTrl6eDqxLnGjporxl3NL3agEvXdT0WmEost648sQOYAeJS9Q7bfUVoMGnjo4AZdUMQku50McDcMWcBPvr0SzbTAFDfvJqwLzgxwATnCgnp4wDl6Aa+Ax283gghmj+vj7feE2KBBRMW3FzOpLOADl0Isb5587h/U4gGvkt5v60Z1VLG8BhYjbzRwyQZemwAd6cCR5/XFWLYZRIMpX39AR0tjaGGiGzLVyhse5C9RKC6ai42ppWPKiBagOvaYk8lO7DajerabOZP46Lby5wKjw1HCRx7p9sVMOWGzb/vA1hwiWc6jm3MvQDTogQkiqIhJV0nBQBTU+3okKCFDy9WwferkHjtxib7t3xIUQtHxnIwtx4mpg26/HfwVNVDb4oI9RHmx5WGelRVlrtiw43zboCLaxv46AZeB3IlTkwouebTr1y2NjSpHz68WNFjHvupy3q8TFn3Hos2IAk4Ju5dCo8B3wP7VPr/FGaKiG+T+v+TQqIrOqMTL1VdWV1DdmcbO8KXBz6esmYWYKPwDL5b5FA1a0hwapHiom0r/cKaoqr+27/XcrS5UwSMbQAAAABJRU5ErkJggg==)](https://deepwiki.com/Hmbown/DeepSeek-TUI)
[![DeepWiki](https://img.shields.io/badge/DeepWiki-Ask_AI-_.svg?style=flat&color=0052D9&labelColor=000000&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAyCAYAAAAnWDnqAAAAAXNSR0IArs4c6QAAA05JREFUaEPtmUtyEzEQhtWTQyQLHNak2AB7ZnyXZMEjXMGeK/AIi+QuHrMnbChYY7MIh8g01fJoopFb0uhhEqqcbWTp06/uv1saEDv4O3n3dV60RfP947Mm9/SQc0ICFQgzfc4CYZoTPAswgSJCCUJUnAAoRHOAUOcATwbmVLWdGoH//PB8mnKqScAhsD0kYP3j/Yt5LPQe2KvcXmGvRHcDnpxfL2zOYJ1mFwrryWTz0advv1Ut4CJgf5uhDuDj5eUcAUoahrdY/56ebRWeraTjMt/00Sh3UDtjgHtQNHwcRGOC98BJEAEymycmYcWwOprTgcB6VZ5JK5TAJ+fXGLBm3FDAmn6oPPjR4rKCAoJCal2eAiQp2x0vxTPB3ALO2CRkwmDy5WohzBDwSEFKRwPbknEggCPB/imwrycgxX2NzoMCHhPkDwqYMr9tRcP5qNrMZHkVnOjRMWwLCcr8ohBVb1OMjxLwGCvjTikrsBOiA6fNyCrm8V1rP93iVPpwaE+gO0SsWmPiXB+jikdf6SizrT5qKasx5j8ABbHpFTx+vFXp9EnYQmLx02h1QTTrl6eDqxLnGjporxl3NL3agEvXdT0WmEost648sQOYAeJS9Q7bfUVoMGnjo4AZdUMQku50McDcMWcBPvr0SzbTAFDfvJqwLzgxwATnCgnp4wDl6Aa+Ax283gghmj+vj7feE2KBBRMW3FzOpLOADl0Isb5587h/U4gGvkt5v60Z1VLG8BhYjbzRwyQZemwAd6cCR5/XFWLYZRIMpX39AR0tjaGGiGzLVyhse5C9RKC6ai42ppWPKiBagOvaYk8lO7DajerabOZP46Lby5wKjw1HCRx7p9sVMOWGzb/vA1hwiWc6jm3MvQDTogQkiqIhJV0nBQBTU+3okKCFDy9WwferkHjtxib7t3xIUQtHxnIwtx4mpg26/HfwVNVDb4oI9RHmx5WGelRVlrtiw43zboCLaxv46AZeB3IlTkwouebTr1y2NjSpHz68WNFjHvupy3q8TFn3Hos2IAk4Ju5dCo8B3wP7VPr/FGaKiG+T+v+TQqIrOqMTL1VdWV1DdmcbO8KXBz6esmYWYKPwDL5b5FA1a0hwapHiom0r/cKaoqr+27/XcrS5UwSMbQAAAABJRU5ErkJggg==)](https://deepwiki.com/Hmbown/CodeWhale)
<a href="https://www.buymeacoffee.com/hmbown" target="_blank"><img src="https://img.shields.io/badge/Buy%20me%20a%20coffee-5F7FFF?style=for-the-badge&logo=buymeacoffee&logoColor=white" alt="Buy me a coffee" /></a>
@@ -123,7 +123,7 @@ codewhale doctor # セットアップを検証
### Linux ARM64Raspberry Pi、Asahi、Graviton、HarmonyOS PC
`npm i -g codewhale` は v0.8.8 以降、glibc ベースの ARM64 Linux で動作します。[Releases ページ](https://github.com/Hmbown/DeepSeek-TUI/releases) からビルド済みバイナリをダウンロードし、`PATH` 上に並べて配置することもできます。
`npm i -g codewhale` は v0.8.8 以降、glibc ベースの ARM64 Linux で動作します。[Releases ページ](https://github.com/Hmbown/CodeWhale/releases) からビルド済みバイナリをダウンロードし、`PATH` 上に並べて配置することもできます。
### 中国 / ミラーフレンドリーなインストール
@@ -146,7 +146,7 @@ cargo install codewhale-tui --locked # `codewhale-tui` を提供
codewhale --version
```
ビルド済みバイナリは [GitHub Releases](https://github.com/Hmbown/DeepSeek-TUI/releases) からもダウンロードできます。ミラーされたリリースアセットには `DEEPSEEK_TUI_RELEASE_BASE_URL` を使ってください。
ビルド済みバイナリは [GitHub Releases](https://github.com/Hmbown/CodeWhale/releases) からもダウンロードできます。ミラーされたリリースアセットには `DEEPSEEK_TUI_RELEASE_BASE_URL` を使ってください。
### WindowsScoop
@@ -167,8 +167,8 @@ scoop install deepseek-tui
# sudo apt-get install -y build-essential pkg-config libdbus-1-dev
# sudo dnf install -y gcc make pkgconf-pkg-config dbus-devel
git clone https://github.com/Hmbown/DeepSeek-TUI.git
cd DeepSeek-TUI
git clone https://github.com/Hmbown/CodeWhale.git
cd CodeWhale
cargo install --path crates/cli --locked # Rust 1.88+ が必要。`codewhale` を提供
cargo install --path crates/tui --locked # `codewhale-tui` を提供
@@ -416,7 +416,7 @@ description: DeepSeek にカスタムワークフローを実行させたいと
## コントリビューション
[CONTRIBUTING.md](CONTRIBUTING.md) を参照してください。プルリクエストを歓迎します。良い初コントリビューションは [Open Issues](https://github.com/Hmbown/DeepSeek-TUI/issues) を確認してください。
[CONTRIBUTING.md](CONTRIBUTING.md) を参照してください。プルリクエストを歓迎します。良い初コントリビューションは [Open Issues](https://github.com/Hmbown/CodeWhale/issues) を確認してください。
> [!Note]
> *DeepSeek Inc. とは関係ありません。*
@@ -427,4 +427,4 @@ description: DeepSeek にカスタムワークフローを実行させたいと
## Star History
[![Star History Chart](https://api.star-history.com/chart?repos=Hmbown/DeepSeek-TUI&type=date&legend=top-left)](https://www.star-history.com/?repos=Hmbown%2FDeepSeek-TUI&type=date&logscale=&legend=top-left)
[![Star History Chart](https://api.star-history.com/chart?repos=Hmbown/CodeWhale&type=date&legend=top-left)](https://www.star-history.com/?repos=Hmbown%2FCodeWhale&type=date&logscale=&legend=top-left)
+13 -13
View File
@@ -1,4 +1,4 @@
# Codewhale
# CodeWhale
> Terminal coding agent for DeepSeek V4. It runs from the `codewhale` command, streams reasoning blocks, edits local workspaces with approval gates, and includes an auto mode that chooses both model and thinking level per turn.
@@ -29,7 +29,7 @@ brew tap Hmbown/deepseek-tui
brew install deepseek-tui
# 4. Direct download — no package manager or toolchain.
# https://github.com/Hmbown/DeepSeek-TUI/releases
# https://github.com/Hmbown/CodeWhale/releases
# Prebuilt for Linux x64/ARM64, macOS x64/ARM64, Windows x64.
# 5. Docker — prebuilt release image.
@@ -47,7 +47,7 @@ docker run --rm -it \
> [Cargo mirror](#china--mirror-friendly-installation) below.
>
> Download safety: official release binaries live under
> `https://github.com/Hmbown/DeepSeek-TUI/releases`. For manual downloads,
> `https://github.com/Hmbown/CodeWhale/releases`. For manual downloads,
> verify the SHA-256 manifest and avoid look-alike repositories or search-result
> mirrors. See [download safety and checksums](docs/INSTALL.md#2-download-safety-and-checksums).
@@ -61,10 +61,10 @@ cargo install codewhale-cli --locked --force
cargo install codewhale-tui --locked --force
```
[![CI](https://github.com/Hmbown/DeepSeek-TUI/actions/workflows/ci.yml/badge.svg)](https://github.com/Hmbown/DeepSeek-TUI/actions/workflows/ci.yml)
[![CI](https://github.com/Hmbown/CodeWhale/actions/workflows/ci.yml/badge.svg)](https://github.com/Hmbown/CodeWhale/actions/workflows/ci.yml)
[![npm](https://img.shields.io/npm/v/codewhale)](https://www.npmjs.com/package/codewhale)
[![crates.io](https://img.shields.io/crates/v/codewhale-cli?label=crates.io)](https://crates.io/crates/codewhale-cli)
[DeepWiki project index](https://deepwiki.com/Hmbown/DeepSeek-TUI)
[DeepWiki project index](https://deepwiki.com/Hmbown/CodeWhale)
![codewhale screenshot](assets/screenshot.png)
@@ -72,7 +72,7 @@ cargo install codewhale-tui --locked --force
## What Is It?
Codewhale is a coding agent that runs in your terminal. It can read and edit files, run shell commands, search the web, manage git, and coordinate sub-agents from a keyboard-driven TUI.
CodeWhale is a coding agent that runs in your terminal. It can read and edit files, run shell commands, search the web, manage git, and coordinate sub-agents from a keyboard-driven TUI.
It is built around DeepSeek V4 (`deepseek-v4-pro` / `deepseek-v4-flash`), including 1M-token context windows, streaming reasoning blocks, and prefix-cache-aware cost reporting.
@@ -110,7 +110,7 @@ See [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) for the full walkthrough.
### Sub-agents: Concurrent Background Execution
Codewhale can dispatch multiple sub-agents that run in parallel — like a concurrent task queue:
CodeWhale can dispatch multiple sub-agents that run in parallel — like a concurrent task queue:
- **Non-blocking launch.** `agent_open` returns immediately. The child gets its own fresh context and tool registry and runs independently. The parent keeps working.
- **Background execution.** Sub-agents execute concurrently (default cap: 10, configurable to 20). The engine manages the pool — no polling loop needed.
@@ -181,7 +181,7 @@ Use a fixed model or fixed thinking level when you want repeatable benchmarking,
### Linux ARM64 (Raspberry Pi, Asahi, Graviton, HarmonyOS PC)
`npm i -g codewhale` works on glibc-based ARM64 Linux from v0.8.8 onward. You can also download prebuilt binaries from the [Releases page](https://github.com/Hmbown/DeepSeek-TUI/releases) and place them side by side on your `PATH`.
`npm i -g codewhale` works on glibc-based ARM64 Linux from v0.8.8 onward. You can also download prebuilt binaries from the [Releases page](https://github.com/Hmbown/CodeWhale/releases) and place them side by side on your `PATH`.
### China / Mirror-friendly Installation
@@ -204,7 +204,7 @@ cargo install codewhale-tui --locked # provides `codewhale-tui`
codewhale --version
```
Prebuilt binaries can also be downloaded from [GitHub Releases](https://github.com/Hmbown/DeepSeek-TUI/releases). Use `DEEPSEEK_TUI_RELEASE_BASE_URL` for mirrored release assets.
Prebuilt binaries can also be downloaded from [GitHub Releases](https://github.com/Hmbown/CodeWhale/releases). Use `DEEPSEEK_TUI_RELEASE_BASE_URL` for mirrored release assets.
### Windows (Scoop)
@@ -233,8 +233,8 @@ Works on any Tier-1 Rust target — including musl, riscv64, FreeBSD, and older
# sudo apt-get install -y build-essential pkg-config libdbus-1-dev
# sudo dnf install -y gcc make pkgconf-pkg-config dbus-devel
git clone https://github.com/Hmbown/DeepSeek-TUI.git
cd DeepSeek-TUI
git clone https://github.com/Hmbown/CodeWhale.git
cd CodeWhale
cargo install --path crates/cli --locked # requires Rust 1.88+; provides `codewhale`
cargo install --path crates/tui --locked # provides `codewhale-tui`
@@ -591,7 +591,7 @@ This project ships with help from a growing community of contributors:
## Contributing
See [CONTRIBUTING.md](CONTRIBUTING.md). Pull requests welcome — check the [open issues](https://github.com/Hmbown/DeepSeek-TUI/issues) for good first contributions.
See [CONTRIBUTING.md](CONTRIBUTING.md). Pull requests welcome — check the [open issues](https://github.com/Hmbown/CodeWhale/issues) for good first contributions.
Support: [Buy me a coffee](https://www.buymeacoffee.com/hmbown).
@@ -604,4 +604,4 @@ Support: [Buy me a coffee](https://www.buymeacoffee.com/hmbown).
## Star History
[![Star History Chart](https://api.star-history.com/chart?repos=Hmbown/DeepSeek-TUI&type=date&legend=top-left)](https://www.star-history.com/?repos=Hmbown%2FDeepSeek-TUI&type=date&logscale=&legend=top-left)
[![Star History Chart](https://api.star-history.com/chart?repos=Hmbown/CodeWhale&type=date&legend=top-left)](https://www.star-history.com/?repos=Hmbown%2FCodeWhale&type=date&logscale=&legend=top-left)
+11 -11
View File
@@ -1,4 +1,4 @@
# Codewhale
# CodeWhale
> **面向 [DeepSeek V4](https://platform.deepseek.com) 的终端原生编程智能体:100 万 token 上下文、思考模式流式推理、前缀缓存感知。自包含 Rust 二进制发布——开箱即带 MCP 客户端、沙箱和持久化任务队列。**
@@ -25,7 +25,7 @@ brew tap Hmbown/deepseek-tui
brew install deepseek-tui
# 4. 直接下载 —— 无需任何工具链。
# https://github.com/Hmbown/DeepSeek-TUI/releases
# https://github.com/Hmbown/CodeWhale/releases
# 覆盖 Linux x64/ARM64、macOS x64/ARM64、Windows x64
# 5. Docker —— 预构建发布镜像。
@@ -42,7 +42,7 @@ docker run --rm -it \
> 或使用下方的 [Cargo 镜像](#中国大陆--镜像友好安装)。
>
> 下载安全:官方二进制只发布在
> `https://github.com/Hmbown/DeepSeek-TUI/releases`。手动下载时请校验
> `https://github.com/Hmbown/CodeWhale/releases`。手动下载时请校验
> SHA-256 manifest,并避免相似仓库名或搜索结果里的镜像站。详见
> [下载安全与校验](docs/INSTALL.md#2-download-safety-and-checksums)。
@@ -56,10 +56,10 @@ cargo install codewhale-cli --locked --force
cargo install codewhale-tui --locked --force
```
[![CI](https://github.com/Hmbown/DeepSeek-TUI/actions/workflows/ci.yml/badge.svg)](https://github.com/Hmbown/DeepSeek-TUI/actions/workflows/ci.yml)
[![CI](https://github.com/Hmbown/CodeWhale/actions/workflows/ci.yml/badge.svg)](https://github.com/Hmbown/CodeWhale/actions/workflows/ci.yml)
[![npm](https://img.shields.io/npm/v/codewhale)](https://www.npmjs.com/package/codewhale)
[![crates.io](https://img.shields.io/crates/v/codewhale-cli?label=crates.io)](https://crates.io/crates/codewhale-cli)
[DeepWiki project index](https://deepwiki.com/Hmbown/DeepSeek-TUI)
[DeepWiki project index](https://deepwiki.com/Hmbown/CodeWhale)
![codewhale 截图](assets/screenshot.png)
@@ -168,7 +168,7 @@ Auto 模式同时控制两个设置:
### Linux ARM64HarmonyOS 轻薄本、openEuler、Kylin、树莓派、Graviton 等)
从 v0.8.8 起,`npm i -g codewhale` 直接支持 glibc 系的 ARM64 Linux。你也可以从 [Releases 页面](https://github.com/Hmbown/DeepSeek-TUI/releases) 下载预编译二进制,放到 `PATH` 目录中。
从 v0.8.8 起,`npm i -g codewhale` 直接支持 glibc 系的 ARM64 Linux。你也可以从 [Releases 页面](https://github.com/Hmbown/CodeWhale/releases) 下载预编译二进制,放到 `PATH` 目录中。
### 中国大陆 / 镜像友好安装
@@ -191,7 +191,7 @@ cargo install codewhale-tui --locked # 提供交互式 TUI 伴随二进制
codewhale --version
```
也可以直接从 [GitHub Releases](https://github.com/Hmbown/DeepSeek-TUI/releases) 下载预编译二进制。`DEEPSEEK_TUI_RELEASE_BASE_URL` 可用于镜像后的 release 资产。
也可以直接从 [GitHub Releases](https://github.com/Hmbown/CodeWhale/releases) 下载预编译二进制。`DEEPSEEK_TUI_RELEASE_BASE_URL` 可用于镜像后的 release 资产。
### Windows (Scoop)
@@ -218,8 +218,8 @@ codewhale --version
# sudo apt-get install -y build-essential pkg-config libdbus-1-dev
# sudo dnf install -y gcc make pkgconf-pkg-config dbus-devel
git clone https://github.com/Hmbown/DeepSeek-TUI.git
cd DeepSeek-TUI
git clone https://github.com/Hmbown/CodeWhale.git
cd CodeWhale
cargo install --path crates/cli --locked # 需要 Rust 1.88+;提供 `codewhale`
cargo install --path crates/tui --locked # 提供 `codewhale-tui`
@@ -557,7 +557,7 @@ description: 当 DeepSeek 需要遵循我的自定义工作流时使用这个技
## 贡献
欢迎提交 pull request——请先查看 [CONTRIBUTING.md](CONTRIBUTING.md) 并留意[开放 issue](https://github.com/Hmbown/DeepSeek-TUI/issues) 中的好入门任务。
欢迎提交 pull request——请先查看 [CONTRIBUTING.md](CONTRIBUTING.md) 并留意[开放 issue](https://github.com/Hmbown/CodeWhale/issues) 中的好入门任务。
*本项目与 DeepSeek Inc. 无隶属关系。*
@@ -567,4 +567,4 @@ description: 当 DeepSeek 需要遵循我的自定义工作流时使用这个技
## Star 历史
[![Star History Chart](https://api.star-history.com/chart?repos=Hmbown/DeepSeek-TUI&type=date&legend=top-left)](https://www.star-history.com/?repos=Hmbown%2FDeepSeek-TUI&type=date&logscale=&legend=top-left)
[![Star History Chart](https://api.star-history.com/chart?repos=Hmbown/CodeWhale&type=date&legend=top-left)](https://www.star-history.com/?repos=Hmbown%2FCodeWhale&type=date&logscale=&legend=top-left)
+2 -2
View File
@@ -11,7 +11,7 @@ Only the latest stable release receives security patches. No backports to older
| latest stable | :white_check_mark: |
| < latest | :x: |
Check the [releases page](https://github.com/Hmbown/DeepSeek-TUI/releases) for the current version.
Check the [releases page](https://github.com/Hmbown/CodeWhale/releases) for the current version.
## Reporting a Vulnerability
@@ -19,7 +19,7 @@ Check the [releases page](https://github.com/Hmbown/DeepSeek-TUI/releases) for t
Report privately via one of:
- **GitHub private advisory**: [github.com/Hmbown/DeepSeek-TUI/security/advisories/new](https://github.com/Hmbown/DeepSeek-TUI/security/advisories/new)
- **GitHub private advisory**: [github.com/Hmbown/CodeWhale/security/advisories/new](https://github.com/Hmbown/CodeWhale/security/advisories/new)
- **Email**: [security@deepseek-tui.com](mailto:security@deepseek-tui.com) — include `[SECURITY]` in the subject line
Include in your report:
+2 -2
View File
@@ -1,5 +1,5 @@
# ╔══════════════════════════════════════════════════════════════════════════════╗
# ║ Codewhale Configuration ║
# ║ CodeWhale Configuration ║
# ║ ║
# ║ Terminal coding agent for DeepSeek. ║
# ╚══════════════════════════════════════════════════════════════════════════════╝
@@ -530,7 +530,7 @@ default_text_model = "deepseek-ai/deepseek-v4-pro"
#
# [[hooks.hooks]]
# event = "session_start"
# command = "echo 'Codewhale session started'"
# command = "echo 'CodeWhale session started'"
#
# # Inject ephemeral creds into every shell call. Output one
# # KEY=VALUE per line on stdout (export prefix optional).
+4 -4
View File
@@ -115,7 +115,7 @@ struct Cli {
enum Commands {
/// Run interactive/non-interactive flows via the TUI binary.
Run(RunArgs),
/// Run Codewhale diagnostics.
/// Run CodeWhale diagnostics.
Doctor(TuiPassthroughArgs),
/// List live DeepSeek API models via the TUI binary.
Models(TuiPassthroughArgs),
@@ -129,7 +129,7 @@ enum Commands {
Init(TuiPassthroughArgs),
/// Bootstrap MCP config and/or skills directories.
Setup(TuiPassthroughArgs),
/// Run the Codewhale non-interactive agent command.
/// Run the CodeWhale non-interactive agent command.
#[command(after_help = "\
Common forwarded flags:
--auto Enable agentic mode with tool access
@@ -140,7 +140,7 @@ Common forwarded flags:
--output-format <FORMAT> Output format: text or stream-json
")]
Exec(TuiPassthroughArgs),
/// Run a Codewhale-powered code review over a git diff.
/// Run a CodeWhale-powered code review over a git diff.
Review(TuiPassthroughArgs),
/// Apply a patch file or stdin to the working tree.
Apply(TuiPassthroughArgs),
@@ -1572,7 +1572,7 @@ The `codewhale` dispatcher delegates interactive sessions to a sibling \
• npm: npm install -g codewhale (downloads both binaries)\n\
• cargo: cargo install codewhale-cli codewhale-tui --locked\n\
• GitHub Releases: download BOTH `codewhale-<platform>` AND \
`codewhale-tui-<platform>` from https://github.com/Hmbown/DeepSeek-TUI/releases/latest \
`codewhale-tui-<platform>` from https://github.com/Hmbown/CodeWhale/releases/latest \
and place them in the same directory.\n\
\n\
Or set DEEPSEEK_TUI_BIN to the absolute path of an existing `codewhale-tui` binary.",
+2 -2
View File
@@ -1,7 +1,7 @@
//! Self-update for the `codewhale` binary.
//!
//! The `update` subcommand fetches the latest release from
//! `github.com/Hmbown/DeepSeek-TUI/releases/latest`, downloads the
//! `github.com/Hmbown/CodeWhale/releases/latest`, downloads the
//! platform-correct binary, verifies its SHA256 checksum, and atomically
//! replaces the currently running binary.
@@ -12,7 +12,7 @@ use anyhow::{Context, Result, bail};
use std::io::Write;
const CHECKSUM_MANIFEST_ASSET: &str = "codewhale-artifacts-sha256.txt";
const LATEST_RELEASE_URL: &str = "https://api.github.com/repos/Hmbown/DeepSeek-TUI/releases/latest";
const LATEST_RELEASE_URL: &str = "https://api.github.com/repos/Hmbown/CodeWhale/releases/latest";
const CNB_REPO_URL: &str = "https://cnb.cool/codewhale.net/codewhale";
const RELEASE_BASE_URL_ENV: &str = "DEEPSEEK_TUI_RELEASE_BASE_URL";
const LEGACY_RELEASE_BASE_URL_ENV: &str = "DEEPSEEK_RELEASE_BASE_URL";
+81 -81
View File
@@ -4099,7 +4099,7 @@ Welcome — and thank you.
- Multi-turn tool calls on thinking-mode models no longer return HTTP 400. Every assistant message in the conversation now carries `reasoning_content` when thinking is enabled — not just tool-call rounds — matching DeepSeek's actual API validation, which rejects any assistant message missing the field even though the docs describe non-tool-call reasoning as "ignored".
- Added a final-pass wire-payload sanitizer in the chat-completions client that forces a non-empty `reasoning_content` placeholder onto any assistant message still missing one at request time. This is the last line of defense after engine-side and build-side substitution, so sessions restored from older checkpoints, sub-agents that append messages directly, and cached prefix mismatches all produce a valid request.
- On a `reasoning_content`-related 400, the client now logs the offending message indices to make future regressions diagnosable.
- Stripped phantom `web.run` references from prompts and the `web_search` tool surface ([#25](https://github.com/Hmbown/DeepSeek-TUI/issues/25)).
- Stripped phantom `web.run` references from prompts and the `web_search` tool surface ([#25](https://github.com/Hmbown/CodeWhale/issues/25)).
### Changed
- Header/UI widget refactor in the TUI (`crates/tui/src/tui/ui.rs`, `widgets/header.rs`) — internal cleanup, no user-visible behavior change.
@@ -4595,83 +4595,83 @@ Welcome — and thank you.
- Hooks system and config profiles
- Example skills and launch assets
[Unreleased]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.41...HEAD
[0.8.41]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.40...v0.8.41
[0.8.40]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.39...v0.8.40
[0.8.39]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.38...v0.8.39
[0.8.38]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.37...v0.8.38
[0.8.37]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.36...v0.8.37
[0.8.36]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.35...v0.8.36
[0.8.35]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.34...v0.8.35
[0.8.34]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.33...v0.8.34
[0.8.33]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.32...v0.8.33
[0.8.32]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.31...v0.8.32
[0.8.31]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.30...v0.8.31
[0.8.30]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.29...v0.8.30
[0.8.29]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.28...v0.8.29
[0.8.28]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.27...v0.8.28
[0.8.27]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.26...v0.8.27
[0.8.26]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.25...v0.8.26
[0.8.25]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.24...v0.8.25
[0.8.24]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.23...v0.8.24
[0.8.23]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.22...v0.8.23
[0.8.22]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.21...v0.8.22
[0.8.21]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.20...v0.8.21
[0.8.20]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.19...v0.8.20
[0.8.19]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.18...v0.8.19
[0.8.18]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.17...v0.8.18
[0.8.17]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.16...v0.8.17
[0.8.16]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.15...v0.8.16
[0.8.15]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.13...v0.8.15
[0.8.13]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.12...v0.8.13
[0.8.12]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.11...v0.8.12
[0.8.11]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.10...v0.8.11
[0.8.10]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.8...v0.8.10
[0.8.8]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.7...v0.8.8
[0.8.7]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.6...v0.8.7
[0.8.6]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.5...v0.8.6
[0.8.5]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.4...v0.8.5
[0.8.4]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.3...v0.8.4
[0.8.3]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.2...v0.8.3
[0.8.2]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.1...v0.8.2
[0.8.1]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.8.0...v0.8.1
[0.8.0]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.7.9...v0.8.0
[0.7.9]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.7.8...v0.7.9
[0.7.8]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.7.7...v0.7.8
[0.7.7]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.7.6...v0.7.7
[0.7.6]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.7.5...v0.7.6
[0.6.1]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.6.0...v0.6.1
[0.6.0]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.4.9...v0.6.0
[0.4.9]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.4.8...v0.4.9
[0.4.8]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.33...v0.4.8
[0.3.33]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.32...v0.3.33
[0.3.32]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.31...v0.3.32
[0.3.31]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.28...v0.3.31
[0.3.28]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.27...v0.3.28
[0.3.23]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.22...v0.3.23
[0.3.22]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.21...v0.3.22
[0.3.21]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.17...v0.3.21
[0.3.17]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.16...v0.3.17
[0.3.16]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.14...v0.3.16
[0.3.14]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.13...v0.3.14
[0.3.13]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.12...v0.3.13
[0.3.12]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.11...v0.3.12
[0.3.11]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.10...v0.3.11
[0.3.10]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.6...v0.3.10
[0.3.6]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.5...v0.3.6
[0.3.5]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.4...v0.3.5
[0.3.4]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.3...v0.3.4
[0.3.3]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.2...v0.3.3
[0.3.2]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.1...v0.3.2
[0.3.1]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.3.0...v0.3.1
[0.3.0]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.2.2...v0.3.0
[0.2.2]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.2.0...v0.2.2
[0.2.0]: https://github.com/Hmbown/DeepSeek-TUI/releases/tag/v0.2.0
[0.0.2]: https://github.com/Hmbown/DeepSeek-TUI/releases/tag/v0.0.2
[0.0.1]: https://github.com/Hmbown/DeepSeek-TUI/releases/tag/v0.0.1
[0.1.9]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.1.8...v0.1.9
[0.1.8]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.1.7...v0.1.8
[0.1.7]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.1.6...v0.1.7
[0.1.6]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.1.5...v0.1.6
[0.1.5]: https://github.com/Hmbown/DeepSeek-TUI/compare/v0.1.0...v0.1.5
[0.1.0]: https://github.com/Hmbown/DeepSeek-TUI/releases/tag/v0.1.0
[Unreleased]: https://github.com/Hmbown/CodeWhale/compare/v0.8.41...HEAD
[0.8.41]: https://github.com/Hmbown/CodeWhale/compare/v0.8.40...v0.8.41
[0.8.40]: https://github.com/Hmbown/CodeWhale/compare/v0.8.39...v0.8.40
[0.8.39]: https://github.com/Hmbown/CodeWhale/compare/v0.8.38...v0.8.39
[0.8.38]: https://github.com/Hmbown/CodeWhale/compare/v0.8.37...v0.8.38
[0.8.37]: https://github.com/Hmbown/CodeWhale/compare/v0.8.36...v0.8.37
[0.8.36]: https://github.com/Hmbown/CodeWhale/compare/v0.8.35...v0.8.36
[0.8.35]: https://github.com/Hmbown/CodeWhale/compare/v0.8.34...v0.8.35
[0.8.34]: https://github.com/Hmbown/CodeWhale/compare/v0.8.33...v0.8.34
[0.8.33]: https://github.com/Hmbown/CodeWhale/compare/v0.8.32...v0.8.33
[0.8.32]: https://github.com/Hmbown/CodeWhale/compare/v0.8.31...v0.8.32
[0.8.31]: https://github.com/Hmbown/CodeWhale/compare/v0.8.30...v0.8.31
[0.8.30]: https://github.com/Hmbown/CodeWhale/compare/v0.8.29...v0.8.30
[0.8.29]: https://github.com/Hmbown/CodeWhale/compare/v0.8.28...v0.8.29
[0.8.28]: https://github.com/Hmbown/CodeWhale/compare/v0.8.27...v0.8.28
[0.8.27]: https://github.com/Hmbown/CodeWhale/compare/v0.8.26...v0.8.27
[0.8.26]: https://github.com/Hmbown/CodeWhale/compare/v0.8.25...v0.8.26
[0.8.25]: https://github.com/Hmbown/CodeWhale/compare/v0.8.24...v0.8.25
[0.8.24]: https://github.com/Hmbown/CodeWhale/compare/v0.8.23...v0.8.24
[0.8.23]: https://github.com/Hmbown/CodeWhale/compare/v0.8.22...v0.8.23
[0.8.22]: https://github.com/Hmbown/CodeWhale/compare/v0.8.21...v0.8.22
[0.8.21]: https://github.com/Hmbown/CodeWhale/compare/v0.8.20...v0.8.21
[0.8.20]: https://github.com/Hmbown/CodeWhale/compare/v0.8.19...v0.8.20
[0.8.19]: https://github.com/Hmbown/CodeWhale/compare/v0.8.18...v0.8.19
[0.8.18]: https://github.com/Hmbown/CodeWhale/compare/v0.8.17...v0.8.18
[0.8.17]: https://github.com/Hmbown/CodeWhale/compare/v0.8.16...v0.8.17
[0.8.16]: https://github.com/Hmbown/CodeWhale/compare/v0.8.15...v0.8.16
[0.8.15]: https://github.com/Hmbown/CodeWhale/compare/v0.8.13...v0.8.15
[0.8.13]: https://github.com/Hmbown/CodeWhale/compare/v0.8.12...v0.8.13
[0.8.12]: https://github.com/Hmbown/CodeWhale/compare/v0.8.11...v0.8.12
[0.8.11]: https://github.com/Hmbown/CodeWhale/compare/v0.8.10...v0.8.11
[0.8.10]: https://github.com/Hmbown/CodeWhale/compare/v0.8.8...v0.8.10
[0.8.8]: https://github.com/Hmbown/CodeWhale/compare/v0.8.7...v0.8.8
[0.8.7]: https://github.com/Hmbown/CodeWhale/compare/v0.8.6...v0.8.7
[0.8.6]: https://github.com/Hmbown/CodeWhale/compare/v0.8.5...v0.8.6
[0.8.5]: https://github.com/Hmbown/CodeWhale/compare/v0.8.4...v0.8.5
[0.8.4]: https://github.com/Hmbown/CodeWhale/compare/v0.8.3...v0.8.4
[0.8.3]: https://github.com/Hmbown/CodeWhale/compare/v0.8.2...v0.8.3
[0.8.2]: https://github.com/Hmbown/CodeWhale/compare/v0.8.1...v0.8.2
[0.8.1]: https://github.com/Hmbown/CodeWhale/compare/v0.8.0...v0.8.1
[0.8.0]: https://github.com/Hmbown/CodeWhale/compare/v0.7.9...v0.8.0
[0.7.9]: https://github.com/Hmbown/CodeWhale/compare/v0.7.8...v0.7.9
[0.7.8]: https://github.com/Hmbown/CodeWhale/compare/v0.7.7...v0.7.8
[0.7.7]: https://github.com/Hmbown/CodeWhale/compare/v0.7.6...v0.7.7
[0.7.6]: https://github.com/Hmbown/CodeWhale/compare/v0.7.5...v0.7.6
[0.6.1]: https://github.com/Hmbown/CodeWhale/compare/v0.6.0...v0.6.1
[0.6.0]: https://github.com/Hmbown/CodeWhale/compare/v0.4.9...v0.6.0
[0.4.9]: https://github.com/Hmbown/CodeWhale/compare/v0.4.8...v0.4.9
[0.4.8]: https://github.com/Hmbown/CodeWhale/compare/v0.3.33...v0.4.8
[0.3.33]: https://github.com/Hmbown/CodeWhale/compare/v0.3.32...v0.3.33
[0.3.32]: https://github.com/Hmbown/CodeWhale/compare/v0.3.31...v0.3.32
[0.3.31]: https://github.com/Hmbown/CodeWhale/compare/v0.3.28...v0.3.31
[0.3.28]: https://github.com/Hmbown/CodeWhale/compare/v0.3.27...v0.3.28
[0.3.23]: https://github.com/Hmbown/CodeWhale/compare/v0.3.22...v0.3.23
[0.3.22]: https://github.com/Hmbown/CodeWhale/compare/v0.3.21...v0.3.22
[0.3.21]: https://github.com/Hmbown/CodeWhale/compare/v0.3.17...v0.3.21
[0.3.17]: https://github.com/Hmbown/CodeWhale/compare/v0.3.16...v0.3.17
[0.3.16]: https://github.com/Hmbown/CodeWhale/compare/v0.3.14...v0.3.16
[0.3.14]: https://github.com/Hmbown/CodeWhale/compare/v0.3.13...v0.3.14
[0.3.13]: https://github.com/Hmbown/CodeWhale/compare/v0.3.12...v0.3.13
[0.3.12]: https://github.com/Hmbown/CodeWhale/compare/v0.3.11...v0.3.12
[0.3.11]: https://github.com/Hmbown/CodeWhale/compare/v0.3.10...v0.3.11
[0.3.10]: https://github.com/Hmbown/CodeWhale/compare/v0.3.6...v0.3.10
[0.3.6]: https://github.com/Hmbown/CodeWhale/compare/v0.3.5...v0.3.6
[0.3.5]: https://github.com/Hmbown/CodeWhale/compare/v0.3.4...v0.3.5
[0.3.4]: https://github.com/Hmbown/CodeWhale/compare/v0.3.3...v0.3.4
[0.3.3]: https://github.com/Hmbown/CodeWhale/compare/v0.3.2...v0.3.3
[0.3.2]: https://github.com/Hmbown/CodeWhale/compare/v0.3.1...v0.3.2
[0.3.1]: https://github.com/Hmbown/CodeWhale/compare/v0.3.0...v0.3.1
[0.3.0]: https://github.com/Hmbown/CodeWhale/compare/v0.2.2...v0.3.0
[0.2.2]: https://github.com/Hmbown/CodeWhale/compare/v0.2.0...v0.2.2
[0.2.0]: https://github.com/Hmbown/CodeWhale/releases/tag/v0.2.0
[0.0.2]: https://github.com/Hmbown/CodeWhale/releases/tag/v0.0.2
[0.0.1]: https://github.com/Hmbown/CodeWhale/releases/tag/v0.0.1
[0.1.9]: https://github.com/Hmbown/CodeWhale/compare/v0.1.8...v0.1.9
[0.1.8]: https://github.com/Hmbown/CodeWhale/compare/v0.1.7...v0.1.8
[0.1.7]: https://github.com/Hmbown/CodeWhale/compare/v0.1.6...v0.1.7
[0.1.6]: https://github.com/Hmbown/CodeWhale/compare/v0.1.5...v0.1.6
[0.1.5]: https://github.com/Hmbown/CodeWhale/compare/v0.1.0...v0.1.5
[0.1.0]: https://github.com/Hmbown/CodeWhale/releases/tag/v0.1.0
+1 -1
View File
@@ -516,7 +516,7 @@ impl DeepSeekClient {
.user_agent(concat!(
"Mozilla/5.0 (compatible; codewhale/",
env!("CARGO_PKG_VERSION"),
"; +https://github.com/Hmbown/DeepSeek-TUI)"
"; +https://github.com/Hmbown/CodeWhale)"
))
.connect_timeout(Duration::from_secs(30))
.tcp_keepalive(Some(Duration::from_secs(30)))
+5 -5
View File
@@ -1,7 +1,7 @@
use super::CommandResult;
use crate::tui::app::{App, AppAction};
const SECURITY_POLICY_URL: &str = "https://github.com/Hmbown/DeepSeek-TUI/security/policy";
const SECURITY_POLICY_URL: &str = "https://github.com/Hmbown/CodeWhale/security/policy";
pub fn feedback(_app: &mut App, arg: Option<&str>) -> CommandResult {
let raw = arg.map(str::trim).unwrap_or("");
@@ -78,9 +78,9 @@ impl FeedbackKind {
fn issue_url_base(self) -> &'static str {
match self {
Self::Bug => "https://github.com/Hmbown/DeepSeek-TUI/issues/new?template=bug_report.md",
Self::Bug => "https://github.com/Hmbown/CodeWhale/issues/new?template=bug_report.md",
Self::Feature => {
"https://github.com/Hmbown/DeepSeek-TUI/issues/new?template=feature_request.md"
"https://github.com/Hmbown/CodeWhale/issues/new?template=feature_request.md"
}
Self::Security => SECURITY_POLICY_URL,
}
@@ -244,11 +244,11 @@ mod tests {
assert_eq!(
bug,
"https://github.com/Hmbown/DeepSeek-TUI/issues/new?template=bug_report.md"
"https://github.com/Hmbown/CodeWhale/issues/new?template=bug_report.md"
);
assert_eq!(
feature,
"https://github.com/Hmbown/DeepSeek-TUI/issues/new?template=feature_request.md"
"https://github.com/Hmbown/CodeWhale/issues/new?template=feature_request.md"
);
}
+1 -1
View File
@@ -791,7 +791,7 @@ fn build_relay_instruction(app: &App, focus: Option<&str>) -> String {
let mut out = String::new();
let _ = writeln!(
out,
"Create a compact session relay (接力) for a future Codewhale thread."
"Create a compact session relay (接力) for a future CodeWhale thread."
);
let _ = writeln!(out);
let _ = writeln!(out, "Write or update `.deepseek/handoff.md`.");
+2 -2
View File
@@ -126,7 +126,7 @@ fn render_session_html(history_json: &str, model: &str, mode: &str) -> String {
</div>
<pre>{escaped_body}</pre>
<div class="footer">
Generated by codewhale · https://github.com/Hmbown/DeepSeek-TUI
Generated by codewhale · https://github.com/Hmbown/CodeWhale
</div>
</body>
</html>"#,
@@ -219,6 +219,6 @@ mod tests {
assert!(html.contains("plan"));
assert!(html.contains("test data"));
assert!(html.contains("Exported:"));
assert!(html.contains("https://github.com/Hmbown/DeepSeek-TUI"));
assert!(html.contains("https://github.com/Hmbown/CodeWhale"));
}
}
+1 -1
View File
@@ -123,7 +123,7 @@ impl PrefixChange {
/// Monitors and manages prefix-cache stability across turns.
///
/// This is the core abstraction, mirroring Reasonix's `ImmutablePrefix`
/// concept but adapted to Codewhale's existing architecture where the
/// concept but adapted to CodeWhale's existing architecture where the
/// system prompt is rebuilt each turn and tools are registered at startup.
///
/// Usage:
+3 -3
View File
@@ -1,4 +1,4 @@
//! Project context loading for Codewhale.
//! Project context loading for CodeWhale.
//!
//! This module handles loading project-specific context files that provide
//! instructions and context to the AI agent. These include:
@@ -529,7 +529,7 @@ fn auto_generate_context(workspace: &Path) -> Option<String> {
let content = format!(
"# Project Structure (Auto-generated)\n\n\
> This file was automatically generated by Codewhale.\n\
> This file was automatically generated by CodeWhale.\n\
> You can edit or delete it at any time.\n\n\
**Summary:** {summary}\n\n\
**Tree:**\n```\n{tree}\n```"
@@ -612,7 +612,7 @@ pub fn create_default_agents_md(workspace: &Path) -> std::io::Result<PathBuf> {
let default_content = r#"# Project Agent Instructions
This file provides guidance to AI agents (Codewhale, Claude Code, etc.) when working with code in this repository.
This file provides guidance to AI agents (CodeWhale, Claude Code, etc.) when working with code in this repository.
## File Location
+1 -1
View File
@@ -3,7 +3,7 @@
//! Sandbox module for secure command execution.
//!
//! This module provides sandboxing capabilities for shell commands executed by
//! Codewhale. Sandboxing restricts what system resources a command can access,
//! CodeWhale. Sandboxing restricts what system resources a command can access,
//! preventing accidental or malicious damage to the system.
//!
//! # Platform Support
+1 -1
View File
@@ -33,7 +33,7 @@ pub enum SandboxPolicy {
/// Indicates the process is already running in an external sandbox.
///
/// Use this when Codewhale is itself running inside a container,
/// Use this when CodeWhale is itself running inside a container,
/// VM, or other sandboxed environment. This avoids double-sandboxing
/// which can cause issues.
#[serde(rename = "external-sandbox")]
+1 -1
View File
@@ -1,6 +1,6 @@
//! Windows sandbox helper contract.
//!
//! Current status: Codewhale does not advertise an in-process Windows
//! Current status: CodeWhale does not advertise an in-process Windows
//! sandbox. Future Windows support must run commands through a dedicated
//! helper that provides process-tree containment with a Job Object and
//! `JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE`.
+1 -1
View File
@@ -115,7 +115,7 @@ const SIZE_WALK_SKIP_DIRS: &[&str] = &[
];
const BUILTIN_EXCLUDES: &str = "\
# Codewhale built-in snapshot exclusions
# CodeWhale built-in snapshot exclusions
node_modules/
target/
dist/
+1 -1
View File
@@ -26,7 +26,7 @@ const DEFAULT_TIMEOUT_MS: u64 = 15_000;
const HARD_MAX_TIMEOUT_MS: u64 = 60_000;
const MAX_REDIRECTS: usize = 5;
const USER_AGENT: &str =
"Mozilla/5.0 (compatible; codewhale/0.5; +https://github.com/Hmbown/DeepSeek-TUI)";
"Mozilla/5.0 (compatible; codewhale/0.5; +https://github.com/Hmbown/CodeWhale)";
static SCRIPT_RE: OnceLock<Regex> = OnceLock::new();
static STYLE_RE: OnceLock<Regex> = OnceLock::new();
+1 -1
View File
@@ -1,4 +1,4 @@
//! Tool specification traits for the Codewhale agent system.
//! Tool specification traits for the CodeWhale agent system.
//!
//! This module defines the core abstractions for tools:
//! - `ToolSpec`: The main trait that all tools must implement
+3 -3
View File
@@ -510,7 +510,7 @@ mod tests {
app.system_prompt = Some(SystemPrompt::Blocks(vec![
SystemBlock {
block_type: "text".to_string(),
text: "## Stable Base\n\nYou are Codewhale.".to_string(),
text: "## Stable Base\n\nYou are CodeWhale.".to_string(),
cache_control: None,
},
SystemBlock {
@@ -570,7 +570,7 @@ mod tests {
fn inspector_text_prompt_shows_layer_map() {
let mut app = test_app();
app.system_prompt = Some(SystemPrompt::Text(
"You are Codewhale.\n\n<project_instructions source=\"AGENTS.md\">\nRules\n</project_instructions>\n\n## Project Context Pack\n{}\n\n## Environment\n- lang: en\n\n## Skills\n- rust\n\n## Context Management\nKeep compact\n\n## Compact\nTemplate\n\n## Repo Working Set\nsrc/".to_string(),
"You are CodeWhale.\n\n<project_instructions source=\"AGENTS.md\">\nRules\n</project_instructions>\n\n## Project Context Pack\n{}\n\n## Environment\n- lang: en\n\n## Skills\n- rust\n\n## Context Management\nKeep compact\n\n## Compact\nTemplate\n\n## Repo Working Set\nsrc/".to_string(),
));
let text = build_context_inspector_text(&app);
@@ -590,7 +590,7 @@ mod tests {
#[test]
fn inspector_text_prompt_without_markers_shows_single_blob() {
let mut app = test_app();
app.system_prompt = Some(SystemPrompt::Text("You are Codewhale.".to_string()));
app.system_prompt = Some(SystemPrompt::Text("You are CodeWhale.".to_string()));
let text = build_context_inspector_text(&app);
assert!(text.contains("Single text blob"));
+1 -1
View File
@@ -43,7 +43,7 @@ pub fn render(f: &mut Frame, area: Rect, app: &App) {
if !lines.is_empty() {
let mut panel = Block::default()
.title(Line::from(Span::styled(
" Codewhale ",
" CodeWhale ",
Style::default()
.fg(palette::DEEPSEEK_BLUE)
.add_modifier(Modifier::BOLD),
+1 -1
View File
@@ -2287,7 +2287,7 @@ mod tests {
let mut app = create_test_app();
for _ in 0..3 {
app.history.push(HistoryCell::Tool(ToolCell::Exec(ExecCell {
command: "cd /tmp/repo && sleep 15 && gh pr checks 1616 --repo Hmbown/DeepSeek-TUI"
command: "cd /tmp/repo && sleep 15 && gh pr checks 1616 --repo Hmbown/CodeWhale"
.to_string(),
status: ToolStatus::Failed,
output: Some("Lint pending\nTest pending".to_string()),
+1 -1
View File
@@ -1554,7 +1554,7 @@ fn active_tool_status_label_strips_shell_wrappers_from_ci_polling() {
active.push_tool(
"exec-1",
HistoryCell::Tool(ToolCell::Exec(ExecCell {
command: "cd /tmp/repo && sleep 15 && gh pr checks 1611 --repo Hmbown/DeepSeek-TUI"
command: "cd /tmp/repo && sleep 15 && gh pr checks 1611 --repo Hmbown/CodeWhale"
.to_string(),
status: ToolStatus::Running,
output: None,
+1 -1
View File
@@ -255,7 +255,7 @@ mod tests {
#[test]
fn concise_shell_command_label_prefers_gh_pr_checks_over_wrappers() {
let label = concise_shell_command_label(
"cd /tmp/repo && sleep 15 && gh pr checks 1611 --repo Hmbown/DeepSeek-TUI",
"cd /tmp/repo && sleep 15 && gh pr checks 1611 --repo Hmbown/CodeWhale",
80,
);
assert_eq!(label, "gh pr checks 1611");
+1 -1
View File
@@ -149,7 +149,7 @@ impl ModalView for ModePickerView {
let mut lines = Vec::with_capacity(MODE_ROWS.len() + 1);
lines.push(Line::from(Span::styled(
"Choose how Codewhale should operate:",
"Choose how CodeWhale should operate:",
Style::default().fg(palette::TEXT_MUTED),
)));
+1 -1
View File
@@ -8,7 +8,7 @@
//!
//! Threat model: this is a deliberate user opt-in to a path the workspace
//! sandbox would otherwise refuse. The only access the trust list grants is
//! through Codewhale's own file tools (`read_file`, `write_file`, etc.) —
//! through CodeWhale's own file tools (`read_file`, `write_file`, etc.) —
//! it does not loosen the OS sandbox profile (Seatbelt/Landlock) used for
//! shell commands. Sandbox-profile expansion is tracked separately so a
//! shell tool can opt into the same paths in a future release.
@@ -3,7 +3,7 @@
environments:
- name: lighthouse-hk
description: Deploy Codewhale to Tencent Lighthouse Hong Kong.
description: Deploy CodeWhale to Tencent Lighthouse Hong Kong.
env:
name: lighthouse-hk
button:
@@ -1,5 +1,5 @@
[Unit]
Description=Codewhale Feishu/Lark Phone Bridge
Description=CodeWhale Feishu/Lark Phone Bridge
Wants=network-online.target codewhale-runtime.service
After=network-online.target codewhale-runtime.service
@@ -1,5 +1,5 @@
[Unit]
Description=Codewhale Runtime API
Description=CodeWhale Runtime API
Wants=network-online.target
After=network-online.target
+3 -3
View File
@@ -68,14 +68,14 @@ version renders cleanly.
Terminal) will pass the rendered content straight through.
* If you find a UI surface that still produces motion when
`low_motion = true`, please file an issue against
[`PRIOR: Screen-reader / accessibility flag`](https://github.com/Hmbown/DeepSeek-TUI/issues/450)
[`PRIOR: Screen-reader / accessibility flag`](https://github.com/Hmbown/CodeWhale/issues/450)
with a screenshot or terminal recording.
## Related issues / history
* [#450](https://github.com/Hmbown/DeepSeek-TUI/issues/450) —
* [#450](https://github.com/Hmbown/CodeWhale/issues/450) —
documenting the existing flag, adding the `NO_ANIMATIONS`
startup overlay, and writing this page.
* [#449](https://github.com/Hmbown/DeepSeek-TUI/issues/449) —
* [#449](https://github.com/Hmbown/CodeWhale/issues/449) —
footer statusline now uses the active theme's contrast pair
instead of a bespoke palette.
+5 -5
View File
@@ -77,7 +77,7 @@ git ls-remote https://cnb.cool/codewhale.net/codewhale.git \
refs/tags/vX.Y.Z
# Quick check: is CNB's main at the same commit as origin/main?
gh_main=$(git ls-remote https://github.com/Hmbown/DeepSeek-TUI.git refs/heads/main | awk '{print $1}')
gh_main=$(git ls-remote https://github.com/Hmbown/CodeWhale.git refs/heads/main | awk '{print $1}')
cnb_main=$(git ls-remote https://cnb.cool/codewhale.net/codewhale.git refs/heads/main | awk '{print $1}')
test "$gh_main" = "$cnb_main" && echo "in sync" || echo "DIVERGED: gh=$gh_main cnb=$cnb_main"
```
@@ -85,7 +85,7 @@ test "$gh_main" = "$cnb_main" && echo "in sync" || echo "DIVERGED: gh=$gh_main c
Or check the workflow run directly:
```bash
gh run list --workflow=sync-cnb.yml --repo Hmbown/DeepSeek-TUI --limit 5
gh run list --workflow=sync-cnb.yml --repo Hmbown/CodeWhale --limit 5
```
If the most recent run for the release tag is `success`, the mirror
@@ -132,7 +132,7 @@ If the workflow is healthy but happened to fail on the release run
without pushing anything:
```bash
gh workflow run sync-cnb.yml --repo Hmbown/DeepSeek-TUI
gh workflow run sync-cnb.yml --repo Hmbown/CodeWhale
```
`workflow_dispatch` runs against the workflow's default branch
@@ -148,11 +148,11 @@ expired:
with `repo` (push) scope.
2. Update the `CNB_GIT_TOKEN` repository secret:
```bash
gh secret set CNB_GIT_TOKEN --repo Hmbown/DeepSeek-TUI
gh secret set CNB_GIT_TOKEN --repo Hmbown/CodeWhale
```
3. Re-trigger the workflow on a recent commit:
```bash
gh workflow run sync-cnb.yml --repo Hmbown/DeepSeek-TUI
gh workflow run sync-cnb.yml --repo Hmbown/CodeWhale
```
4. Confirm the run succeeds via `gh run list --workflow=sync-cnb.yml`.
+2 -2
View File
@@ -1,6 +1,6 @@
# Docker
Codewhale publishes a multi-arch Linux image to GitHub Container Registry
CodeWhale publishes a multi-arch Linux image to GitHub Container Registry
for each release.
```bash
@@ -34,7 +34,7 @@ docker run --rm -it \
```
Replace `vX.Y.Z` with a tag from
[GitHub Releases](https://github.com/Hmbown/DeepSeek-TUI/releases).
[GitHub Releases](https://github.com/Hmbown/CodeWhale/releases).
## Local build
+16 -16
View File
@@ -1,4 +1,4 @@
# Installing Codewhale
# Installing CodeWhale
This page covers every supported install path and the most common
"it didn't install" failures, including **Linux ARM64** and other less
@@ -48,7 +48,7 @@ systems such as Alpine should use [Build from source](#7-build-from-source).
## 2. Download safety and checksums
Official release binaries are published only from
`https://github.com/Hmbown/DeepSeek-TUI/releases` and the npm package named
`https://github.com/Hmbown/CodeWhale/releases` and the npm package named
`codewhale-tui`. Do not install release assets from look-alike repositories,
archives, or search-result mirrors unless you deliberately trust that mirror.
@@ -57,7 +57,7 @@ binaries manually, verify them before running:
```bash
# Run from the directory containing the downloaded binaries.
curl -L -O https://github.com/Hmbown/DeepSeek-TUI/releases/latest/download/codewhale-artifacts-sha256.txt
curl -L -O https://github.com/Hmbown/CodeWhale/releases/latest/download/codewhale-artifacts-sha256.txt
sha256sum -c codewhale-artifacts-sha256.txt --ignore-missing
```
@@ -198,14 +198,14 @@ then follow [Tencent Lighthouse Hong Kong Phone Setup](TENCENT_LIGHTHOUSE_HK.md)
If you already have Nix with flake support, run:
```sh
nix run github:Hmbown/DeepSeek-TUI
nix run github:Hmbown/CodeWhale
```
Nix builds `codewhale-tui` and then starts the `codewhale` dispatcher. Pass
arguments after `--`, for example:
```sh
nix run github:Hmbown/DeepSeek-TUI -- --help
nix run github:Hmbown/CodeWhale -- --help
```
### Flake
@@ -217,7 +217,7 @@ Add inputs to `flake.nix`:
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
codewhale-tui.url = "github:Hmbown/DeepSeek-TUI";
codewhale-tui.url = "github:Hmbown/CodeWhale";
codewhale-tui.inputs.nixpkgs.follows = "nixpkgs";
};
}
@@ -252,16 +252,16 @@ Install into a NixOS module:
## 6. Manual download from GitHub Releases
Grab the matching pair of binaries for your platform from the
[Releases page](https://github.com/Hmbown/DeepSeek-TUI/releases) and drop them
[Releases page](https://github.com/Hmbown/CodeWhale/releases) and drop them
side by side into a directory on your `PATH` (e.g. `~/.local/bin`):
```bash
# Linux ARM64 example
mkdir -p ~/.local/bin
curl -L -o ~/.local/bin/codewhale \
https://github.com/Hmbown/DeepSeek-TUI/releases/latest/download/codewhale-linux-arm64
https://github.com/Hmbown/CodeWhale/releases/latest/download/codewhale-linux-arm64
curl -L -o ~/.local/bin/codewhale-tui \
https://github.com/Hmbown/DeepSeek-TUI/releases/latest/download/codewhale-tui-linux-arm64
https://github.com/Hmbown/CodeWhale/releases/latest/download/codewhale-tui-linux-arm64
chmod +x ~/.local/bin/codewhale ~/.local/bin/codewhale-tui
codewhale --version
```
@@ -270,7 +270,7 @@ Verify integrity against the per-release SHA-256 manifest:
```bash
curl -L -o /tmp/codewhale-artifacts-sha256.txt \
https://github.com/Hmbown/DeepSeek-TUI/releases/latest/download/codewhale-artifacts-sha256.txt
https://github.com/Hmbown/CodeWhale/releases/latest/download/codewhale-artifacts-sha256.txt
( cd ~/.local/bin && sha256sum -c /tmp/codewhale-artifacts-sha256.txt --ignore-missing )
```
@@ -311,8 +311,8 @@ LoongArch, FreeBSD, and pre-2024 ARM64 distros.
### Build and install
```bash
git clone https://github.com/Hmbown/DeepSeek-TUI.git
cd DeepSeek-TUI
git clone https://github.com/Hmbown/CodeWhale.git
cd CodeWhale
cargo install --path crates/cli --locked # provides `codewhale`
cargo install --path crates/tui --locked # provides `codewhale-tui`
@@ -414,8 +414,8 @@ that session and run `cargo build` from the project root.
**Build**
```bash
git clone https://github.com/Hmbown/DeepSeek-TUI.git
cd DeepSeek-TUI
git clone https://github.com/Hmbown/CodeWhale.git
cd CodeWhale
set CARGO_HTTP_CHECK_REVOKE=false # may be needed behind some Chinese ISPs
cargo build --release
```
@@ -450,7 +450,7 @@ cargo install codewhale-tui --locked
### `codewhale update` reports `no asset found for platform codewhale-linux-aarch64`
This is [#503](https://github.com/Hmbown/DeepSeek-TUI/issues/503) in v0.8.7 —
This is [#503](https://github.com/Hmbown/CodeWhale/issues/503) in v0.8.7 —
the self-updater used Rust's `aarch64`/`x86_64` arch names instead of the
release artifact's `arm64`/`x64`. Workaround until v0.8.8:
@@ -619,7 +619,7 @@ Use one of these paths:
assets. See [Section 4](#4-install-via-cargo-any-tier-1-rust-target).
4. Download both `codewhale` and `codewhale-tui` manually from the
[Releases page](https://github.com/Hmbown/DeepSeek-TUI/releases), place them
[Releases page](https://github.com/Hmbown/CodeWhale/releases), place them
in a directory on `PATH`, and make them executable. See
[Section 6](#6-manual-download-from-github-releases).
+1 -1
View File
@@ -228,5 +228,5 @@ memory_path = "~/.deepseek/memory.md"
- `docs/SUBAGENTS.md` — sub-agents inherit memory and can use the
`remember` tool too.
- `docs/CONFIGURATION.md` — full config reference.
- Issue [#489](https://github.com/Hmbown/DeepSeek-TUI/issues/489)
- Issue [#489](https://github.com/Hmbown/CodeWhale/issues/489)
— phase-1 EPIC tracking the work.
+6 -6
View File
@@ -1,4 +1,4 @@
# Rebrand: DeepSeek TUI → Codewhale
# Rebrand: DeepSeek TUI → CodeWhale
Starting with **v0.8.41**, this project ships under a new name: `codewhale`.
@@ -55,8 +55,8 @@ Anything that targets the DeepSeek provider API stays exactly as it was:
- **Config directory**: `~/.deepseek/`. Renaming this would invalidate
every existing install's saved API key, sessions, skills, MCP config,
and audit log.
- **GitHub repository URL**: still `https://github.com/Hmbown/DeepSeek-TUI`.
A repo rename is a maintainer-side operation that ships separately.
- **GitHub repository URL**: `https://github.com/Hmbown/CodeWhale`.
The old `Hmbown/DeepSeek-TUI` URL redirects there during the transition.
- **Homebrew tap and formula** (`Hmbown/homebrew-deepseek-tui`): still
installs by the legacy name during the transition. The tap's formula
will be flipped to the new names in a follow-up.
@@ -119,15 +119,15 @@ still verifies.
## Why the name change
Codewhale is a shorter, terminal-friendlier handle for the same terminal
CodeWhale is a shorter, terminal-friendlier handle for the same terminal
coding agent. In v0.8.41 it remains centered on DeepSeek V4 while the project
name, command names, package names, release assets, Docker image, and CNB
mirror move to Codewhale.
mirror move to CodeWhale.
## Reporting issues with the rename
If your install broke during the migration, please open an issue at
<https://github.com/Hmbown/DeepSeek-TUI/issues> and include:
<https://github.com/Hmbown/CodeWhale/issues> and include:
- The output of `codewhale --version` (or `deepseek --version` if you're
still on the shim).
+1 -1
View File
@@ -1,4 +1,4 @@
# Codewhale Release Runbook
# CodeWhale Release Runbook
This runbook is the source of truth for shipping Rust crates, GitHub release assets,
and the `codewhale` npm wrapper.
+1 -1
View File
@@ -5,7 +5,7 @@ who want an always-on agent workspace, a phone control surface, and a stack
that works well from mainland China.
It complements the local install path. If you only want to use `codewhale` on a
laptop, start with the README quickstart. If you want "Codewhale as a remote
laptop, start with the README quickstart. If you want "CodeWhale as a remote
workbench I can control from my phone", start here.
## Default Stack
+1 -1
View File
@@ -99,7 +99,7 @@ Use an SSH repo URL instead if you want push access from the VPS. If the CNB
mirror is unavailable, fall back to:
```bash
export DEEPSEEK_REPO_URL=https://github.com/Hmbown/DeepSeek-TUI.git
export DEEPSEEK_REPO_URL=https://github.com/Hmbown/CodeWhale.git
```
For stable release docs, confirm the CNB mirror has the branch or tag before
+1 -1
View File
@@ -61,7 +61,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
meta = {
description = "Terminal coding agent for DeepSeek";
homepage = "https://github.com/Hmbown/DeepSeek-TUI";
homepage = "https://github.com/Hmbown/CodeWhale";
license = lib.licenses.mit;
mainProgram = "codewhale";
};
+2 -2
View File
@@ -69,7 +69,7 @@ Other platform/architecture combinations (musl, riscv64, FreeBSD, …) aren't
shipped as prebuilts. Unsupported platforms, checksum failures, and glibc
compatibility problems still fail with a clear error pointing you at
`cargo install codewhale-cli codewhale-tui --locked` and the full
[docs/INSTALL.md](https://github.com/Hmbown/DeepSeek-TUI/blob/main/docs/INSTALL.md)
[docs/INSTALL.md](https://github.com/Hmbown/CodeWhale/blob/main/docs/INSTALL.md)
build-from-source guide.
## Configuration
@@ -77,7 +77,7 @@ build-from-source guide.
- Default binary version comes from `codewhaleBinaryVersion` in `package.json`
(with `deepseekBinaryVersion` as a backward-compat fallback).
- Set `DEEPSEEK_TUI_VERSION` or `DEEPSEEK_VERSION` to override the release version.
- Set `DEEPSEEK_TUI_GITHUB_REPO` or `DEEPSEEK_GITHUB_REPO` to override the source repo (defaults to `Hmbown/DeepSeek-TUI`).
- Set `DEEPSEEK_TUI_GITHUB_REPO` or `DEEPSEEK_GITHUB_REPO` to override the source repo (defaults to `Hmbown/CodeWhale`).
- Set `DEEPSEEK_TUI_RELEASE_BASE_URL` to use an internal or mirrored
release-asset directory when GitHub Releases is unavailable. The directory
must contain `codewhale-artifacts-sha256.txt` and the platform binaries.
+2 -2
View File
@@ -1,8 +1,8 @@
#!/usr/bin/env node
const { runCodewhaleTui } = require("../scripts/run");
const { runCodeWhaleTui } = require("../scripts/run");
runCodewhaleTui().catch((error) => {
runCodeWhaleTui().catch((error) => {
console.error("Failed to start codewhale-tui:", error.message);
process.exit(1);
});
+2 -2
View File
@@ -1,8 +1,8 @@
#!/usr/bin/env node
const { runCodewhale } = require("../scripts/run");
const { runCodeWhale } = require("../scripts/run");
runCodewhale().catch((error) => {
runCodeWhale().catch((error) => {
console.error("Failed to start codewhale:", error.message);
process.exit(1);
});
+3 -3
View File
@@ -5,13 +5,13 @@
"description": "Install and run the codewhale CLI dispatcher and codewhale-tui terminal UI from GitHub release artifacts.",
"author": "Hmbown",
"license": "MIT",
"homepage": "https://github.com/Hmbown/DeepSeek-TUI",
"homepage": "https://github.com/Hmbown/CodeWhale",
"repository": {
"type": "git",
"url": "git+https://github.com/Hmbown/DeepSeek-TUI.git"
"url": "git+https://github.com/Hmbown/CodeWhale.git"
},
"bugs": {
"url": "https://github.com/Hmbown/DeepSeek-TUI/issues"
"url": "https://github.com/Hmbown/CodeWhale/issues"
},
"keywords": [
"codewhale",
+6 -6
View File
@@ -63,12 +63,12 @@ function unsupportedBuildHint() {
"",
"Or build from a checkout:",
"",
" git clone https://github.com/Hmbown/DeepSeek-TUI.git",
" cd DeepSeek-TUI",
" git clone https://github.com/Hmbown/CodeWhale.git",
" cd CodeWhale",
" cargo install --path crates/cli --locked",
" cargo install --path crates/tui --locked",
"",
"See https://github.com/Hmbown/DeepSeek-TUI/blob/main/docs/INSTALL.md",
"See https://github.com/Hmbown/CodeWhale/blob/main/docs/INSTALL.md",
"for cross-compilation, mirror, and Linux ARM64 specifics.",
].join("\n");
}
@@ -77,7 +77,7 @@ function executableName(base, platform) {
return platform === "win32" ? `${base}.exe` : base;
}
function releaseBaseUrl(version, repo = "Hmbown/DeepSeek-TUI") {
function releaseBaseUrl(version, repo = "Hmbown/CodeWhale") {
const override =
process.env.DEEPSEEK_TUI_RELEASE_BASE_URL || process.env.DEEPSEEK_RELEASE_BASE_URL;
if (override) {
@@ -87,11 +87,11 @@ function releaseBaseUrl(version, repo = "Hmbown/DeepSeek-TUI") {
return `https://github.com/${repo}/releases/download/v${version}/`;
}
function releaseAssetUrl(baseName, version, repo = "Hmbown/DeepSeek-TUI") {
function releaseAssetUrl(baseName, version, repo = "Hmbown/CodeWhale") {
return new URL(baseName, releaseBaseUrl(version, repo)).toString();
}
function checksumManifestUrl(version, repo = "Hmbown/DeepSeek-TUI") {
function checksumManifestUrl(version, repo = "Hmbown/CodeWhale") {
return releaseAssetUrl(CHECKSUM_MANIFEST, version, repo);
}
+1 -1
View File
@@ -88,7 +88,7 @@ function resolvePackageVersion() {
}
function resolveRepo() {
return process.env.DEEPSEEK_TUI_GITHUB_REPO || process.env.DEEPSEEK_GITHUB_REPO || "Hmbown/DeepSeek-TUI";
return process.env.DEEPSEEK_TUI_GITHUB_REPO || process.env.DEEPSEEK_GITHUB_REPO || "Hmbown/CodeWhale";
}
function isOptionalInstall(argv = process.argv.slice(2), env = process.env) {
+3 -3
View File
@@ -74,12 +74,12 @@ function buildFromSourceHint() {
"",
"Or build from a checkout:",
"",
" git clone https://github.com/Hmbown/DeepSeek-TUI.git",
" cd DeepSeek-TUI",
" git clone https://github.com/Hmbown/CodeWhale.git",
" cd CodeWhale",
" cargo install --path crates/cli --locked",
" cargo install --path crates/tui --locked",
"",
"See https://github.com/Hmbown/DeepSeek-TUI/blob/main/docs/INSTALL.md",
"See https://github.com/Hmbown/CodeWhale/blob/main/docs/INSTALL.md",
].join("\n");
}
+6 -6
View File
@@ -34,26 +34,26 @@ async function run(binaryName) {
process.exit(result.status ?? 1);
}
async function runCodewhale() {
async function runCodeWhale() {
await run("codewhale");
}
async function runCodewhaleTui() {
async function runCodeWhaleTui() {
await run("codewhale-tui");
}
module.exports = {
run,
runCodewhale,
runCodewhaleTui,
runCodeWhale,
runCodeWhaleTui,
_internal: { isVersionFlag },
};
if (require.main === module) {
const command = process.argv[1] || "";
if (command.includes("tui")) {
runCodewhaleTui();
runCodeWhaleTui();
} else {
runCodewhale();
runCodeWhale();
}
}
@@ -19,7 +19,7 @@ function resolveBinaryVersion() {
}
function resolveRepo() {
return process.env.DEEPSEEK_TUI_GITHUB_REPO || process.env.DEEPSEEK_GITHUB_REPO || "Hmbown/DeepSeek-TUI";
return process.env.DEEPSEEK_TUI_GITHUB_REPO || process.env.DEEPSEEK_GITHUB_REPO || "Hmbown/CodeWhale";
}
function requestStatus(url, method = "HEAD", redirects = 0) {
+2 -2
View File
@@ -52,7 +52,7 @@ test("genuinely unsupported platform throws with raw platform name", () => {
});
test("known platforms are unaffected by alias map", () => {
for (const [platform, arch, expectedCodewhale] of [
for (const [platform, arch, expectedCodeWhale] of [
["linux", "x64", "codewhale-linux-x64"],
["darwin", "arm64", "codewhale-macos-arm64"],
["win32", "x64", "codewhale-windows-x64.exe"],
@@ -60,7 +60,7 @@ test("known platforms are unaffected by alias map", () => {
withMockedOs(platform, arch, () => {
const { detectBinaryNames } = require(ARTIFACTS_PATH);
const result = detectBinaryNames();
assert.equal(result.codewhale, expectedCodewhale);
assert.equal(result.codewhale, expectedCodeWhale);
});
}
});
+3 -3
View File
@@ -69,7 +69,7 @@ test("install failure hint explains release base override for blocked GitHub dow
try {
const error = Object.assign(
new Error(
"fetch https://github.com/Hmbown/DeepSeek-TUI/releases/download/v0.8.19/codewhale-artifacts-sha256.txt failed after 5 attempts:\ngetaddrinfo ENOTFOUND github.com",
"fetch https://github.com/Hmbown/CodeWhale/releases/download/v0.8.19/codewhale-artifacts-sha256.txt failed after 5 attempts:\ngetaddrinfo ENOTFOUND github.com",
),
{ code: "ENOTFOUND" },
);
@@ -123,7 +123,7 @@ test("ensureBinary adopts a manually placed target binary after checksum validat
await fs.promises.writeFile(`${target}.version`, "0.8.24", "utf8");
const result = await withoutForcedDownload(() =>
_internal.ensureBinary(target, assetName, version, "Hmbown/DeepSeek-TUI", async () => {
_internal.ensureBinary(target, assetName, version, "Hmbown/CodeWhale", async () => {
checksumLoads += 1;
return new Map([[assetName, sha256(content)]]);
}),
@@ -148,7 +148,7 @@ test("ensureBinary adopts an official release-named binary placed in downloads",
await fs.promises.writeFile(assetPath, content);
const result = await withoutForcedDownload(() =>
_internal.ensureBinary(target, assetName, version, "Hmbown/DeepSeek-TUI", async () =>
_internal.ensureBinary(target, assetName, version, "Hmbown/CodeWhale", async () =>
new Map([[assetName, sha256(content)]]),
),
);
+1 -1
View File
@@ -11,5 +11,5 @@ npm install -g codewhale
deprecation shims under the old `deepseek` / `deepseek-tui` names so existing
scripts keep working through one transition release.
See [docs/REBRAND.md](https://github.com/Hmbown/DeepSeek-TUI/blob/main/docs/REBRAND.md)
See [docs/REBRAND.md](https://github.com/Hmbown/CodeWhale/blob/main/docs/REBRAND.md)
for the full migration story.
+3 -3
View File
@@ -4,13 +4,13 @@
"description": "Deprecated. Renamed to `codewhale`. Run `npm install -g codewhale` instead.",
"author": "Hmbown",
"license": "MIT",
"homepage": "https://github.com/Hmbown/DeepSeek-TUI/blob/main/docs/REBRAND.md",
"homepage": "https://github.com/Hmbown/CodeWhale/blob/main/docs/REBRAND.md",
"repository": {
"type": "git",
"url": "git+https://github.com/Hmbown/DeepSeek-TUI.git"
"url": "git+https://github.com/Hmbown/CodeWhale.git"
},
"bugs": {
"url": "https://github.com/Hmbown/DeepSeek-TUI/issues"
"url": "https://github.com/Hmbown/CodeWhale/issues"
},
"keywords": [
"deprecated",
@@ -13,7 +13,7 @@ const notice = [
" │ │",
" │ codewhale ships the same `codewhale` and `codewhale-tui` │",
" │ binaries plus deprecation shims under the old names. See: │",
" │ https://github.com/Hmbown/DeepSeek-TUI/blob/main/docs/REBRAND.md │",
" │ https://github.com/Hmbown/CodeWhale/blob/main/docs/REBRAND.md │",
" │ │",
" ╰───────────────────────────────────────────────────────────────────╯",
"",
@@ -9,7 +9,7 @@ fi
DEEPSEEK_USER="${DEEPSEEK_USER:-codewhale}"
DEEPSEEK_ROOT="${DEEPSEEK_ROOT:-/opt/codewhale}"
WHALEBRO_ROOT="${WHALEBRO_ROOT:-/opt/whalebro}"
REPO_URL="${DEEPSEEK_REPO_URL:-https://github.com/Hmbown/DeepSeek-TUI.git}"
REPO_URL="${DEEPSEEK_REPO_URL:-https://github.com/Hmbown/CodeWhale.git}"
WHALEBRO_EXTRA_REPOS="${WHALEBRO_EXTRA_REPOS:-}"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
SOURCE_ROOT="$(cd "${SCRIPT_DIR}/../.." && pwd)"
+1 -1
View File
@@ -97,7 +97,7 @@ check_workspace() {
}
check_binaries() {
section "Codewhale binaries"
section "CodeWhale binaries"
local cargo_bin="/home/${DEEPSEEK_USER}/.cargo/bin"
local codewhale="${cargo_bin}/codewhale"
local tui="${cargo_bin}/codewhale-tui"
+9 -9
View File
@@ -430,9 +430,9 @@
<div class="nav-brand">deepseek<span>-tui</span></div>
<ul class="nav-links">
<li><a href="#install">Install</a></li>
<li><a href="https://github.com/Hmbown/DeepSeek-TUI" target="_blank" rel="noopener">GitHub</a></li>
<li><a href="https://github.com/Hmbown/DeepSeek-TUI/tree/main/docs" target="_blank" rel="noopener">Docs</a></li>
<li><a href="https://github.com/Hmbown/DeepSeek-TUI/issues" target="_blank" rel="noopener">Community</a></li>
<li><a href="https://github.com/Hmbown/CodeWhale" target="_blank" rel="noopener">GitHub</a></li>
<li><a href="https://github.com/Hmbown/CodeWhale/tree/main/docs" target="_blank" rel="noopener">Docs</a></li>
<li><a href="https://github.com/Hmbown/CodeWhale/issues" target="_blank" rel="noopener">Community</a></li>
<li><a href="./zh/" class="lang-switch" title="切换到简体中文"></a></li>
</ul>
</div>
@@ -461,13 +461,13 @@
</div>
<div class="hero-actions">
<a class="btn btn-primary" href="https://github.com/Hmbown/DeepSeek-TUI" target="_blank" rel="noopener">View on GitHub</a>
<a class="btn btn-primary" href="https://github.com/Hmbown/CodeWhale" target="_blank" rel="noopener">View on GitHub</a>
<a class="btn btn-secondary" href="https://www.buymeacoffee.com/hmbown" target="_blank" rel="noopener">Support</a>
</div>
</div>
<div class="screenshot-wrap">
<img src="https://raw.githubusercontent.com/Hmbown/DeepSeek-TUI/main/assets/screenshot.png" alt="DeepSeek TUI screenshot" loading="lazy">
<img src="https://raw.githubusercontent.com/Hmbown/CodeWhale/main/assets/screenshot.png" alt="DeepSeek TUI screenshot" loading="lazy">
</div>
<section>
@@ -534,7 +534,7 @@ export RUSTUP_UPDATE_ROOT=https://mirrors.tuna.tsinghua.edu.cn/rustup/rustup
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh</code></pre>
</details>
<p style="margin-top:1rem;font-size:0.875rem;">Full platform guide: <a href="https://github.com/Hmbown/DeepSeek-TUI/blob/main/docs/INSTALL.md" target="_blank" rel="noopener">docs/INSTALL.md</a> · <a href="../README.zh-CN.md">简体中文 README</a></p>
<p style="margin-top:1rem;font-size:0.875rem;">Full platform guide: <a href="https://github.com/Hmbown/CodeWhale/blob/main/docs/INSTALL.md" target="_blank" rel="noopener">docs/INSTALL.md</a> · <a href="../README.zh-CN.md">简体中文 README</a></p>
</section>
</main>
@@ -542,9 +542,9 @@ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh</code></pre>
<footer>
<div class="container">
<div class="footer-links">
<a href="https://github.com/Hmbown/DeepSeek-TUI" target="_blank" rel="noopener">GitHub</a>
<a href="https://github.com/Hmbown/DeepSeek-TUI/tree/main/docs" target="_blank" rel="noopener">Docs</a>
<a href="https://github.com/Hmbown/DeepSeek-TUI/issues" target="_blank" rel="noopener">Issues</a>
<a href="https://github.com/Hmbown/CodeWhale" target="_blank" rel="noopener">GitHub</a>
<a href="https://github.com/Hmbown/CodeWhale/tree/main/docs" target="_blank" rel="noopener">Docs</a>
<a href="https://github.com/Hmbown/CodeWhale/issues" target="_blank" rel="noopener">Issues</a>
<a href="https://www.buymeacoffee.com/hmbown" target="_blank" rel="noopener">Support</a>
<a href="mailto:security@deepseek-tui.com">Security</a>
</div>
+13 -13
View File
@@ -418,9 +418,9 @@
<div class="nav-brand">deepseek<span>-tui</span></div>
<ul class="nav-links">
<li><a href="#install">安装</a></li>
<li><a href="https://github.com/Hmbown/DeepSeek-TUI" target="_blank" rel="noopener">GitHub</a></li>
<li><a href="https://github.com/Hmbown/DeepSeek-TUI/tree/main/docs" target="_blank" rel="noopener">文档</a></li>
<li><a href="https://github.com/Hmbown/DeepSeek-TUI/issues" target="_blank" rel="noopener">社区</a></li>
<li><a href="https://github.com/Hmbown/CodeWhale" target="_blank" rel="noopener">GitHub</a></li>
<li><a href="https://github.com/Hmbown/CodeWhale/tree/main/docs" target="_blank" rel="noopener">文档</a></li>
<li><a href="https://github.com/Hmbown/CodeWhale/issues" target="_blank" rel="noopener">社区</a></li>
<li><a href="../" class="lang-switch" title="Switch to English">EN</a></li>
</ul>
</div>
@@ -449,13 +449,13 @@
</div>
<div class="hero-actions">
<a class="btn btn-primary" href="https://github.com/Hmbown/DeepSeek-TUI" target="_blank" rel="noopener">在 GitHub 上查看</a>
<a class="btn btn-primary" href="https://github.com/Hmbown/CodeWhale" target="_blank" rel="noopener">在 GitHub 上查看</a>
<a class="btn btn-secondary" href="https://www.buymeacoffee.com/hmbown" target="_blank" rel="noopener">赞助支持</a>
</div>
</div>
<div class="screenshot-wrap">
<img src="https://raw.githubusercontent.com/Hmbown/DeepSeek-TUI/main/assets/screenshot.png" alt="DeepSeek TUI 截图" loading="lazy">
<img src="https://raw.githubusercontent.com/Hmbown/CodeWhale/main/assets/screenshot.png" alt="DeepSeek TUI 截图" loading="lazy">
</div>
<section>
@@ -523,8 +523,8 @@ deepseek --version</code></pre>
export RUSTUP_UPDATE_ROOT=https://mirrors.tuna.tsinghua.edu.cn/rustup/rustup
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh</code></pre>
<p>配置 Cargo 镜像后从源码构建:</p>
<pre><code>git clone https://github.com/Hmbown/DeepSeek-TUI.git
cd DeepSeek-TUI
<pre><code>git clone https://github.com/Hmbown/CodeWhale.git
cd CodeWhale
cargo install --path crates/cli --locked
cargo install --path crates/tui --locked</code></pre>
</details>
@@ -534,14 +534,14 @@ cargo install --path crates/tui --locked</code></pre>
<p>直接从 GitHub Releases 下载对应平台的二进制文件,放到 <code>PATH</code> 目录即可:</p>
<pre><code>mkdir -p ~/.local/bin
curl -L -o ~/.local/bin/deepseek \
https://github.com/Hmbown/DeepSeek-TUI/releases/latest/download/deepseek-linux-x64
https://github.com/Hmbown/CodeWhale/releases/latest/download/deepseek-linux-x64
curl -L -o ~/.local/bin/deepseek-tui \
https://github.com/Hmbown/DeepSeek-TUI/releases/latest/download/deepseek-tui-linux-x64
https://github.com/Hmbown/CodeWhale/releases/latest/download/deepseek-tui-linux-x64
chmod +x ~/.local/bin/deepseek ~/.local/bin/deepseek-tui</code></pre>
<p>macOS 用户将 <code>linux-x64</code> 替换为 <code>macos-arm64</code><code>macos-x64</code>,并将 <code>sha256sum</code> 替换为 <code>shasum -a 256</code></p>
</details>
<p style="margin-top:1rem;font-size:0.875rem;">完整平台安装指南:<a href="https://github.com/Hmbown/DeepSeek-TUI/blob/main/docs/INSTALL.md" target="_blank" rel="noopener">docs/INSTALL.md</a> · <a href="../../README.zh-CN.md">简体中文 README</a></p>
<p style="margin-top:1rem;font-size:0.875rem;">完整平台安装指南:<a href="https://github.com/Hmbown/CodeWhale/blob/main/docs/INSTALL.md" target="_blank" rel="noopener">docs/INSTALL.md</a> · <a href="../../README.zh-CN.md">简体中文 README</a></p>
</section>
</main>
@@ -549,9 +549,9 @@ chmod +x ~/.local/bin/deepseek ~/.local/bin/deepseek-tui</code></pre>
<footer>
<div class="container">
<div class="footer-links">
<a href="https://github.com/Hmbown/DeepSeek-TUI" target="_blank" rel="noopener">GitHub</a>
<a href="https://github.com/Hmbown/DeepSeek-TUI/tree/main/docs" target="_blank" rel="noopener">文档</a>
<a href="https://github.com/Hmbown/DeepSeek-TUI/issues" target="_blank" rel="noopener">Issues</a>
<a href="https://github.com/Hmbown/CodeWhale" target="_blank" rel="noopener">GitHub</a>
<a href="https://github.com/Hmbown/CodeWhale/tree/main/docs" target="_blank" rel="noopener">文档</a>
<a href="https://github.com/Hmbown/CodeWhale/issues" target="_blank" rel="noopener">Issues</a>
<a href="https://www.buymeacoffee.com/hmbown" target="_blank" rel="noopener">赞助</a>
<a href="mailto:security@deepseek-tui.com">安全</a>
</div>