chore(changelog): mirror [0.8.34] entry into crates/tui/CHANGELOG.md

The workspace ships two CHANGELOG files — the repo-root one and the
crate-local `crates/tui/CHANGELOG.md`. The `prompts::tests::
changelog_entry_exists_for_current_package_version` gate scans the
nearest CHANGELOG to the manifest, so the crate-local copy needs the
same `## [<version>]` section before tagging.

Copy the [0.8.34] section over from the root CHANGELOG, including the
edit_file fuzzy-punctuation bullet added later in the session. No new
content; the two files now agree.
This commit is contained in:
Hunter Bown
2026-05-13 02:07:43 -05:00
parent 06177155da
commit 5f1bf58cfc
+92
View File
@@ -7,6 +7,98 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
## [0.8.34] - 2026-05-13
A polish, terminal-protocol, and internal-cleanup release. The model-facing
surface is stable; this cycle focused on prefix-cache stability metrics,
broader terminal protocol coverage, bundled skills, and shrinking the
mega-files that had grown around the agent loop and TUI.
### Added
- **Prefix-cache stability tracking.** A footer chip surfaces how stable
the cached prefix has been across recent turns (inspired by Reasonix),
so users can spot cache-busting edits before cost climbs.
- **Bundled DeepSeek-native workflow skills.** A starter set of skills
ships in-binary so a fresh install has a usable `/skills` catalog
without external assets.
- **Native Kitty + Ghostty notification protocols.** `OSC 99` (Kitty)
and `OSC 777` (Ghostty) are now first-class alongside the existing
desktop notification fallback.
- **Theme picker with more presets.** Catppuccin, Tokyo Night, Dracula,
and Gruvbox join the built-in palette set; `/theme` now shows a
live picker.
- **Chunked parallel-safe tool execution.** The engine batches
side-effect-free tool calls into a chunked dispatch so independent
reads/searches finish in one turn instead of serialising round-trip
by round-trip.
- **Cancel-all shell jobs.** A single action stops every running
background shell command instead of cancelling them one-by-one.
- **Session title in composer border.** The top-right of the composer
shows the derived session title so the active thread is visible
without opening the sessions panel.
- **`edit_file` tolerates typographic punctuation drift.** When the
exact-match and leading-whitespace-fuzzy passes both fail and
`fuzz: true` is set, the tool retries with smart quotes (`"`/`"`
`"`, `'`/`'``'`), en/em-dashes (``/`—``-`), and non-breaking
spaces (U+00A0 → space) normalized to ASCII. Catches the copy-paste
failure mode where a browser or chat client substituted Unicode
punctuation for the ASCII the file actually contains.
### Changed
- **`crates/tui/src/tui/ui.rs` split into focused modules.** The
former 10k-line single-file TUI dispatcher is decomposed into smaller
modules with clearer responsibilities so reviewing a UI change does
not require holding the entire surface in head.
- **`crates/tui/src/core/engine.rs` reduced.** Helper clusters moved
into the existing `core/engine/` submodule directory next to the
turn loop and tool execution code, making the agent-loop core
easier to read end-to-end.
- **Structured tracing on tool dispatch.** Tool entry, exit, duration,
and result/error are emitted through `tracing` spans so
`RUST_LOG=deepseek_cli::tools=debug` produces a coherent timeline
instead of scattered ad-hoc prints.
- **`/init` updates `AGENTS.md` in place** instead of refusing when
the file already exists, so adding new project guidance does not
require manual stitching.
- **Reasoning tokens included in cost calculations**, and the cost
display auto-switches to CNY when the session locale is `zh-Hans`.
- **Stale repo-root development docs removed.** `TAKEOVER_PROMPT.md`
(v0.8.6 era), `PROMPT_ANALYSIS.md`, and the redundant
`DEPENDENCY_GRAPH.md` no longer ship in releases; `docs/ARCHITECTURE.md`
remains the canonical crate-layout reference.
### Fixed
- **Auth keys checked against the saved provider on startup**, so a
stored DeepSeek key is no longer rejected after switching providers
mid-session.
- **Auto router skipped for decisive local routes**, removing an
extra model round-trip on prompts the dispatcher can route directly.
- **Reasoning content stripped for generic providers** that do not
understand the `reasoning_content` field, preventing HTTP 400s when
pointing at an OpenAI-compatible gateway that lacks DeepSeek
thinking semantics.
- **`FocusGained` debounced** so terminals (Tabby) that emit rapid
focus events no longer trigger a repaint flicker loop.
- **MCP HTTP transport defaults `Accept: application/json,
text/event-stream`** and persists `Mcp-Session-Id` across requests,
matching the spec for resumable streams.
- **Shell output tail preserved when truncating**, so the last lines
of a long command output (usually the error trailer) survive the
in-transcript summary.
- **Prefix cache preserved while pruning tool results.** Old
side-effect tool payloads no longer invalidate the prefix that
the next turn would otherwise reuse.
- **Review sub-agents prevented from spawning further sub-agents**
(#1489), keeping recursive depth bounded.
- **Help overlay closes cleanly** and repaints without a stale frame.
- **Pinyin `/skills` alias dispatched correctly** so Chinese-locale
users reach the same surface.
- **VTE flicker terminals get reduced motion** by default to avoid
thrashing on terminals that mishandle frequent partial redraws.
## [0.8.33] - 2026-05-12
A sub-agent and RLM renovation release. The model-facing delegation