a3acdbe70b
Sweep brand mentions of `DeepSeek TUI` / `deepseek-tui` / bare `deepseek` (the dispatcher binary) across all user-facing docs to the new `codewhale` brand. The DeepSeek **provider** integration is left untouched throughout: env vars (`DEEPSEEK_*`), model IDs (`deepseek-v4-pro`, `deepseek-v4-flash`, `deepseek-chat`, `deepseek-reasoner`), the `api.deepseek.com` host, the `~/.deepseek/` config dir, and the `--provider deepseek` argument value all keep the legacy spelling. Anti-scope items deliberately left as the legacy `deepseek-tui`: - Homebrew tap and formula (`Hmbown/homebrew-deepseek-tui`, `brew install deepseek-tui`, `scoop install deepseek-tui`). The tap rename ships separately. - Docker image (`ghcr.io/hmbown/deepseek-tui`). Image-tag rename ships separately. - CNB mirror namespace (`cnb.cool/deepseek-tui.com/DeepSeek-TUI`). Third-party hosted path. - Security contact email (`security@deepseek-tui.com`). - GitHub repo URL (`Hmbown/DeepSeek-TUI`). New artifact: - `docs/REBRAND.md` documents what changed, what didn't, the deprecation window, and migration commands for npm / Cargo / Homebrew / manual installs. CHANGELOG entries: - Root `CHANGELOG.md` and `crates/tui/CHANGELOG.md` both gain a new `[Unreleased]` section describing the rename and the one- release deprecation window. Historical entries are untouched. Issue templates: - `.github/ISSUE_TEMPLATE/bug_report.md` and `feature_request.md` refer to "codewhale" / `codewhale --version` instead of the old brand name in their environment fields. The rebrand sweep was driven by a perl script with bulk patterns (`deepseek-tui` -> `codewhale-tui`, `DeepSeek TUI` -> `codewhale`, bare `deepseek` -> `codewhale` with provider/model/host/env-var/ config-path negative lookbehind/lookahead) followed by targeted reverts for the anti-scope items above. Output was visually reviewed file-by-file before committing. Verified: - `cargo check --workspace --all-targets --locked` — pass. - `cargo test --workspace --all-features --locked` — pass (no test source touched here; suite stayed green to confirm no doc-from-string assertions broke). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3.4 KiB
3.4 KiB
codewhale Operations Runbook
This runbook covers practical debugging and incident response for the local CLI/TUI runtime.
Quick Triage
- Confirm binary + config:
cargo run -- --versioncat ~/.deepseek/config.toml(or inspect configured profile)
- Enable verbose logs:
RUST_LOG=deepseek_cli=debug cargo run- For HTTP retries/reconnects:
RUST_LOG=deepseek_cli::client=debug cargo run
- Capture current state:
ls ~/.deepseek/sessionsls ~/.deepseek/sessions/checkpointsls ~/.deepseek/tasks
Incident: Turn Hangs or Stream Stops
Symptoms:
- TUI remains in loading state
- partial assistant output with no completion
Checks:
- Inspect retry/health logs (
deepseek_cli::client) - Verify endpoint connectivity:
curl -sS https://api.deepseek.com/beta/models -H "Authorization: Bearer $DEEPSEEK_API_KEY"
- Confirm no local sandbox/permission deadlock in tool output
Actions:
- If a foreground shell command is running, press
Ctrl+Band choose whether to background it or cancel the current turn. - If the command was started in the background, ask the assistant to cancel it with
exec_shell_canceland the returned task id. - Use
EscorCtrl+Cto interrupt the current turn when you want to stop the request itself. - Retry prompt; if still failing, restart TUI.
- On restart, verify the previous queued/in-flight runtime turn is shown as interrupted rather than left in a running state.
Incident: Network Outage / Offline Behavior
Expected behavior:
- New prompts are queued while offline mode is active
- Queue state persists to
~/.deepseek/sessions/checkpoints/offline_queue.json
Checks:
- Open queue in TUI:
/queue list - Confirm persisted queue file exists and updates timestamp
Actions:
- Restore connectivity
- Re-send queued entries (from
/queue edit <n>+ Enter, or normal input flow) - Ensure queue file clears when queue is empty
Incident: Crash Recovery Needed
Expected behavior:
- Checkpoint stored at
~/.deepseek/sessions/checkpoints/latest.json - Startup begins a fresh session unless
--resume/--continueis supplied
Actions:
- Resume prior work explicitly via
codewhale --resume <id>orCtrl+Rin TUI - If checkpoint inspection is needed, inspect
latest.jsonfor schema mismatch/details - If schema is newer than binary supports, upgrade binary or remove stale checkpoint
Incident: Persistent State Schema Errors
Symptoms:
- Errors like
schema vX is newer than supported vY
Affected stores:
- sessions (
~/.deepseek/sessions/*.json) - runtime thread/turn/item records
- tasks (
~/.deepseek/tasks/tasks/*.json)
Actions:
- Confirm binary version and migration expectations
- Back up the state directory before editing
- Either:
- run with a newer compatible binary, or
- archive incompatible records and regenerate state
Incident: MCP/Tool Execution Failures
Checks:
- Validate
~/.deepseek/mcp.jsonschema and server command paths - Confirm server process can start manually
- Check sandbox denials in TUI history / logs
Actions:
- Retry with required approvals (or YOLO only when appropriate)
- Temporarily disable failing MCP server and isolate issue
- Re-enable after verification with
/mcpdiagnostics
Post-Incident Checklist
- Preserve logs and relevant state files
- Record trigger, impact, and mitigation
- Add or update regression tests (retry/recovery/schema)
- Update this runbook and architecture docs if behavior changed