docs(release): add v0.8.12 CHANGELOG + update README What's New
This commit is contained in:
@@ -72,6 +72,101 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
on the title. *Thanks to [@Agent-Skill-007](https://github.com/Agent-Skill-007)
|
||||
for this PR.*
|
||||
|
||||
## [0.8.12] - 2026-05-05
|
||||
|
||||
A feature release built on the v0.8.11 cache-maxing foundation: 20 community
|
||||
PRs merged, covering reasoning-effort automation, V4 FIM edits, bash-arity
|
||||
execpolicy, skill-registry sync, vim composer mode, large-tool-output routing,
|
||||
pluggable sandbox backends, layered permission rulesets, and cache-aware
|
||||
resident sub-agents. No breaking changes.
|
||||
|
||||
### Added
|
||||
- **Reasoning-effort auto mode** (#669) — `reasoning_effort = "auto"` inspects
|
||||
the last user message for keywords (debug/error → Max, search/lookup → Low,
|
||||
default → High) and resolves the tier before each API request. Sub-agents
|
||||
always get Low.
|
||||
- **FIM edit tool for V4 /beta** (#668) — `fim_edit` tool sends
|
||||
fill-in-the-middle requests to DeepSeek's `/beta` endpoint for surgical code
|
||||
edits.
|
||||
- **Bash arity dictionary** (#655) — `auto_allow = ["git status"]` now matches
|
||||
`git status -s` but NOT `git push`. The arity dictionary knows command
|
||||
structure for git, cargo, npm, yarn, pnpm, docker, kubectl, aws, make, and
|
||||
others. Legacy flat prefix matching still works for unlisted commands.
|
||||
- **Unified slash-command namespace** (#661) — user-defined commands in
|
||||
`~/.deepseek/commands/` support `$1`, `$2`, `$ARGUMENTS` template
|
||||
substitution. User commands override built-in commands.
|
||||
- **Skill registry sync** (#654) — `/skills sync` fetches the community skill
|
||||
registry and installs/updates all listed skills. Network-gated by the
|
||||
existing `[network]` policy.
|
||||
- **Vim modal editing in composer** (#659) — `vim.insert_mode` / `vim.normal_mode`
|
||||
settings enable modal editing in the message composer with standard Vim
|
||||
keybindings.
|
||||
- **Separate tui.toml** (#657) — theme colors and keybind overrides can live in
|
||||
`~/.deepseek/tui.toml` alongside the main `config.toml`. *Note: file format
|
||||
is defined but not yet loaded at startup — wiring deferred to v0.8.13.*
|
||||
- **Large-tool-output routing** (#658) — tool results exceeding a configurable
|
||||
token threshold are routed through a workshop with truncated previews,
|
||||
protecting the parent context window. Synthesis is currently truncation-only;
|
||||
V4-Flash sub-agent synthesis deferred to follow-up.
|
||||
- **Pluggable sandbox backends** (#645) — a `SandboxBackend` trait and
|
||||
Alibaba OpenSandbox HTTP adapter let `exec_shell` route commands to a remote
|
||||
sandbox instead of spawning locally. Config keys: `sandbox_backend`,
|
||||
`sandbox_url`, `sandbox_api_key`.
|
||||
- **Layered permission rulesets** (#653) — `ExecPolicyEngine` supports
|
||||
builtin, agent, and user-priority layers for allow/deny prefix rules.
|
||||
Deny-always-wins semantics.
|
||||
- **Cache-aware resident sub-agents** (#660) — sub-agents spawned with
|
||||
`resident_file` prepend the file contents to their system prefix for V4
|
||||
prefix-cache locality. A global lease table prevents two agents from holding
|
||||
a resident lease on the same file simultaneously. Leases are released on
|
||||
agent completion.
|
||||
- **Context-limit handoff** (#667) — engine-level support for replacing
|
||||
routine compaction with a `.deepseek/handoff.md` file write when context
|
||||
pressure triggers. *Note: config knob removed pending implementation.*
|
||||
- **LSP auto-attach diagnostics** (#656) — edit results now include post-edit
|
||||
diagnostics via the engine-level LSP hooks path.
|
||||
|
||||
### Docs
|
||||
- **SECURITY.md** (#648) — vulnerability reporting policy and supported
|
||||
versions.
|
||||
- **CODE_OF_CONDUCT.md** (#686) — Contributor Covenant v2.1. *Thanks to
|
||||
[@zichen0116](https://github.com/zichen0116) for this PR.*
|
||||
- **zh-Hans locale activation docs** (#652) — README.zh-CN.md and
|
||||
config.example.toml now document `locale = "zh-Hans"`.
|
||||
|
||||
### Fixed
|
||||
- **Color::Reset across all UI widgets** (#651, #671) — replaced hardcoded
|
||||
`Color::Black` and `Color::Rgb(18, 29, 39)` backgrounds with `Color::Reset`
|
||||
so the TUI respects the terminal's actual background color on light-themed
|
||||
and non-standard terminals.
|
||||
- **Windows MessageBeep** (#646) — `notify_done_to` now calls `MessageBeep` on
|
||||
Windows when BEL method is selected.
|
||||
- **truncate_id optimization** (#649) — replaced manual string slicing with a
|
||||
shared `truncate_id` helper across session, picker, and UI call sites.
|
||||
|
||||
### Maintenance
|
||||
- Removed dead `prefer_handoff` field from `CompactionConfig` — config knob
|
||||
existed but zero code paths consulted it (#667).
|
||||
- Removed dead `use_terminal_colors` field from `TuiConfig` — no rendering
|
||||
code read the value (#671).
|
||||
- Fixed `expect()` panic risk in `OpenSandboxBackend::new()` — now returns
|
||||
`Result` (#645).
|
||||
- Fixed broken `section_bg` test assertion after Color::Reset migration (#651).
|
||||
- Fixed `resolve_prefixes` docstring to accurately describe deny-always-wins
|
||||
behavior (#653).
|
||||
- Wired `create_backend()` into `Engine::build_tool_context` — sandbox backend
|
||||
was defined but never activated (#645).
|
||||
- Wired resident lease release on agent completion/cancellation/failure (#660).
|
||||
|
||||
### Contributors
|
||||
|
||||
First-time contributor to this release: **@zichen0116** (#686). Welcome — and
|
||||
thank you.
|
||||
|
||||
Bulk community contributions by [@merchloubna70-dot](https://github.com/merchloubna70-dot)
|
||||
(#645–#681, 28 PRs spanning features, fixes, and VS Code extension scaffolding).
|
||||
*Thank you for the remarkable volume and quality of work.*
|
||||
|
||||
## [0.8.10] - 2026-05-04
|
||||
|
||||
A patch release: hotfixes, small UX polish, and four whalescale-unblocking
|
||||
|
||||
Generated
+14
-14
@@ -1080,7 +1080,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "deepseek-agent"
|
||||
version = "0.8.11"
|
||||
version = "0.8.12"
|
||||
dependencies = [
|
||||
"deepseek-config",
|
||||
"serde",
|
||||
@@ -1088,7 +1088,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "deepseek-app-server"
|
||||
version = "0.8.11"
|
||||
version = "0.8.12"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"axum",
|
||||
@@ -1110,7 +1110,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "deepseek-config"
|
||||
version = "0.8.11"
|
||||
version = "0.8.12"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"deepseek-secrets",
|
||||
@@ -1122,7 +1122,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "deepseek-core"
|
||||
version = "0.8.11"
|
||||
version = "0.8.12"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"chrono",
|
||||
@@ -1140,7 +1140,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "deepseek-execpolicy"
|
||||
version = "0.8.11"
|
||||
version = "0.8.12"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"deepseek-protocol",
|
||||
@@ -1149,7 +1149,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "deepseek-hooks"
|
||||
version = "0.8.11"
|
||||
version = "0.8.12"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-trait",
|
||||
@@ -1163,7 +1163,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "deepseek-mcp"
|
||||
version = "0.8.11"
|
||||
version = "0.8.12"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"serde",
|
||||
@@ -1172,7 +1172,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "deepseek-protocol"
|
||||
version = "0.8.11"
|
||||
version = "0.8.12"
|
||||
dependencies = [
|
||||
"serde",
|
||||
"serde_json",
|
||||
@@ -1180,7 +1180,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "deepseek-secrets"
|
||||
version = "0.8.11"
|
||||
version = "0.8.12"
|
||||
dependencies = [
|
||||
"dirs",
|
||||
"keyring",
|
||||
@@ -1193,7 +1193,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "deepseek-state"
|
||||
version = "0.8.11"
|
||||
version = "0.8.12"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"chrono",
|
||||
@@ -1205,7 +1205,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "deepseek-tools"
|
||||
version = "0.8.11"
|
||||
version = "0.8.12"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-trait",
|
||||
@@ -1218,7 +1218,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "deepseek-tui"
|
||||
version = "0.8.11"
|
||||
version = "0.8.12"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"arboard",
|
||||
@@ -1277,7 +1277,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "deepseek-tui-cli"
|
||||
version = "0.8.11"
|
||||
version = "0.8.12"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"chrono",
|
||||
@@ -1301,7 +1301,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "deepseek-tui-core"
|
||||
version = "0.8.11"
|
||||
version = "0.8.12"
|
||||
|
||||
[[package]]
|
||||
name = "deranged"
|
||||
|
||||
@@ -163,17 +163,24 @@ SGLANG_BASE_URL="http://localhost:30000/v1" deepseek --provider sglang --model d
|
||||
|
||||
---
|
||||
|
||||
## What's New In v0.8.11
|
||||
## What's New In v0.8.12
|
||||
|
||||
A targeted patch for the V4 cache-maxing overhaul plus three runtime fixes discovered in YOLO long-session dogfooding. [Full changelog](CHANGELOG.md).
|
||||
A feature release with 20 community PRs on top of the v0.8.11 cache-maxing foundation. [Full changelog](CHANGELOG.md).
|
||||
|
||||
- **Cache-maxing prompt path for DeepSeek V4** — the engine skips system-prompt reassembly when the stable prefix is unchanged, moves the working-set summary out of the system prompt into per-turn metadata, and anchors the tool array with `cache_control: ephemeral`. Net effect: fewer prefix rewrites, higher cache-hit rates, lower cost per turn.
|
||||
- **500K token compaction floor** — automatic compaction refuses below 500K tokens; manual `/compact` still bypasses. The message-count trigger (a 128K-era heuristic) is removed — token budget is the sole auto-trigger.
|
||||
- **`npm install` resilience** — retry with exponential backoff, per-attempt timeout + stall detector, `HTTPS_PROXY`/`HTTP_PROXY`/`NO_PROXY` support (pure Node, no new deps), and download progress to stderr. Driven by a community report from China where `npm install` took 18 minutes through a CN mirror.
|
||||
- **YOLO sandbox dropped** — YOLO now uses DangerFullAccess (no sandbox), consistent with its auto-approval + trust mode posture. Previously, the WorkspaceWrite sandbox was intercepting legitimate outside-workspace writes.
|
||||
- **Scroll lock preserved during live streaming** — scrolling up mid-stream no longer gets yanked back to the tail on the next chunk. The `user_scrolled_during_stream` lock now survives render-time clamping.
|
||||
- **Capacity controller off by default** — the controller was silently clearing transcripts independent of token usage or `auto_compact` settings. Now defaults to disabled; opt-in via `capacity.enabled = true`.
|
||||
- **README clarity pass** (#685) — title-cased headings, explicit prerequisites, China-friendly install variant. *Thanks to [@Agent-Skill-007](https://github.com/Agent-Skill-007) for this PR.*
|
||||
- **Reasoning-effort auto mode** — `reasoning_effort = "auto"` picks the right tier from the prompt: debug/error → Max, search/lookup → Low, default → High
|
||||
- **Bash arity dictionary** — `auto_allow = ["git status"]` matches `git status -s` but not `git push`. Knows git, cargo, npm, docker, kubectl, and more
|
||||
- **Vim modal editing** — normal/insert mode in the composer with standard Vim keybindings
|
||||
- **Skill registry sync** — `/skills sync` fetches and installs/updates the community registry
|
||||
- **FIM edit tool** — surgical code edits via DeepSeek's `/beta` fill-in-the-middle endpoint
|
||||
- **Large-tool-output routing** — outsized tool results get truncated previews with spillover, protecting parent context
|
||||
- **Pluggable sandbox backends** — `exec_shell` can route to Alibaba OpenSandbox or other remote backends
|
||||
- **Layered permission rulesets** — builtin/agent/user priority layers for execpolicy deny/allow rules
|
||||
- **Cache-aware resident sub-agents** — file content prepended for V4 prefix-cache locality; global lease table
|
||||
- **Unified slash-command namespace** — user commands with `$1`/`$2`/`$ARGUMENTS` templates
|
||||
- **Color::Reset migration** — all hardcoded backgrounds replaced with `Color::Reset` for light-terminal support
|
||||
- **New docs**: SECURITY.md (#648), CODE_OF_CONDUCT.md (#686), zh-Hans locale activation (#652)
|
||||
|
||||
*28 community PRs by [@merchloubna70-dot](https://github.com/merchloubna70-dot). First-time contributor [@zichen0116](https://github.com/zichen0116) (#686).*
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user