Releases: divmora/localharness
Releases · divmora/localharness
Release list
v0.5.0
Changelog
✨ Features
- e3a1cf1: feat(adk): support Trusted and YoloMode in LocalAgentConfig and inject restricted workspace notice (@ngoyal16)
- 964d4ac: feat(engine): implement pre-flight context budgeting, token overflow protection, and dynamic compaction threshold (@ngoyal16)
- 520aacf: feat(session): lazy session initialization in lhctl and empty session cleanup (@ngoyal16)
- 4e312f7: feat(tasks): persist background task output logs to disk and surface log URIs (@ngoyal16)
- 40010e7: feat(workspace): support dynamic repository auto-promotion and context-approved path validation (@ngoyal16)
- 4942476: feat: add web remote control via cloudflare quick tunnels and session descriptions (@ngoyal16)
🐛 Bug Fixes
- ef02680: fix(engine): exempt non-workspace and scratch writes from planning mode guard (@ngoyal16)
- 878cd00: fix(engine): fix reduction split overlap on single-line tool outputs and add GLM context window (@ngoyal16)
- c900f43: fix(lhctl): default to interactive mode and add --plan flag for opt-in planning mode (@ngoyal16)
- 611f664: fix: prevent infinite permission retry loops, detached session stalls, and MCP process leaks (@ngoyal16)
- 961561e: fix: resolve subagent lifecycle, knowledge_read tool, scratch policy, and branch isolation (@ngoyal16)
🔧 Tooling & CI
- e9bc32c: chore(deps): bump github.com/modelcontextprotocol/go-sdk from 1.6.1 to 1.8.0 (#31) (@dependabot[bot])
- 7c4c944: chore(main): release 0.5.0 (#73) (@github-actions[bot])
Other Changes
v0.4.0
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
- 1851ca2: docs(roadmap): add performance and scalability section (#56-#60) (@ngoyal16)
- 8459012: docs(roadmap): track general-purpose access modes and audit reliability issues (@ngoyal16)
- c15b8e6: docs(roadmap): track issues #48-#55 across tools, engine, and conversation (@ngoyal16)
🔧 Tooling & CI
Other Changes
v0.3.0
Changelog
✨ Features
🐛 Bug Fixes
🔧 Tooling & CI
v0.2.1
v0.2.0
Changelog
✨ Features
- 78f066e: feat: introduce localharness universal multi-agent orchestration harness (Nitin Goyal nitingoyal.dev@gmail.com)