Releases
v0.4.0
Compare
Sorry, something went wrong.
No results found
Changelog
✨ Features
1e201bd : feat(cli): litellm endpoint integration and management (#70 ) (@ngoyal16 )
c512b5b : feat(core): dynamic runtime model switching (/model ) (#69 ) (@ngoyal16 )
d1edb3b : feat(core): general-purpose agent access modes (#42 ) (@ngoyal16 )
6fa3a31 : feat(lhctl): add voice dictation, spoken responses, and workspace directory commands (@ngoyal16 )
1bc7940 : feat(lhctl): improve copy, multiline paste, and console history retention in TUI (@ngoyal16 )
267d928 : feat(lhctl): transition TUI to AGY-style inline terminal with native scrollback (@ngoyal16 )
85f91bf : feat: add universal desktop automation, browser enhancements, and redesigned tui (@ngoyal16 )
57a3e6d : feat: add version command and flags to lhctl (@ngoyal16 )
9025522 : feat: integrate code-reviewer-ai-agent as agents/code-reviewer submodule (@ngoyal16 )
🐛 Bug Fixes
678d22c : fix(conversation): eliminate lock inversion deadlock in Flush and step writer (#51 ) (@ngoyal16 )
53f03e0 : fix(engine): clone tool registry per engine to prevent subagent step emitter race condition (@ngoyal16 )
fafe6df : fix(engine): deduplicate turn token usage across tool executions (#46 ) (@ngoyal16 )
04644fc : fix(engine): pass isolated subagent environment variables without mutating global state (#53 ) (@ngoyal16 )
c44888f : fix(engine): thread-safe lazy initialization for desktop driver (#52 ) (@ngoyal16 )
6ef3d73 : fix(lhctl): remove extra blank lines between consecutive tool calls and items (@ngoyal16 )
bc688a2 : fix(llm): sort streaming tool call indices to preserve execution order (#48 ) (@ngoyal16 )
7671520 : fix(server): isolate turn cancellation to current turn context (#43 ) (@ngoyal16 )
d3abf81 : fix(server): prevent cleanup hang on client disconnect during questions and permissions (#44 ) (@ngoyal16 )
a246f46 : fix(tools): apply multi-chunk edits bottom-to-top with line delta adjustments (#45 ) (@ngoyal16 )
2c888bf : fix(tools): fix file descriptor leaks and stream ripgrep output (#37 ) (@ngoyal16 )
033d4ab : fix(tools): handle context cancellation during task wait and default cwd to workspace (#47 ) (@ngoyal16 )
8cdf5d1 : fix(tools): parse Windows paths with drive letters in ripgrep search (#49 ) (@ngoyal16 )
74b4aec : fix(tools): protect read_url_content against SSRF, private IPs, and cloud metadata (#54 ) (@ngoyal16 )
44acbee : fix(tools): recover persistent terminal on command timeout or cancellation (#50 ) (@ngoyal16 )
8a40156 : fix(tools): use NUL byte detection and extension matching for view_file (#55 ) (@ngoyal16 )
faee345 : fix: route /btw side questions through LiteLLM config instead of direct Gemini/OpenAI keys (@ngoyal16 )
⚡ Performance Improvements
1bc58f3 : perf(codegraph): batch sqlite transactions and mtime incremental cache (#56 ) (@ngoyal16 )
3c6760f : perf(codegraph): eliminate full BM25 FTS re-indexing on every query and linear call hierarchy scans (#33 ) (@ngoyal16 )
edd3cea : perf(codegraph): parallel AST parsing with bounded worker pool (#61 ) (@ngoyal16 )
ac172aa : perf(codegraph): zero-allocation camelCase tokenizer and direct term weighting in FTS index (#62 ) (@ngoyal16 )
a21c7ef : perf(conversation): asynchronous buffered transcript logging (#58 ) (@ngoyal16 )
ef451bd : perf(diff): replace O(M*N) 2D dynamic programming in UnifiedDiff with linear Myers and patience diff (#32 ) (@ngoyal16 )
d5f0963 : perf(engine): implement concurrent parallel execution for read-only tools (#35 ) (@ngoyal16 )
c455ab8 : perf(engine): zero-allocation line counting and slicing in context reduction (#67 ) (@ngoyal16 )
1ab41ec : perf(engine): zero-allocation tool call argument token estimation (#68 ) (@ngoyal16 )
5a7770d : perf(server): outbound websocket write pump and buffer pooling (#59 ) (@ngoyal16 )
7730afc : perf(session): asynchronously persist step content via write-behind worker (#40 ) (@ngoyal16 )
b9ea1ff : perf(streaming): batch and debounce streaming chunk updates (#39 ) (@ngoyal16 )
2ddf4ef : perf(subagent): support model tiering resolution and compress subagent handoff prompt injection (#41 ) (@ngoyal16 )
3e90432 : perf(task_manager): replace busy-wait marker polling with event-driven notifications (#38 ) (@ngoyal16 )
d9e3ff2 : perf(tools): concurrent and non-allocating directory child counting (#63 ) (@ngoyal16 )
287120e : perf(tools): early-exit streaming and fd integration in find_file (#65 ) (@ngoyal16 )
4ac68a2 : perf(tools): eliminate recursive walk in list_dir, optimize view_file streaming and replace_file_content byte scanning (#36 ) (@ngoyal16 )
8e27cb1 : perf(tools): zero-allocation ASCII fold scanning and reflection-free line parsing (#66 ) (@ngoyal16 )
a265d4d : perf(tools): zero-allocation byte scanning and early walk termination (#60 ) (@ngoyal16 )
a2950c6 : perf(util): hunk-scoped unified diff with context collapsing (#57 ) (@ngoyal16 )
c736e01 : perf(workspace): cache canonical roots to eliminate redundant EvalSymlinks syscalls (#64 ) (@ngoyal16 )
♻️ Refactoring
b8a226d : refactor(codegraph): migrate monolithic codegraph JSON snapshot to embedded indexed SQLite database (#34 ) (@ngoyal16 )
93263de : refactor(workspace): remove dynamic workspace removal and enforce additive workspace lifecycle (@ngoyal16 )
d34f593 : refactor: move desktop GUI to standalone localharness-gui directory (@ngoyal16 )
789e0c4 : refactor: remove redundant adk-code-review example (@ngoyal16 )
📚 Documentation
🔧 Tooling & CI
dc54955 : chore(main): release 0.4.0 (#30 ) (@github-actions[bot])
Other Changes
7c9dabc : fix(cli,tui,engine): fix startup log spam, version banner, prompt caching, tui resumption, and inspect content (#71 ) (@ngoyal16 )
You can’t perform that action at this time.