Dahawa Life Plan
- An intelligent programming assistant who understands you
- An intelligent assistant who understands you
- An assistant who understands you
One is the bottom line reserved for yourself
Versions
v2.8.0 ~ v2.8.2 (2026-11-03 ~ 2026-11-05)
- Added agentMessageService, a unified message delivery system: unified ‘main’/‘agent:{agentId}’ addressing with Force/Try/Serial delivery modes plus waitMessages/peekMessages; fixed the loop scheduled task silently dropping prompts on busy
- Removed the deprecated TaskTool and TaskTeamTool; subagent task scheduling is now unified under AgentTool, which supports filtering the tool list by agentConfig.tools
- Web client enhancements
- Subagents now support prompt input; fixed mailbox-injected messages (including main busy queued messages) being received by the model but not displayed on the page
- Added pending prompt list (pending_prompts) and Task/TodoWrite task list (tasks_snapshot) displays above the input box, aligned with CLI ordering and styling
- Added a channel notification handling system: receives MCP server→client notifications, writes date-partitioned log files, and broadcasts dispatch via eventBus (shared routing between the main system and the codemode system)
- Fixed stdio subprocess leaks caused by MCP cache invalidation/reconnection
- Fixed PersistentShell external abortSignal being silently overridden by the internal signal; the timeout branch now correctly reports interrupted and ensures the process tree is cleaned up
- MCP main path now supports ${} dynamic variable interpolation (${env.NAME}, ${home}, ${cwd}, ${projectName}, etc.) with the same syntax as .codemode.json; interpolation happens in memory only and never writes back to config
v2.7.19 ~ v2.7.20 (2026-11-01 ~ 2026-11-02)
- Fixed the second tool confirmation getting stuck when confirmations arrive concurrently: the close path now guards with a timer, ignores duplicate closes, and avoids clearing the timer that displays the next confirmation
- Message Archiving placeholders switched to a bracket short-marker format (
<system>[archived xxx: id xxx]</system>) to prevent the model from imitating them into files - Global prompt prohibition rules now explicitly cover archiving placeholders: declared alongside markers as system-generated tokens, with the prohibition extended to files you write
v2.7.14 ~ v2.7.18 (2026-10-28 ~ 2026-10-29)
- ProxyToolLoad added an XML parameter description format: proxyToolSchemaFormat supports json/ts/xml; xml mode outputs a pure XML document with special character escaping
- Refactored ProxyToolLoad schema format building: extracted buildJsonMessage/buildXmlMessage/buildTsMessage into standalone functions
- MessageArchivingTool prompt slimmed down and translated into English
- Simplified TodoWriteTool prompts, removed forced task and todo reminders, and deleted the TodoWrite mandatory usage reminder from the system prompt
v2.7.10 ~ v2.7.13 (2026-10-24 ~ 2026-10-27)
- ProxyToolLoad supports switching parameter description formats via config: new settings proxyToolSchemaFormat (‘ts’|’json’) with a corresponding Config panel enum setting
- Config panel now supports Tab grouping: new General/Context tabs, switched with arrow keys
- codemode process lifecycle fixes: ESC cancel now takes effect through the mainLoop abortController; timeout/cancel/error paths converge on a unified terminate(reason) exit, eliminating subprocesses that ignore SIGTERM; describe removed the endsWith fallback in favor of exact matching, eliminating phantom method names
- Message Archiving enhancements
- Addressing markers wrapped in
<system>tags to prevent the model from repeating internal addressing tokens in user-facing replies - Added thinking block archiving (
thinking/redacted_thinking); markers are injected at the end of the user message following the assistant (after tool_result, satisfying the deepseek tool_result-first compatibility constraint) - Marker insertion moved before the first reminder block, fixing the latent defect of reminders being included in the cache segment
- Added
__tool_input__automatic input archiving: leaf string fields with more than 100 words (nested objects and array indices supported) are automatically archived; unarchive restores all archived input fields - Archiving result rendering slimmed: counts by tool result/input field/thinking block category, with skipped reasons deduplicated and merged
- Addressing markers wrapped in
- Adjusted low-context-usage reminder wording to consistently guide toward archiving
- buildContextUsageMessage cooldown now uniformly returns only a plain usage sentence, always injecting the usage signal without inducing archiving
v2.7.6 ~ v2.7.9 (2026-10-17 ~ 2026-10-22)
- WebFetch added headless browser rendering for JS pages: playwright-core as an optional dependency, SPA shell detection, and dual settle detection (DOM silence + in-flight requests); new headlessBrowser switch in /config
- Bing Headless Search Provider: models without native search capability (OpenAI/DeepSeek and default) now search via www.bing.com with a three-tier fallback chain (headless rendering + in-page DOM extraction → static parsing → exception fallback)
- Table rendering upgrades
- Layout algorithm migrated to the hawa-table component with water-filling column width allocation and display-width-aware wrapping, fixing overflow/misalignment of long table content
- Fixed emoji display width misjudgment (miscellaneous technical symbols counted as width 2) and misalignment caused by counting variation selectors and zero-width joiners as width
- Table headers now centered by default; added renderMarkdownTable to parse markdown pipe tables
- string-cli-width added truncateByWidth to truncate strings by terminal display width (correctly handling multi-byte characters and emoji); pending hints now uniformly use it
- Fixed npx tsx –test hanging forever: lspManager/fileFreshness switched to lazy loading, timers unref’d
- Fixed autoCompact summary extraction failure when thinking is enabled
- Context usage reminder added a high-water mark of 0.85: dynamic usage reminders are abandoned beyond it, leaving fallback to auto-compaction
- Archiving guidance now enforces a step interval: at least 5 requests between two archiving actions by default (adjustable in real time via HAWA_CODE_ARCHIVE_STEP_INTERVAL)
- Context optimization reminders split into a static guide and a dynamic usage line (gated by HAWA_CODE_CONTEXT_OPT_SPLIT)
- Simplified codemode.session API: kept only get/set, with value null as the delete sentinel
- Fixed CLI terminal forcibly breaking long words in thinking/text messages
- Moved LSP usage reminders from system reminders into tool descriptions and parameter descriptions
- Deduplicated archiving system reminder wording: static guide handles full explanations, dynamic usage keeps only the signal and minimal action suggestion
v2.7.0 ~ v2.7.5 (2026-10-13 ~ 2026-10-16)
- codemode Session v1: added codemode.session cross-process session storage capability
- codemode config merging extracted into mergeCodemodeConfigs, uniformly applying dynamic parameter interpolation to merged global and project-level .codemode.json results
- Added showWindowTokens setting: status bar now shows current window token count and context ratio
- getGitPrompt is now controlled by the HAWA_CODE_GIT_PROMPT environment variable (disabled by default)
- ProxyTool prompt optimization: loadOne responses add a Required arguments section and remove the Usage example section
- Added screenService as a unified clear-screen entry point, consolidating all REPL clear-screen call sites; resize now safely re-mounts Static to rewrite history at the new width
- Fixed tool confirmation dialog race conditions: preventing closed dialogs from resurrecting and zombie dialogs
- Fixed schemaToType index signature generation to use the actual additionalProperties type
v2.6.12 ~ v2.6.13 (2026-10-11)
- Removed the ps-tree dependency; added a self-developed processTree utility to unify process tree termination and liveness checks
- The update/config/mcp/plugin/approved-tools/doctor subcommands and –version/–help now skip eager loading of MCP tools
- Adjusted tool registration order so ProxyTool-related tools are registered first
- Simplified tsconfig paths wildcard fallbacks; bare path imports changed to relative imports
- Fixed react/jsx-runtime mapping pointing to .d.ts, which caused missing jsx exports in tsx runtime
- Removed the example prompt from the Agent tool
v2.6.10 ~ v2.6.11 (2026-10-09)
- Optimized startup time
- Codemode now excludes providers that failed to connect
- Unified codemode meta function signatures to object parameters
- Fixed PromptInput issues when entering large text
- Fixed the describe parameter in prompts
v2.6.2 ~ v2.6.9 (2026-10-06 ~ 2026-10-08)
- Startup optimizations
- Moved the startup loading hint before parseArgs’s getCommands(), covering normal startup and –resume paths to avoid long periods without feedback
- Added connection timeout protection for MCP HTTP/sse/streamable-http branches; the configured timeout now also applies to HTTP servers
- codemode enhancements
- Unified tool name sanitization: prefixed tool names are converted to valid identifiers; only sanitized names are exposed to the sandbox and prompt, while original names are used when calling the MCP server
- Unified snippet description syntax in describe to snippet.
, connecting the search → describe flow - Added memoize caching to getCodemodeTools to avoid repeated listTools calls on every execution
- Improved Chinese search retrieval
- Fixed inconsistency between codemode.search meta function outputSchema and its implementation
- Added a CodeMode snapshot saving reminder to systemReminder
- Startup optimizations
v2.6.0 ~ v2.6.1 (2026-10-03)
- Default configuration changes
- Tool exposure mode lazyTool now defaults to proxy
- Real-time memory extraction autoMemory.enabled and memory consolidation autoDream.enabled now default to false
- Removed the ThinkTool tool (including web-side render components and related references)
- Fixed a model configuration bug and added source name renaming
- ProxyToolCall self-invocation is now forbidden; the error message is unified to toolName cannot be ProxyToolCall
- codemode MCP descriptions are truncated by word count (English by words, Chinese by characters), with an ellipsis appended
- proxytoolload changed to single loading
- Unified codemode naming to camelCase
- Fixed a batch of compilation errors
- Default configuration changes
v2.5.1 ~ v2.5.2 (2026-09-29 ~ 2026-09-30)
- Optimized ProxyTool prompts, emphasizing that tools must be loaded before calling
- proxy-tools now supports a maximum tool count; provider and methods layout optimized
- The maximum number of methods shown per provider in codemode is now configurable via /config (codemodeMethodsMax, 1-100, default 20)
- Markdown table improvements: separator lines added between data rows, green header highlight
- Simplified codemode usage instructions
- Removed unnecessary bun dependencies
v2.5.0 (2026-09-28)
- Split ProxyTool into two tools: ProxyToolLoad and ProxyToolCall
- Optimized useWindowSize non-TTY fallback size caching to avoid duplicate renders from invalid resize events
- Removed duplicate git command instructions from the PowerShellTool prompt
- Fixed a batch of compilation errors (agent.ts, apiTransformer.ts, NormalizedMessage, react key, etc.)
v2.4.52 ~ v2.4.55 (2026-09-26 ~ 2026-09-27)
- Optimized ProxyTool prompts and JSON schema descriptions, clarifying the usage rules and parameter requirements for load and call
- Added explanations of incorrect invocation patterns to prompt examples (duplicate control parameters inside arguments, flattened parameter calls)
- Optimized the codemode describe output schema hint, emphasizing that the output structure should be inferred and persisted only after the first real call
- Optimized PowerShell tool use display
v2.4.51 (2026-09-25)
- Built-in default Skill support
- Added repository root skills/ directory, copied to dist/skills during build and shipped with the package
- SkillService added builtin scan path (lowest priority; user/project skills with the same name can override), watcher skips builtin
- Changed snippets storage path to .hcode/.codemode-snippets.json
- Optimized codemode prompt (emphasizing code invocation) and automatic output schema saving
- Optimized ProxyTool prompts, clarifying the load-then-call invocation flow
- Refactored loop architecture
- Built-in default Skill support
v2.4.49 ~ v2.4.50 (2026-09-24)
- Renamed ProxyTool call parameter input to arguments; TS input type in load results uniformly renamed to arguments type
- Changed proxytool reminders to English
- Streamlined BashTool prompt: removed git commit/PR operation guides, directory verification steps, and unused imports
- Fixed unwrapMcpResult failing to parse JSON after concatenating multiple text contents
v2.4.45 ~ v2.4.48 (2026-09-23)
- ProxyTool parameter rename: action → proxyToolAction, name → toolName, avoiding nested name collisions with the target tool’s own action/name parameters that caused the model to omit arguments
- codemode enhancements
- Custom Instructions support: .codemode.json MCPServer added instructions property, taking priority over the MCP Server’s own configuration
- renderToolResultMessage adds single-line truncation: lines over 200 characters are truncated with a … marker
- output schemas storage split by provider’s codemode config location: user-level stored in ~/.hcode/codemode-output-schemas.json, project-level stored in {projectDir}/.hcode/codemode-output-schemas.json; merged on read with project-level overriding user-level
- Show loading hint when loading MCP tools at startup
- Fixed flickering and black-screen issues caused by BashTool/PowerShellTool outputting full progress during execution; display side truncated to the last 5 lines
- PowerShellTool terminal result display now reuses BashTool’s BashToolResultMessage, consistent with BashTool styling
v2.4.40 ~ v2.4.42 (2026-09-22)
- Streamlined product features
- Removed release-notes, login(OAuth), and Sentry features
- Spinner animation changed to braille dot matrix single-direction rotation; removed unreferenced dead code files
- Fixed memory files still being displayed when the memory feature is disabled
- Streamlined product features
v2.4.33 ~ v2.4.39 (2026-09-18)
- Simplified TodoWriteTool prompt: removed all Examples sections, keeping only When/When Not/Task States core descriptions
v2.4.30 ~ v2.4.32 (2026-09-08 ~ 2026-09-17)
- ProxyTool loading mechanism upgrade
- action renamed from describe to load; load became the default action, strengthening the load-before-call guidance
- Prompt tags unified from
to , consistent with tool list structure naming - load action displayed as LoadTool(target tool name) on CLI and Web, distinguished from call
- Type signatures in load results no longer wrapped in typescript fences, output as plain text consistent with CodeMode describe
- system prompt injects loading hint when ProxyTool is enabled: must load before call to obtain tool signatures
- rules compatible with ProxyTool proxy mode
- path rules unwrap real tool names and arguments before matching; load action does not participate in matching
- Rule expansion tag changed from
to , inserted before the trailing reminder block when merging - Fixed dynamic rules cache hit issue
- log.ts isMessageRecord recognizes path_rules type, matchedPathRules can be restored after resume
- Optimized lazy loading hint priority
- ProxyTool loading mechanism upgrade
v2.4.26 ~ v2.4.29 (2026-09-07)
- Code Mode snippet feature
- Added
codemode.snippet.<name>(input), supporting execution of saved snippets by name; newly saved snippets are available immediately at runtime - saveSnippet added optional inputSchema/outputSchema parameters with object validation
- describe no longer returns source code for snippets; instead generates concrete type signatures based on schema (falls back to unknown without schema)
- Added
- Fixed error prompts for nonexistent tools
- Only prompts to load via ToolLoader or ProxyTool when the tool exists in the full _tools list
- Returns No such tool available when a tool can neither be loaded nor proxied
- Code Mode snippet feature
v2.4.24 ~ v2.4.25 (2026-09-06)
- Added appwrite provider configuration in .codemode.json
- Proxy mode exposure layer changed from ProxyTool+CodeMode only to ProxyTool + proxyWhiteList whitelist tools
- MCP client supports timeout configuration in .codemode.json; default connection timeout for both MCP paths unified to 20s
v2.4.22 ~ v2.4.23 (2026-09-04)
- Replaced JSON Schema with TypeScript type signatures as the description and validation basis for tool parameters
- Fixed issue where subagents could not obtain ProxyTool in proxy mode
- Optimized ProxyTool proxy invocation rendering logic, adding a <> prefix identifier
- Added CodeModeToolResult rendering component
v2.4.14 ~ v2.4.21 (2026-09-04)
- ProxyTool proxy tool enhancements
- Merged lazyTool/proxyToolEnable into a three-state enum LazyToolMode
- Fixed issue where directly invoking real tools in proxy mode bypassed ProxyTool isolation
- Parameter validation failure prompts guide users to query the correct input structure via ProxyTool describe
- Optimized proxy tool prompt, strengthening the describe-first guidance
- ProxyTool proxy tool enhancements
v2.4.10 ~ v2.4.13 (2026-09-02 ~ 2026-09-03)
- Supports setting maximum token return count
- Optimized tool lazy loading order to increase cache utilization
- Optimized prompt cache points, reduced to only one
- Fixed opus-4-8 model thinking configuration
- Optimized codemode display
v2.4.3 ~ v2.4.6 (2026-09-01)
- Optimized codemode prompt wording
- Tool lazy loading no longer displays method hints
v2.4.1 ~ v2.4.2 (2026-08-31)
- codemode no longer displays stack traces for MCP errors; ZodError shows complete error message
- Added support for minimum, maximum, minLength, and maxLength properties in JSON Schema, with corresponding comments added to generated TypeScript types
- Added detailed input parameter comment feature; when HAWA_CODE_JSDOC is set to true, JSDoc comments include descriptions for each input field
v2.4.0 (2026-08-30)
- Code Mode 0.1 support
- Added codemode tool, supporting natural language invocation of MCP server capabilities
- Optimized codemode tool confirmation message prompts
- Added codemode.search method documentation
- Codemode Prompt displays parameters
- Optimized codemode Prompt to display MCP server descriptions
- Added LS tool component on Web
- Supports directory list display and expansion
- Web subagent disables user input when status is ended
- Code Mode 0.1 support
v2.3.5 (2026-08-23)
- Web tool calls support notifications
- Web UI style optimizations
- Changed web Prompt prefix to vertical bar
- Optimized web message and tool result styles
- Simplified PromptInput status hints and centered input box
- Settings page scrollbar unified to custom dark theme style
- Optimized Settings and Agent Viewer switching logic
v2.3.4 (2026-08-22)
- Web UI comprehensive upgrade
- Web optimization 0.1
- Optimized web layout
- Frontend adopts dark theme
- Fixed header style height issue
- Changed web logo
- Optimized frontend buttons
- Web UI comprehensive upgrade
v2.3.3 (2026-08-22)
- Upgraded web UI display
v2.3.3 (2026-08-20)
- Anthropic API thinking block merge fix
- Support
thinkingandredacted_thinkingcontent blocks inmergeAnthropicChunks - Accumulate
thinking_deltaandsignature_delta, preserving signature for multi-round passthrough - Fix related TypeScript type errors
- Add
api-anthropicmerge test cases
- Support
- Anthropic API thinking block merge fix
v2.3.2 (2026-08-16)
- Web Prompt input optimization
- Prevent IME Enter from sending messages directly
- Expand input height
- Center send button
- Fixed TextInput custom chunked paste detection
- Web Prompt input optimization
v2.3.1 (2026-08-10)
- Plugin marketplace list hides source; detail page shows source (except default)
v2.3.0 (2026-08-08)
- Split Plugin marketplace lifecycle into add/install/uninstall/remove
- Skill defaults user-invocable to false
- Fixed useTextInput Shift+Enter being reported as meta+return
v2.2.3 (2026-08-06)
- Translated system reminder wording to English
v2.2.2 (2026-08-05)
- MessageArchiving prompt simplification
- Removed tool_use_id lookup guidance from the prompt; handled automatically by the tool
- MessageArchiving prompt simplification
v2.2.1 (2026-08-04)
- Web Settings plugin management
- Added plugin and marketplace management to the Web settings panel
- Web Settings plugin management
v2.2.0 (2026-08-03)
- MessageArchiving enhancements
- Skip archiving short tool_use input fields (≤100 characters) to avoid meaningless archiving
- Pass historyMessages to tool calls for archival eligibility checks based on conversation history
- Added
settings.archiveToolUseInputssetting to control input field archiving
- MessageArchiving enhancements
v2.1.5 (2026-07-30)
- WebServer model config validation enhancement
- Return detailed field-level errors for invalid model configurations
- WebServer model config validation enhancement
v2.1.4 (2026-07-29)
- Plugin compatibility configuration
- Changed Claude Code plugin compatibility to the
settings.plugins.pluginClaudeCompatsetting, enabled by default
- Changed Claude Code plugin compatibility to the
- Plugin compatibility configuration
v2.1.2 / v2.1.3 (2026-07-28)
- MCP HTTP server enhancement
- Supports streamable-http as an MCP HTTP server type
- MCP HTTP server enhancement
v2.1.1 (2026-07-27 ~ 2026-07-28)
- Plugin plugin system enhancement
- PluginManager marketplace detail page supports Update and Remove operations
- Terminal compatibility fix
- Fixed inconsistent line endings on Windows, unified to
\n
- Fixed inconsistent line endings on Windows, unified to
- Plugin plugin system enhancement
v2.1.0 (2026-07-23 ~ 2026-07-25)
- Plugin plugin system
- Enabled plugin compatibility
- Supported plugin 0.1, added PluginManager management interface
- Added core modules such as MarketplaceService, PluginInstallService, PluginRegistry, PluginManifestService, PluginSecurity, PluginUpdateService
- Supports fetching plugins from multiple sources including GitHub, Git, NPM, and local directories
- Supports plugin MCP services; plugins can register custom MCP Servers
- Added plugin-related tests (install, marketplaceValidator, schemas, PluginRegistry MCP, etc.)
- Fixed conflict between auto mode thinking and tool_choice
- Plugin plugin system
v2.0.3 (2026-07-21)
- History storage optimization
- History records now stored in history.jsonl
- Settings model configuration optimization
- Fixed issue where comma input in the models field of model configuration was blocked
- History storage optimization
v2.0.2 (2026-07-17)
- Added /cd slash command
- Supports quickly switching working directories
- Supports generic argument hints (arg-hint)
- Configuration initialization refactoring
- Unified configuration initialization logic into modelManager
- Added /cd slash command
v2.0.1 (2026-07-11 ~ 2026-07-16)
- Terminal framework upgraded to ink 7
- Replaced custom paste detection with ink 7 usePaste
- Fixed Esc key routing, terminal clear timeout, and functional state update issues
- REPL terminal resize debouncing to reduce flicker and clear races
- Slash command arrow/enter navigation restored
- Spinner and periodic UI refresh migrated to ink 7 useAnimation
- Unified window resize handling with shared useWindowSize hook
- Removed unused sticker form and animated asterisk components
- Agent execution enhancement
- Supports configuring agent depth limits
- Waits for background subagent tasks to complete before continuing
- Agent Viewer enhancement
- In-progress tool_use displays a spinner
- Terminal framework upgraded to ink 7
v2.0.0 (2026-07-10)
- Settings form layout optimization
- Replaced flex space-between with a grid layout using a fixed label column
- Improved alignment of controls in General, Web Server, Auto Mode, Memory, and other settings to avoid excessive gaps
- Settings form layout optimization
v1.42.3 (2026-07-09)
- Agent Viewer enhancement
- Supports prompt input
- Supports interrupting main agent requests
- Unified interactive tool rendering
- Added toolUserResponseService, supporting unified rendering of interactive tools in terminal and Web
- Settings enhancement
- Added planDirectory setting, supporting custom plan file storage directory
- Agent Viewer enhancement
v1.42.2 (2026-07-04)
- Fixed compressed thinking failure, ensuring message content is correctly handled during compression to avoid errors caused by unexpected content formats
- Removed unused src/messages.ts and related references
v1.42.1 (2026-07-03)
- Fixed clearConversation function not triggering REPL re-render when clearing messages
v1.42.0 (2026-07-03)
- Web tool confirmation 2.0
- Added ConfirmationService, decoupling tool permission confirmation flow from the UI layer
- Unified tool confirmation support for CLI local UI and Web clients
- Added ToolConfirmQueue component on Web, with modal-style tool call confirmation
- WebSocket broadcasts tool confirmation requests and completion notifications
- Other clients’ confirmation windows automatically close after one client responds
- Pending confirmation requests can be restored after reconnecting or refreshing the page
- Settings migration
- Memo and Message Archiving toggles migrated from environment variables to settings
- Added memo and messageArchiving settings, disabled by default
- Config panel supports enabling/disabling Memo and Message Archiving
- Settings file hot-reload listener changed to unref to avoid blocking process exit
- Web tool confirmation 2.0
v1.41.4 (2026-07-02)
- Version bump
v1.41.3 (2026-07-02)
- Optimized context usage reminder
- Fixed MessageArchiving and Memo tool loaded-state judgment logic
- Prompts when tools are not loaded are more specific and actionable
- Added reminder: even if context usage is low, historical messages with a lot of task-irrelevant content should be handled
- Web Settings panel optimization
- Adjusted JSON editor height
- Improved Model Config JSON editor styling
- Optimized context usage reminder
v1.41.2 (2026-07-02)
- Web model configuration Settings panel
- Added /api/model-config API, supporting reading and updating config.json
- Added ModelConfigSetting component, supporting form mode and JSON edit mode
- Supports sources and routing configuration
- Added model config validation logic and related tests
- Web model configuration Settings panel
v1.41.1 (2026-07-01)
- Optimized Agent Viewer and supported Memo write detail display
- AgentToolUse added prompt detail expand/collapse, showing model, type, resume, background execution, and other metadata
- AgentToolResult long results support collapsing after expansion
- MemoToolUse write operation added details button to view full written content
- Optimized Agent Viewer and supported Memo write detail display
v1.41.0 (2026-07-01)
- Web Settings configuration panel
- Added /api/settings REST API and configuration write validation
- WebSocket real-time synchronization of configuration changes (settings_changed / settings_snapshot)
- Frontend SettingsPanel component and basic editing controls
- Configuration file hot reload broadcasts changes via eventBus
- Added settingsValidation validation module and related tests
- Settings panel optimization
- Adjusted Advanced configuration order to env/permissions/sandbox/sessionSummary
- env configuration changed to KeyValue form mode, supporting add/delete/edit
- Changed from real-time save to save-button batch submission mode
- Improved env configuration validation rules and added tests
- /cost command UI panelization
- Added token usage, context window ratio, and cache hit rate display
- cost-tracker added cacheTokens and currentContextTokens tracking
- llmodel updates cache and context token statistics on each API call
- Web tools and message optimization
- Memo tool Web component implementation, including usage and result display components
- Filtered internal messages displayed on Web (INNER_MESSAGE, SYSTEM_NOTIFICATION, system-reminder)
- Fixed archive function Web display
- Lazy-loaded tool prompt optimization
- Fixed incorrect prompt when lazy-loaded tool does not exist
- Optimized prompt copy for unloaded tools
- Web Settings configuration panel
v1.40.1 (2026-06-24)
- Unified lazy-loaded tool reminders to use tools parameter, optimized LSP prompt copy
- getToolLazy and getLSPServer methods now use the current agent’s actual tool list instead of global context data
- Optimized unloaded tool prompt copy: replaced Unloaded tools with Available but not loaded tools
- LSP reminders now determine whether LSP tools are loaded via the tools parameter, removing direct dependency on CONTEXT_LOADED_TOOLS
- Unified lazy-loaded tool reminders to use tools parameter, optimized LSP prompt copy
v1.40.0 (2026-06-24)
- Subagent tool lazy loading
- Full support for subagent tool lazy loading, with loaded tool state isolated per agent
- ToolLoader / ToolUnLoader isolate loaded state by agentId, so subagents do not pollute the main agent’s tool list
- Fork-mode subagents pass the complete original tool list (_tools), ensuring lazy loading can access all available tools
- Tool.prompt added optional context parameter, allowing ToolLoader to perceive the current agent’s tool scope
- In lazy loading mode, ToolLoader / ToolUnLoader are always available (fixTools dynamically supplements based on enableLazyTool)
- Unloaded tool error prompts also apply to subagents
- Subagent tool lazy loading
v1.39.2 (2026-06-23)
- Optimized context usage reminder
- system reminder context usage prompt is now shown at all usage levels, not only when ≥50%
- Optimized MessageArchiving and Memo tool load/loaded prompt copy to be more concise and clear
- Multiple tool suggestions (archive + memo) are presented as a list for clearer structure
- Optimized context usage reminder
v1.39.1 (2026-06-22)
- Fixed webServer frontend process is not defined error caused by referencing @constants/product.js
v1.39.0 (2026-06-21)
- Message archiving and context optimization
- Message archiving 1.0 officially launched
- Supports MessageArchiving lazy loading and optimized guidance reminders
- Decoupled Message Archiving and Memo context optimization reminders
- Centralized Message Archiving enablement judgment in SettingManager
- Archive tool results support optional summary field for summarizing key information
- Skips archiving for tools with little return content (e.g., Cwd, Think, TodoWrite, MessageArchiving, etc.) to avoid meaningless replacement
- Applies messageArchivingService.applyToMessages before automatic compression to ensure archived content is also replaced
- Centralized AUTO_COMPACT_THRESHOLD_RATIO in constants/product.ts
- system reminder context usage prompt supplemented with automatic compression trigger threshold (92%)
- Memo tool enhancement
- Simplified prompt and extracted constants, schema added basic validation
- Added input validation to prohibit saving content containing …(argument truncated) placeholders
- Changed to truncation mode: placeholders replaced with truncated text, keeping first 20 characters and adding a hint
- Removed duplicate summary hint from successful Memo write results
- Added SettingManager.isMemoEnable, controlled by HAWA_CODE_MEMO environment variable
- system prompt added explanation of Memo content placeholders
- Added content parameter to filter content during queries to reduce context usage
- After truncating old Memo write content, insert a synthesized explanation message to reduce model hallucination
- Configuration and interaction
- Added autoMode toggle option in settings panel
- /model command added Open Config button
- Slash commands support controlling tool lazy loading
- autoModel enabled by default
- Fixed bug where autoDream still executed after being disabled
- Tools and permissions
- Restored LS directory listing tool
- Backend added /api/config endpoint returning userType
- Frontend added useConfig hook to get userType and filter tools based on userType
- Added description fields to BashTool and PowerShellTool input schemas
- Added missing agent id parameter
- Other fixes
- Fixed websocket module import issue, compatible with CommonJS and ES modules
- Message archiving and context optimization
v1.38.12 (2026-06-16)
- Fixed error when reading empty files
v1.38.11 (2026-06-15)
- Fixed agentviewer bug
- Architecture optimization: separated tool execution from agent execution
v1.38.10 (2026-06-14)
- Fixed AgentTabs main tab display issue, keeping it consistent with backend agentId
- Fixed bug where main agent could not be awakened after subagent ended
- Added agentType, agentName, and description parameters to hawaContext.onQueryStart to facilitate tracking sub-agent lifecycle
v1.38.9 (2026-06-12)
- Hidden tool unload messages
- webviewer 2 added usage and result components for multiple tools: NotebookEdit, WebSearch, WebFetch, TaskStop, TodoWrite, Think, AskUserQuestion, EnterPlanMode, ExitPlanMode, Enter WorktreeTool, ExitWorktreeTool, SlashCommand, Skill, CronCreate, CronDelete, CronList, TeamCreate, TeamDelete, SendMessage
- Optimized normal MCP tool display
v1.38.8 / v1.38.7 / v1.38.6 (2026-06-12)
- Three tags point to the same commit
- Hawa Code - Agent Viewer centered display
v1.38.5 (2026-06-12)
- hands tool supports cwd tool
v1.38.4 (2026-06-12)
- hands tool server supports Session reuse of current mcpserver
- Optimized command message display
v1.38.3 (2026-06-12)
- Fixed error where retries could not be interrupted
- Supports proxy setting in config, allowing users to enable or disable proxy functionality
- Fixed edit tool display issue in webviewer
- Optimized hands remote identifier
- Optimized hands tool rendering in webviewer
- Optimized overall webviewer rendering
- Removed cost display
v1.38.2 (2026-06-08)
- Fixed port conflict when starting multiple hcode webserver instances
v1.38.1 (2026-06-08)
- Fixed webviewer static file path issue
v1.38.0 (2026-06-08)
- Supports webviewer 1.0
- Web viewer supports table display
- Optimized webview frontend page rendering of tool use and tool result correspondence
- Switched to incremental messages for better performance
- TaskCreate, TaskGet, TaskUpdate tools no longer render on Web, consistent with CLI
- Fixed duplicate display of default and main agent
- Optimized webserver startup log output
- Optimized webserver display in config
1.37.4 (2026-06-07)
- Optimized hands tool local rendering
1.37.0 (2026-06-03)
- Supports Goal slash command
- Stop Hook added last_assistant_message parameter
1.36.0 (2026-05-24)
- Supports built-in Hands tool, directly start hands command without installing mcp
1.35.5 (2026-05-21)
- Fixed Edit tool line misalignment bug during file comparison
- Supports Http request powerful proxy
- Supports custom use agent, supports authorization, x-api-key
- Supports enabling hawa code built-in computer use via environment variable
1.35.0 (2026-05-16)
- Supports setting openai image detail via environment variable
1.32.0 (2026-05-08)
- hawa code fully supports windows, skill, slash commands, and user instructions all support powershell
- Fixed image paste bug
1.31.4 (2026-05-08)
- Optimized hawa code update performance on windows
1.31.3 (2026-05-08)
- Optimized Shell execution performance
1.31.2 (2026-05-07)
- Optimized tool lazy loading performance
- Fixed openai response request bug
1.31.0 (2026-05-07)
- Supports automatic tool unloading in tool lazy loading mode
- Supports thinking depth switching
- Compatible with openai response api search
- Fixed openai chat completions thinking protocol conversion bug
- Optimized multi-model token compression estimation calculation
- Supports multi-model load balancing
1.28.0
- Supports powershell tool
- Supports memory recall during query
- Agent Team idle messages are suppressed
- Memory slash command supports manual memory clearing
1.27.0
- autoDream supports team memory
- autoMemory supports automatically recalling up to 5 related memories before Query
- Supports /memory slash command to manage memory function on/off and memory files
- Supports auto permission mode, where the model autonomously judges and authorizes tool execution
- Supports /auto slash command to quickly enable auto mode
- Supports switching auto mode via terminal shortcut
- Optimized error log output
1.26.0
- Supports session memory automatic extraction, autoMemory, currently disabled by default
- Supports session memory automatic integration, autoDream, currently disabled by default
1.25.3
- Supports session summary compression mode
- Fixed resume slash command duplicate message bug
1.24.0
- Supports git worktree tool
- subagent supports git worktree
- Fixed agent team tab switching loading position anomaly error
1.23.0
- Fixed Agent Team Tab logo not displaying
- Optimized terminal rendering performance
1.22.8
- Fixed automatic compression bug
- Fixed bash path issue
1.22.5
- Fixed tree-sitter-bash testing issue
1.22.3
- Optimized compressed messages
- Fixed TreeSitterNode path bug
1.22.2
- Added permission release for acceptEdits mode, allowing all files without file restrictions
- Fixed permission path matching issue
1.22.1
- Message logs support linked list association
- Fixed error log printing bug
- Fixed crash when accessing Kimi process bug
1.22.0
- Optimized message log storage performance
- Fixed terminal message display disorder bug
1.21.0
- Fixed some tool configuration permission anomaly bug
1.20.0
- Supports autoAllowBashIfSandboxed parameter, if enabled sandbox Bash no longer validates
- Permission configuration supports ask configuration, can force tool execution to require user confirmation
- In bypassPermissions mode, writing to .git, .hcode, .vscode, and .idea directories still prompts confirmation, but writing to .hcode/commands, .hcode/agents, and .hcode/skills is exempted
- Supports disableBypassPermissionsMode parameter to disable bypassPermissions mode
- Uses tree-sitter-bash to interpret shell, optimizing parsing performance
- Fixed shell prefix matching bug
- Supports shell saving as multiple subcommands instead of a single named match
1.19.0
- Supports sandbox, can isolate network, disk files, users can specify allowed domains, disk file methods, etc.
- Supports sandbox slash command
1.18.0
- Skill dynamic parameter replacement, $ARGUMENTS, $ARGUMENTS[N], $N, ${HCODE_SESSION_ID}, ${HCODE_SKILL_DIR}
- Skill supports disable-model-invocation, user-invocable parameter configuration
- Skill supports !
commanddynamic shell execution
1.17.0
- Skill supports context fork parameter for subagent execution, supports agent parameter
1.16.0
- Plan mode supports local file storage, stored at ~/.hcode/plan
- Added plan command to enter plan mode
- Agent Team supports mode parameter
- Supports Read, Edit tool permission configuration
1.15.0
- Supports scheduled task scheduling
1.14.0
- Supports automatic memory, Hawa code automatically extracts memories from conversations, memories are cross-session
1.13.5
- Fixed bug where Agent Team was enabled but Tasks were not enabled
1.13.4
- Optimized Agent Team list display
1.13.2
- Supports terminal display of Agent Team member messages
1.13.1
- Enabling Agent Team automatically enables Tasks function
- Tasks list added owner display
1.13.0
- Supports Agent Team
1.12.2
- Supports SessionEnd Hook
1.12.1
- Supports SessionStart Hook
- Fixed TODO restore bug
1.12.0
- Task planning mode upgraded from TodoWrite to Tasks mode, supporting task local file storage and cross-session communication
- Fixed terminal title display anomaly
- Optimized tool name usage
1.11.3
- Fixed Subagent deadlock issue
- Optimized log output performance
1.11.2
- Added PostToolUse Hook, supports triggering custom operations after successful tool execution
- Added PostToolUseFailure Hook, supports triggering custom operations when tool execution fails
- Optimized Hook Matcher matching performance
1.11.1
- Supports tool inputScheme lazy loading, optimizing startup time
- Optimized Task Tool progress display, solving terminal flicker issue
- Supports disabling Prompt prompt function
- Fixed message duplicate publishing bug
- Fixed system reminder message duplicate bug
- Optimized tool execution performance
1.11.0
- Supports PreToolUse Hook
1.10.2
- Supports using shortcut keys to switch tasks to background execution
- Supports controlling background task running reminders
- Optimized Markdown display
- Supports displaying output during shell execution
- Fixed inaccurate background shell task count display issue
1.10.0
- Added TaskStop tool, supports aborting background subagent tasks and shell task execution
- Removed KillShell tool
- After background shell tasks complete, supports restarting conversation
- Supports displaying background shell task count
- Fixed background subagent conversation restart deadlock issue
1.9.3
- Supports SubagentStart hook
1.9.2
- Supports Stop, SubagentStop hook
1.9.0
- Supports user-level rules, project-level rules, and on-demand loading by path
- Supports startup commands
- Optimized message reminders
1.8.0
- Optimized terminal MCP auto-authorization configuration
1.7.0
- Remote MCP supports auto-authorization
- Optimized usage effect in githubcodespace
- MCP Tool permissions.allow supports wildcard setting
- Optimized compatibility with non-standard Tool input JSON and erroneous JSON formats in Qwen-code-plus
1.6.0
- Supports MCP Tool lazy loading
- Fixed Task Tool verbose mode crash bug
- Optimized network request retry performance
1.5.0
- Supports settings.json configuration and hot reload
1.4.0
- AskUserQuestion tool supports multiple questions and custom input
- Optimized Grep Tool
1.3.0
- Supports prompt suggestion statements at the end of conversations
1.2.0
- Supports submitting prompt statements during conversations
1.1.0
- Supports subagent background execution
- Supports subagent resume execution
- Optimized LSP tool file path validation
1.0.16
- Optimized tool lazy loading performance
- Optimized LSP tool terminal display
1.0.15 Restored TODO LIST when restoring session