Releases: xuziqiang98/lha
lha 1.0.6
LHA 1.0.6 is a patch release focused on making experimental Input Slimming safer for real long-running sessions, while improving compaction reliability, TUI rendering correctness, and CLI-backed agent consistency. This release also publishes lha-llm 1.0.1 with improved context-window error handling.
Highlights
- Adds a new experimental live-zone Input Slimming strategy, input_slimming_live_zone, which slims current tool outputs while preserving cached history prefixes.
- Splits Input Slimming into clear historical and live-zone modes, keeps them mutually exclusive in / experimental, and reports scoped savings as slim hist or slim live.
- Strengthens retrieval safety by protecting recent live outputs, keeping the lha_input_retrieve tool schema stable for live-zone follow-ups, and preserving retrieval for existing markers in conflict mode.
- Improves auto-compaction decisions by accounting for raw history pressure even when the slimmed request is smaller, preventing Input Slimming from hiding compaction needs.
- Makes remote compaction more resilient by trimming older thread items and retrying when the compaction prompt exceeds the model context window.
- Fixes streamed-answer TUI repainting so finalized responses cannot leave stale or visually reordered terminal cells, especially in mixed CJK/ASCII output.
- Shows the active provider in the TUI sidebar alongside the model, making custom-provider sessions easier to inspect.
- Ensures CLI-backed review and delegated agent jobs inherit the parent turn’s reasoning effort setting.
Why It Matters
Input Slimming is still experimental and default-off, but 1.0.6 makes it more practical to evaluate in large-tool-output workflows. Historical slimming remains focused on reducing old tool-output pressure, while the new live-zone strategy targets current tool outputs without rewriting persistent history. Both paths keep originals recoverable through lha_input_retrieve, and the TUI now makes it clearer which strategy produced the savings.
This release also closes several reliability gaps that show up in long sessions: compaction now considers the raw history that would actually be summarized, remote compaction can recover from context-window failures by dropping the oldest items, and provider context_length_exceeded responses are mapped to a dedicated context-window error. Together, these changes help LHA keep moving instead of letting token-saving optimizations mask the need to compact.
Finally, the TUI and job-execution fixes make day-to-day runs feel more consistent: streamed answers finalize cleanly on screen, provider configuration is visible in the sidebar, and spawned review/explorer jobs respect the same reasoning-effort choices as the parent session.
lha 1.0.5
Highlights
- 新增实验性 input_slimming,默认关闭,可通过 [features] input_slimming = true 启用。
- 只压缩当前 request 中安全的 tool result,不改写用户输入、assistant 消息或 reasoning。
- 为 JSON、日志、搜索结果、diff、纯文本等内容加入了按类型处理的压缩策略。
- 压缩后的原文和元数据会随会话恢复,支持 resume-safe retrieval。
- TUI 的实验功能菜单、侧边栏和消息流新增了相关入口与状态展示。
- 协议层补充了 input-slimming 事件与 token 统计,便于客户端和调试使用。
Why It Matters
- 大体积工具输出不再直接挤占上下文窗口,模型请求更轻。
- 这是请求级优化,不会改变持久历史,失败时也会回退到原始请求。
- 恢复会话后还能继续取回原文,避免前后行为不一致。
- 端到端可观测后,后续调优 token 节省和压缩质量会更稳。
lha 1.0.4
LHA 1.0.4 is a patch release focused on making long-horizon planning flows clearer, less disruptive, and easier to build on from downstream Rust applications.
Highlights
- Moves LHA update checks into an async TUI history notice, so startup no longer has to be interrupted by a blocking update prompt.
- Preserves planner metrics before proposed plans in the TUI, keeping token and runtime details visible when plan output is rendered.
- Fixes nested proposed-plan parsing so literal plan tags inside Markdown or structured content are preserved correctly instead of confusing the parser.
- Adds a new SDK guide for building agents with
lha-coreandlha-llm, including runtime setup, model configuration, tool handling, event loops, MCP integration notes, and troubleshooting.
Why It Matters
This release makes LHA smoother in day-to-day terminal use and more reliable for planning-heavy workflows.
Update availability now appears as normal conversation history instead of blocking the session, proposed-plan output keeps its surrounding execution context, and nested plan-shaped text is handled more safely. The new SDK documentation also gives downstream Rust users a clearer path for embedding LHA agent capabilities without pulling in the full CLI/TUI product surface.
lha 1.0.3
LHA 1.0.3 is a patch release focused on TUI rendering correctness and CLI exit stability, mainly fixing rare live display corruption and reducing shutdown delays caused by blocking runtime tasks.
Highlights
- Fixed rare live TUI text-order corruption by repainting dirty terminal rows, preventing stale cells from
reordering mixed CJK / ASCII text during streaming updates. - Improved reliability of rendered command and assistant output, especially for long lines, validation lists,
and terminal frames that previously diverged from the in-memory buffer. - Bounded runtime shutdown waiting for started blocking tasks, reducing cases where the CLI appears restored but
the process takes longer than expected to return to the shell prompt. - Improved cleanup for interactive PTY processes by releasing PTY handles during termination before aborting
helper tasks.
Why It Matters
1.0.3 mainly polishes the interactive runtime experience: long-running tasks depend on the TUI showing streamed text in the correct order, and frequent CLI sessions need to exit promptly when work is done. This release reduces friction from “the screen looks wrong” and “the UI is gone but the shell prompt is still delayed,” making repeated verification and long-horizon task work feel more stable.
lha 1.0.2
LHA 1.0.2 is a patch release focused on long-horizon task stability, mainly fixing edge cases in planning, recovery, compaction, and TUI streaming display.
Highlights
- Fixed an issue where planner streaming text could be lost in rollout history / resume, making the explanations before and after plans more complete when resuming long-running tasks.
- Improved proposed plan parsing: <proposed_plan> tags inside Markdown code blocks no longer incorrectly trigger plan boundaries.
- Allowed longer proposed plans, reducing cases where complex task decomposition is interrupted by length limits.
- Fixed an issue where active goal reminders were treated as user turns, making goal context cleaner after compact / resume.
- Improved interaction stability for blocking prompts, streaming responses, commit animations, and answer echo in the TUI.
- Fixed diff line wrapping by display width, improving readability for CJK text, long lines, and mixed text in change views.
- Relaxed false-positive validation of localized zero-argument descriptions for dynamic tools, and clarified the polling semantics of write_stdin(chars="").
- Optimized prompt text for empty web search results and empty HTTP error bodies, making failure causes easier to diagnose.
Why It Matters
1.0.2 mainly polishes the long-task execution pipeline: plans need to be parsed reliably, goal context needs to be compacted and resumed correctly, and the TUI needs to remain clear across blocking prompts, streaming output, and complex diffs. For tasks that require multi-turn progress, frequent verification, and review, this version reduces friction caused by “invisible state, incorrect recovery, and unclear prompts.”
lha 1.0.1
LHA 1.0.1 is a small fix release focused on improving TUI stability in mixed Chinese/English text scenarios.
Highlights
- Fixed character ordering issues in TUI terminal rendering when CJK and ASCII text are mixed.
- Improved the display reliability of mixed text in transcripts, such as Chinese task descriptions, crates.io package names, and Git dependency notes.
- Released a patch version of the lha CLI, while keeping lha-core and lha-llm at 1.0.0 to reduce the impact scope of the patch release.
Why It Matters
Long-horizon tasks often mix Chinese descriptions, English package names, file paths, commands, and error messages. 1.0.1 primarily fixes issues where these long-task records are incorrectly reordered in the TUI, making plans, execution logs, and verification results more trustworthy and easier to review.
lha 1.0.0
LHA 1.0.0 is the first stable release for Long-Horizon Tasks. This version focuses not on single-turn Q&A, but on enabling agents to continuously plan, execute, recover, and verify around a long-term goal.
Highlights
- Added the /goal mechanism, using goals to carry multi-turn tasks while tracking execution progress, elapsed time, and context usage.
- Replaced the early YOLO plan completion with goal-backed plan implementation, giving plan execution clear goal context and completion boundaries.
- Supported generation, display, reordering, and recovery of proposed plans, making it more stable to view and continue plans in the TUI.
- Introduced the local memories pipeline, allowing long-term tasks to preserve project preferences, historical decisions, and key context across sessions.
- Improved the compaction and resume experience, reducing information loss during context compression, identity recovery, and goal-state restoration in long-running tasks.
- Supported auxiliary roles such as delegated agent / explorer / reviewer, making it easier to split complex tasks into subtasks for parallel exploration or review.
- Enhanced the TUI experience for long-running tasks, including sidebar status, token/context usage display, plan block rendering, scrolling, session titles, and other details.
- Completed crates.io release boundary cleanup, with the lha CLI published as the public installation entry point for Long-Horizon Agent.
Why It Matters
The core goal of this version is to enable LHA to complete engineering tasks that “run for a long time, involve a lot of context, and require repeated verification”: first form a plan, then advance according to the goal; during the process, it can compact context, resume sessions, read local memories, invoke sub-agents, and keep task state visible in the TUI.