chore(rebrand): update repository links for CodeWhale
This commit is contained in:
@@ -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"
|
||||
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
```
|
||||
|
||||
[](https://github.com/Hmbown/DeepSeek-TUI/actions/workflows/ci.yml)
|
||||
[](https://github.com/Hmbown/CodeWhale/actions/workflows/ci.yml)
|
||||
[](https://www.npmjs.com/package/codewhale)
|
||||
[](https://crates.io/crates/codewhale-cli)
|
||||
[](https://deepwiki.com/Hmbown/DeepSeek-TUI)
|
||||
[](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 ARM64(Raspberry 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` を使ってください。
|
||||
|
||||
### Windows(Scoop)
|
||||
|
||||
@@ -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
|
||||
|
||||
[](https://www.star-history.com/?repos=Hmbown%2FDeepSeek-TUI&type=date&logscale=&legend=top-left)
|
||||
[](https://www.star-history.com/?repos=Hmbown%2FCodeWhale&type=date&logscale=&legend=top-left)
|
||||
|
||||
@@ -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
|
||||
```
|
||||
|
||||
[](https://github.com/Hmbown/DeepSeek-TUI/actions/workflows/ci.yml)
|
||||
[](https://github.com/Hmbown/CodeWhale/actions/workflows/ci.yml)
|
||||
[](https://www.npmjs.com/package/codewhale)
|
||||
[](https://crates.io/crates/codewhale-cli)
|
||||
[DeepWiki project index](https://deepwiki.com/Hmbown/DeepSeek-TUI)
|
||||
[DeepWiki project index](https://deepwiki.com/Hmbown/CodeWhale)
|
||||
|
||||

|
||||
|
||||
@@ -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
|
||||
|
||||
[](https://www.star-history.com/?repos=Hmbown%2FDeepSeek-TUI&type=date&logscale=&legend=top-left)
|
||||
[](https://www.star-history.com/?repos=Hmbown%2FCodeWhale&type=date&logscale=&legend=top-left)
|
||||
|
||||
+11
-11
@@ -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
|
||||
```
|
||||
|
||||
[](https://github.com/Hmbown/DeepSeek-TUI/actions/workflows/ci.yml)
|
||||
[](https://github.com/Hmbown/CodeWhale/actions/workflows/ci.yml)
|
||||
[](https://www.npmjs.com/package/codewhale)
|
||||
[](https://crates.io/crates/codewhale-cli)
|
||||
[DeepWiki project index](https://deepwiki.com/Hmbown/DeepSeek-TUI)
|
||||
[DeepWiki project index](https://deepwiki.com/Hmbown/CodeWhale)
|
||||
|
||||

|
||||
|
||||
@@ -168,7 +168,7 @@ Auto 模式同时控制两个设置:
|
||||
|
||||
### Linux ARM64(HarmonyOS 轻薄本、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 历史
|
||||
|
||||
[](https://www.star-history.com/?repos=Hmbown%2FDeepSeek-TUI&type=date&logscale=&legend=top-left)
|
||||
[](https://www.star-history.com/?repos=Hmbown%2FCodeWhale&type=date&logscale=&legend=top-left)
|
||||
|
||||
+2
-2
@@ -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
@@ -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).
|
||||
|
||||
@@ -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.",
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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)))
|
||||
|
||||
@@ -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"
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -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`.");
|
||||
|
||||
@@ -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"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,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`.
|
||||
|
||||
@@ -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/
|
||||
|
||||
@@ -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,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
|
||||
|
||||
@@ -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"));
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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()),
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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),
|
||||
)));
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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,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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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";
|
||||
};
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -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)]]),
|
||||
),
|
||||
);
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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)"
|
||||
|
||||
@@ -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
@@ -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
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user