22 KiB
22 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
0.3.33 - 2026-04-11
Changed
- Footer polish: simplified footer rendering, removed footer clock label, updated status line layout
- Palette cleanup: removed
FOOTER_HINTcolor constant
Removed
FOOTER_HINTcolor constant from palette (useTEXT_MUTEDorTEXT_HINTinstead)
Fixed
- Test updates to align with simplified footer logic
- Empty state placeholder text removed for cleaner UI
0.3.32 - 2026-04-11
Added
- Finance tool: Yahoo Finance v8 quote endpoint with chart fallback, supporting stocks, ETFs, indices, forex, and crypto lookups.
- Header widget redesign: proportional truncation, context-usage bar with gradient fill, streaming indicator, and graceful narrow-terminal degradation.
- Expanded test coverage: 680+ tests including footer state, context spans, plan prompt lifecycle, workspace context refresh, header rendering, and finance tool integration tests with wiremock.
- Workspace context refresh with configurable TTL and deferred initial fetch.
- Config command additions for runtime settings management.
Changed
- Redesigned footer status strip with mode/model/status layout, context bar, and narrow-terminal fallback.
- Plan prompt now uses numeric selection (1-4) instead of keyword input; old aliases are sent as regular messages.
- Archived outdated docs (
workspace_migration_status.md->docs/archive/). - Trimmed AGENTS.md boilerplate and updated task counts.
- Clarified release-surface documentation: crates.io publication may lag the workspace/npm wrapper.
Fixed
- Header
metadata_spansnow usessaturating_subto prevent underflow on narrow terminals. - Finance tool reuses a single HTTP client instead of rebuilding per request.
- Finance tool tests no longer leak temp directories.
0.3.31 - 2026-03-08
Added
- Replaced the finance tool backend with Yahoo Finance v8 + CoinGecko fallback for reliable real-time market data (stocks, ETFs, indices, forex, crypto).
- Added compaction UX: status strip shows animated COMPACTING indicator during context summarization, footer reflects compaction state, and CompactionCompleted events now include message count statistics.
- Added send flash: brief tinted background highlight on the last user message after sending.
- Added braille typing indicator with smooth 10-frame animation cycle.
Changed
- Redesigned the footer status strip with mode/model/token/cost layout, quadrant separators, and a context-usage bar.
- Added Unicode prefix indicators (▸ You, ◆ Answer, ● System) to chat history cells for visual distinction.
- Improved thinking token delineation with labeled delimiters in transcript rendering.
- Refactored source code into workspace crates for better modularity and dependency management.
Fixed
- Fixed Plan mode ESC key dismissing the prompt without clearing
plan_prompt_pending, which prevented the prompt from reappearing on subsequent plan completions. - Fixed clippy lint (collapsible_if) in web browsing session management.
[0.3.30] - 2026-03-06
Added
- Added a release-ready local npm smoke path that builds binaries, serves release assets locally, packs the wrapper, installs the tarball, and checks both entrypoints before publish.
- Added an opt-in full-matrix local release-asset fixture so
npm run release:checkcan be exercised before GitHub release assets exist.
Changed
- Bumped the Rust workspace crates and npm wrapper to
0.3.30. - Pointed the npm wrapper's default
deepseekBinaryVersionat0.3.30for the next coordinated Rust + npm release. - Updated the crates dry-run helper to work from a dirty workspace and to preflight dependent workspace crates without requiring unpublished versions to already exist on crates.io.
[0.3.29] - 2026-03-03
Added
- Added npm publish-time release asset verification for the
deepseek-tuipackage to fail fast when expected GitHub binaries are missing. - Added checksum manifests to GitHub release assets and checksum verification in the npm installer.
- Added
npm packinstall-and-smoke CI coverage for thedeepseek-tuiwrapper package. - Added an end-to-end release runbook covering crates.io, GitHub Releases, and npm publication.
Changed
- Updated npm package documentation for clearer install modes, environment overrides, and release integrity behavior.
- Improved installer support-matrix error messaging for unsupported platform/architecture combinations.
- Decoupled npm package version from default binary artifact version via
deepseekBinaryVersion, enabling packaging-only npm releases. - Moved the
deepseek-tuibinary target insidecrates/tuisocargo publish --dry-run -p deepseek-tuiworks from the workspace package layout. - Replaced the root-level crates publish workflow with an ordered workspace publish flow.
- Reworked first-run onboarding and README copy around primary workflows instead of shortcut memorization.
- Relaxed onboarding API-key format heuristics so unusual keys warn instead of blocking setup.
0.3.28 - 2026-03-02
Added
- Converted the project to a modular Cargo workspace using a
crates/layout. - Added new crate boundaries mirroring a deepseek architecture (
agent,config,core,execpolicy,hooks,mcp,protocol,state,tools,tui-core,tui, andapp-server).
Changed
- Added parity CI coverage with protocol/state/snapshot checks.
- Updated release workflow to build both
deepseekanddeepseek-tuibinaries.
[0.3.26] - 2026-03-02
Fixed
- Resolved SSE stream corruption caused by byte/string position mismatch in streaming parse flow.
- Hardened base URL validation to reject non-HTTP/HTTPS schemes.
- Prevented multi-byte UTF-8 truncation panics in common-prefix and runtime thread summary paths.
- Corrected context usage alert thresholds by separating warning and critical trigger levels.
Changed
- Removed non-code utility tools from the runtime tool registry (
calculator,weather,sports,finance,time) and related wiring. - Consolidated duplicate URL encoding helpers by delegating to shared
crate::utils::url_encode. - Replaced broad crate-level lint suppressions with targeted
#[allow(...)]annotations where justified. - Cleaned up dead APIs, unused struct fields, unused builder helpers, and non-integrated modules.
- Addressed clippy findings across the codebase (collapsible conditionals, defaults, indexing helpers, and API signature cleanup).
[0.3.24] - 2026-02-25
Fixed
- Preserve reasoning-only assistant turns for DeepSeek reasoning models (
deepseek-reasoner, R-series markers) when rebuilding chat history. - Align SSE tool streaming indices so each tool block start/delta/stop uses the same block index.
- Prevent transcript auto-scroll-to-bottom when a non-empty transcript selection is active.
- Allow session picker search mode to accept the current selection with a single
Enterpress. - Preserve tool output whitespace/indentation while still wrapping long unbroken tokens.
- Make transcript selection copy/highlighting display-width aware (wide chars and tabs).
- Gate execpolicy behavior on the
exec_policyfeature flag across CLI/tool execution paths. - Run doctor API connectivity checks using the effective loaded config/profile (instead of reloading defaults).
- Parse DeepSeek model context-window suffix hints such as
-32kand-256k. - Update README config docs with key environment overrides and a direct link to full configuration docs.
0.3.23 - 2026-02-24
Changed
- Updated project copy to describe the app as a terminal-native TUI/CLI for DeepSeek models (not pinned to a specific model generation).
Fixed
- Model selection and config validation now accept any valid
deepseek-*model ID (including future releases), while still normalizing common aliases likedeepseek-v3.2anddeepseek-r1. - Tool-call recovery now auto-loads deferred tools when the model requests them directly, instead of failing with manual
tool_search_*instructions. - YOLO mode now preloads tools by default (including deferred MCP tools), so model tool calls can run immediately without discovery indirection.
- Unknown tool-call failures now include discovery guidance and nearest tool-name suggestions instead of generic availability errors.
- Slash-command errors now suggest the closest known command (for example
/modle->/model) instead of only returning a generic unknown-command message.
0.3.22 - 2026-02-19
Added
- Interactive
/configediting modal for runtime settings updates.
Changed
- Retired user-facing
/setcommand path (no longer reachable/discoverable). - Replaced
/deepseekcommand behavior with/links(aliases:dashboard,api).
Fixed
- Legacy
/setand/deepseekinputs now return migration guidance instead of generic unknown-command errors.
0.3.21 - 2026-02-19
Added
- Parallel tool execution in
multi_tool_use.parallelfor independent task workflows. - Session resume-thread coverage in tests.
Changed
- Desktop and web parity polish across the TUI and runtime surfaces.
- Onboarding and approval UX refinement from prior phase 3 iteration.
Fixed
- Runtime pre-release startup issues and config-path edge cases.
- Clippy lint regressions introduced by the last parity pass.
Security/Hardening
- General pre-release hardening for runtime app behavior.
0.3.17 - 2026-02-16
Fixed
- Config loading now expands
~inDEEPSEEK_CONFIG_PATHand--configpaths. - When
DEEPSEEK_CONFIG_PATHpoints to a missing file, config loading now falls back to~/.deepseek/config.tomlif it exists.
Changed
- Removed committed transient runtime artifacts (
session_*.json,.deepseek/trusted) and added ignore rules to prevent re-commit.
0.3.16 - 2026-02-15
Added
deepseek modelsCLI command to fetch and list models from the configured/v1/modelsendpoint (with--jsonoutput mode)./modelsslash command to fetch and display live model IDs in the TUI.- Slash-command autocomplete hints in the composer plus
Tabcompletion for/commands. - Command palette modal (
Ctrl+K) for quick insertion of slash commands and skills. - Persistent right sidebar in wide terminals showing live plan/todo/sub-agent state.
- Expandable tool payload views (
vin transcript,vin approval modal) for full params/output inspection. - Runtime HTTP/SSE API (
deepseek serve --http) with durable thread/turn/item lifecycle, interrupt/steer, and replayable event timeline. - Background task queue (
/task add|list|show|cancelandPOST /v1/tasks) with persistent storage, bounded worker pool, and timeline/artifact tracking.
Changed
- Centralized the default text model (
DEFAULT_TEXT_MODEL) and shared common model list to reduce drift across runtime/config paths. /modelnow clarifies that any valid DeepSeek model ID is accepted (including future releases), while still showing common model IDs.
Fixed
- Expanded reasoning-model detection for chat history reconstruction (supports R-series and reasoner-style naming without hardcoding single versions).
- Aligned docs/config examples with actual runtime default model (
deepseek-v3.2).
0.3.14 - 2026-02-05
Added
web.runnow supportsimage_query(DuckDuckGo image search)multi_tool_use.parallelnow supports safe MCP meta tools (list_mcp_resources,mcp_read_resource, etc.)
Fixed
- Encode tool-call function names when rebuilding Chat Completions history (keeps dotted tool names API-safe)
Changed
- Prompts: stronger
web.runcitation placement and quote-limit guidance
0.3.13 - 2026-02-04
Fixed
- Restore an in-app scrollbar for the transcript view
0.3.12 - 2026-02-04
Fixed
- Map dotted tool names to API-safe identifiers for DeepSeek tool calls
- Encode any invalid tool names for API tool lists while preserving internal names
0.3.11 - 2026-02-04
Fixed
- Fix tool name mapping for DeepSeek API
0.3.10 - 2026-02-04
Fixed
- Always enable mouse wheel scrolling in the TUI (even without alt screen)
[0.3.9] - 2026-02-04
Removed
- RLM mode, tools, and documentation pending a faithful implementation of the MIT RLM design
- Duo mode tools and prompts pending a citable research spec
Fixed
- Footer context usage bar remains visible while status toasts are shown
Changed
- Updated prompts and docs to reflect the simplified mode/tool surface
[0.3.8] - 2026-02-03
Fixed
- Resolve clippy warnings (CI
-D warnings) in new tool implementations
[0.3.7] - 2026-02-03
Added
- Tooling parity updates:
weather,finance,sports,time,calculator,request_user_input,multi_tool_use.parallel,web.run - Shell streaming helpers:
exec_shell_waitandexec_shell_interact - Sub-agent controls:
send_inputandwait(with aliases) - MCP resource helpers:
list_mcp_resources,list_mcp_resource_templates, andread_mcp_resourcealias
Changed
- Skills directory selection now prefers workspace
.agents/skills, then./skills, then global - Docs and prompts updated to reflect new tool surface and parity notes
0.3.6 - 2026-02-02
Added
- New welcome banner on startup showing "Welcome to DeepSeek TUI!" with directory, session ID, and model info
- Visual context progress bar in footer showing usage with block characters [████░░░░░░] and percentage
Changed
- Removed custom block-character scrollbar from chat area - now uses terminal's native scroll
- Simplified header bar: removed context percentage indicator (moved to footer as progress bar)
0.3.5 - 2026-01-30
Added
- Intelligent context offloading: large tool results (>15k chars) are automatically moved to RLM memory to preserve the context window
- Persistent history context: compacted messages are offloaded to RLM
historyvariable for recall - Full MCP protocol support: SSE transport, Resources (
resources/list,resources/read), and Prompts (prompts/list,prompts/get) mcp_read_resourceandmcp_get_promptvirtual tools exposed to the model- Dialectical Duo mode with specialized TUI rendering (
Player/Coachhistory cells) - Dynamic system prompt refreshing at each turn for up-to-date RLM/Duo/working-set context
project_maptool for automatic codebase structure discoverydelegate_to_agentalias for streamlined sub-agent delegation
Changed
- Default theme changed to 'Whale' with updated color palette
with_agent_toolsnow includesproject_map,test_runner, and conditionally RLM tools for all agent modes- MCP
McpServerConfig.commandis nowOption<String>to support URL-only (SSE) servers
Fixed
- MCP test compilation errors for updated
McpServerConfigstruct shape
0.3.4 - 2026-01-29
Changed
- Updated Cargo.lock dependencies
Fixed
- Compaction tool-call pairing: enforce bidirectional tool-call/tool-result integrity with fixpoint convergence
- Safety net scanning to drop orphan tool results in the request builder
- Double-dispatch race in parallel tool execution
0.3.3 - 2026-01-28
Added
- TUI polish: Kimi-style footer with mode/model/token display
- Streaming thinking blocks with dedicated rendering
- Loading animation improvements
0.3.2 - 2026-01-28
Fixed
- Preserve tool-call + tool-result pairing during compaction to avoid invalid tool message sequences
- Drop orphan tool results in request builder as a safety net to prevent API 400s
0.3.1 - 2026-01-27
Added
deepseek setupto bootstrap MCP config and skills directoriesdeepseek mcp initto generate a templatemcp.jsonat the configured path
Changed
deepseek doctornow follows the resolved config path and config-derived MCP/skills locations
Fixed
- Doctor no longer reports missing MCP/skills when paths are overridden via config or env
0.3.0 - 2026-01-27
Added
- Repo-aware working set tracking with prompt injection for active paths
- Working set signals now pin relevant messages during auto-compaction
- Offline eval harness (
deepseek eval) with CI coverage in the test job - Shell tool now emits stdout/stderr summaries and truncation metadata
- Dependency-aware
agent_swarmtool for orchestrating multiple sub-agents - Expanded sub-agent tool access (apply_patch, web_search, file_search)
Changed
- Auto-compaction now accounts for pinned budget and preserves working-set context
- Apply patch tool validates patch shape, reports per-file summaries, and improves hunk mismatch diagnostics
- Eval harness shell step now uses a Windows-safe default command
- Increased
max_subagentsclamp to1..=20
0.2.2 - 2026-01-22
Fixed
- Session save no longer panics on serialization errors
- Web search regex patterns are now cached for better performance
- Improved panic messages for regex compilation failures
[0.2.1] - 2026-01-22
Fixed
- Resolve clippy warnings for Rust 1.92
0.2.0 - 2026-01-20
Changed
- Removed npm package distribution; now Cargo-only
- Clean up for public release
Fixed
- Disabled automatic RLM mode switching; use /rlm or /aleph to enter RLM mode
- Fixed cargo fmt formatting issues
0.0.2 - 2026-01-20
Fixed
- Disabled automatic RLM mode switching; use /rlm or /aleph to enter RLM mode.
0.0.1 - 2026-01-19
Added
- DeepSeek Responses API client with chat-completions fallback
- CLI parity commands: login/logout, exec, review, apply, mcp, sandbox
- Resume/fork session workflows with picker fallback
- DeepSeek blue branding refresh + whale indicator
- Responses API proxy subcommand for key-isolated forwarding
- Execpolicy check tooling and feature flag CLI
- Agentic exec mode (
deepseek exec --auto) with auto-approvals
Changed
- Removed multimedia tooling and aligned prompts/docs for text-only DeepSeek API
0.1.9 - 2026-01-17
Added
- API connectivity test in
deepseek doctorcommand - Helpful error diagnostics for common API failures (invalid key, timeout, network issues)
0.1.8 - 2026-01-16
Added
- Renderable widget abstraction and modal view stack for TUI composition
- Parallel tool execution with lock-aware scheduling
- Interactive shell mode with terminal pause/resume handling
Changed
- Tool approval requirements moved into tool specs
- Tool results are recorded in original request order
0.1.7 - 2026-01-15
Added
- Duo mode (player-coach autocoding workflow)
- Character-level transcript selection
Fixed
- Approval flow tool use ID routing
- Cursor position sync for transcript selection
0.1.6 - 2026-01-14
Added
- Auto-RLM for large pasted blocks with context auto-load
chunk_autoandrlm_queryauto_chunksfor quick document sweeps- RLM usage badge with budget warnings in the footer
Changed
- Auto-RLM now honors explicit RLM file requests even for smaller files
0.1.5 - 2026-01-14
Added
- RLM prompt with external-context guidance and REPL tooling
- RLM tools for context loading, execution, status, and sub-queries (rlm_load, rlm_exec, rlm_status, rlm_query)
- RLM query usage tracking and variable buffers
- Workspace-relative
@pathsupport for RLM loads - Auto-switch to RLM when users request large file analysis (or the largest file)
Changed
- Removed Edit mode; RLM chat is default with /repl toggle
0.1.0 - 2026-01-12
Added
- Initial alpha release of DeepSeek TUI
- Interactive TUI chat interface
- DeepSeek API integration (OpenAI-compatible Responses API)
- Tool execution (shell, file ops)
- MCP (Model Context Protocol) support
- Session management with history
- Skills/plugin system
- Cost tracking and estimation
- Hooks system and config profiles
- Example skills and launch assets