Repository navigation
Releases: laughingmandev/loa
Release list
v0.6.5-beta | Hotfix Dynamic Local Embedder Context Initialization
Release Notes: Dynamic Local Embedder Context Initialization
- Dynamic Metadata Resolution: Removed the hardcoded 8192 context size requirement when initializing the local embedding engine. The engine now explicitly uses
llama.WithContext(0)to automatically parse the target model's nativen_ctx_trainlimit directly from the GGUF metadata header and initialize the tensor graphs accordingly. - Crash Resolution: Resolves a critical issue where the CPU math backend would trigger a fatal out-of-bounds assertion (SIGSEGV) when attempting to artificially expand and allocate massive contexts on smaller, fixed-size embedding models (e.g., native 512-context models).
- Clean Architecture: Implemented this fix cleanly through native
llama-goconfiguration defaults, ensuring no dead code or unnecessary utility files were introduced to the codebase.
v0.6.4-beta | Hotfix : Model test timeout
- Inference Configuration: Increased the hardcoded context timeout for the "Test Configuration" endpoints (
/api/test-llm) from 10 seconds to 120 seconds. - Cold-Boot Stability: This resolves an issue where inference backends (such as Ollama) were forced to prematurely abort loading heavy model weights into VRAM due to the HTTP request timing out before the load operation could complete.
v0.6.3-beta | UI Adjustments & Documentation
- UI Architecture: Upgraded modal dialogs (such as the Execution Log) to utilize a flex-column layout with a strict 90vh viewport boundary. Modal headers (including close buttons) and footers are now locked in place, while inner content areas conditionally scroll. This prevents excessively long dialogs from overflowing the screen and hiding critical controls.
- Documentation: Implemented comprehensive updates and revisions across the documentation to ensure parity with the latest architectural features.
v0.6.2-beta | Native CPU Embedding model support
Release Notes: Local CPU Embeddings & Sandbox Optimization Update
This update introduces local CPU embeddings, optimizes sandbox boot times for Linux hosts, and stabilizes memory extraction pipelines.
Architectural Changes: Local CPU Embeddings
- Integrated
llama-goC++ bindings to support lightning-fast, offline CPU inference for semantic search using GGUF models. - Portable Configuration Paths: Settings (such as
LocalEmbeddingModelPath) are now stored using a~/prefix substitution engine. This guarantees that a sharedconfig.jsonremains perfectly portable across different users, machines, and the internal Docker sandbox without "path poisoning." - Updated the Setup Script to natively prompt for and download compatible GGUF embedding models.
Sandbox & Host Parity
- Auto-Detect Binary Optimization: The
loa-sandboxboot sequence now dynamically inspects the host'sloaexecutable usingfileand ELF validation. If the host binary is compatible with the Debian container (e.g., Linux users), the sandbox imports the binary and skips compilation entirely for an instant boot. - Cross-OS Compatibility: For macOS and Windows users, the sandbox gracefully falls back to syncing source code and compiling the Linux binary inside the container, guaranteeing a working environment regardless of the host OS.
- Volume Mount Integrity: Fixed volume mounts to properly map the host's
.loadirectory directly to the container user's logical home, ensuringconfig.jsonportability. The host's global configuration is explicitly mounted Read-Only to prevent the sandbox from destructively overriding host settings.
Bug Fixes & Stability
- Memory Extraction: Fixed a structural bug in the memory extraction pipeline where parsing logic from message history arrays was failing or extracting incomplete contexts.
- UI Label Rendering: Repaired a CSS/JS rendering bug in the settings modal where configuration labels and dropdowns (specifically the Local Model Path) were displaying squished or hidden under certain viewport constraints.
Default Configuration Adjustments
To better align with modern 32B+ parameter models and deep architectural reasoning capabilities, default parameters have been upgraded:
- Max Plan Depth increased from
5to25. - Total Context Budget increased from
16,000to100,000.
Fix Github Workflow
- Fix github release build workflow
v0.5.0-beta
Release Notes: Loa Agent Engine & Stability Update
This release brings a major structural redesign to the agent's task execution engine, vastly improving both dynamic execution speeds and systemic stability against massive context loads.
Architectural Redesign: Execution Modes
We have completely overhauled how Loa interprets task complexity and handles execution loops. The previous "Discussion" phase has been removed to streamline the UI and backend logic.
Complexity Modes (Fast vs Planned)
- Fast Mode (Default): Designed for dynamic, rapid-fire tasks. Loa skips the formal DAG generation and acceptance criteria checks. It immediately begins execution and automatically consolidates its context into session memory as soon as the task completes, providing a seamless chat-like continuity.
- Planned Mode: Retains the rigorous DAG planning, step-by-step evaluation, and formal acceptance checks for complex multi-step refactors.
Evaluation Modes (Strict vs Dynamic)
- Moved from the Chat Bar into the Settings > Context Synthesis modal.
- Controls the strictness of the LLM background evaluation during tasks. Dynamic allows the agent to bypass repetitive user approval on blind execution streaks, whereas Strict forces evaluation at every step.
Context Safety: Massive Output Spillover
We have resolved a critical flaw where massive outputs from shell commands or process executions (e.g., recursive grep or build logs) would freeze the UI and crash the LLM context window with 400 Bad Request errors.
- Introduced a new configuration: Max Prompt Tool Output Bytes (Default:
30,000). - Artifact Spillover: Tool outputs exceeding this limit are centrally intercepted. The LLM context and the UI Execution Logs receive a safe, truncated snippet. The full unabridged output is safely dumped into
.loa/artifacts/spill_[uuid].logand automatically injected into the agent's active memory. - The agent is informed of the truncation and can dynamically use
artifact_readto analyze the spilled log in chunks.
Crawler & Watcher Stabilization
Fixed a severe cache-invalidation loop affecting new projects.
- The Bug:
fsnotify.Createevents for dynamic directories (like.loawhen first created) were bypassing the.loaignorefilters, causing the Watcher to track internal Loa memory writes and trigger endless indexing loops. - The Fix: The event listener now strictly applies
.loaignoreand hidden-path exclusions to all rawfsnotifyevents before enqueuing them or adding new directories to the watcher array.
UI / UX Improvements
- Top-Layer Toasts: Fixed a z-index bug where notification toasts were hidden beneath active dialog modals. Toasts have been migrated to the HTML5 Popover API (
popover="manual"), ensuring they reliably render in the absolute Top Layer above all other UI elements. - Cleaned up the composer chat bar, removing redundant toggles and setting Fast Mode as the default complexity strategy out-of-the-box.
v0.4.0-beta | Crawler Fixes, File upload capabilities
Session-Scoped File Uploads & Attachments
- Uploads Manager: Added a dedicated
UPLOADSsub-tab to theSESSIONinspect pane for managing external file state. Uploads are strictly session-scoped and managed within theAgentState. - REST Endpoints: Implemented
/api/upload,/api/upload/delete,/api/upload/readonly, and/api/upload/{id}/downloadfor full frontend lifecycle control. - Ephemeral Sandboxing: Attached files are physically cloned into a temporary
.loa/attachments/<session_id>/sandbox directory. The agent interacts with these clones natively within its mounted/workspace. - Contextual Attachment UI: Added a docked overlay beneath the
CHATtitle bar to manage active session attachments, collapsing to a minimal count indicator when not expanded.
Bi-Directional Sandbox Sync (fsnotify Watcher)
Implemented a background fsnotify watcher on the ephemeral sandbox to manage data resilience without exposing the host environment:
- Auto-Heal (READ_ONLY): If a file is flagged as
READ_ONLYin the Uploads tab, the watcher instantly overwrites any unauthorized agent modifications in the sandbox using the pristine master copy in.loa/uploads/. - Auto-Sync (Writable): For writable files, the watcher instantly syncs agent-driven sandbox modifications back to the master
.loa/uploads/file, ensuring state persistence across detachments. - Dangling State Cleanup: Deleting an upload via
/api/upload/deletenow triggers an automatic cascade detachment and removal of associated ephemeral clones in the.loa/attachments/directory.
Crawler Stability Enhancements
- Atomic Write Ignore: Updated the project crawler's ignore patterns to explicitly skip
.loa-write-temporary files. This prevents race conditions and dirty indexing during heavy filesystem atomic writes.
v0.3.0-beta | Fix: Resolved Crawler "Context Deadline Exceeded" Cascading Failures
- Removed the global 10-minute timeout constraint applied to the
BootScanexecution during both CLI initialization (cmd/loa/main.go) and server startup (internal/server/server.go). - Replaced
context.WithTimeoutwithcontext.WithCancel, allowing the crawler to process large codebases indefinitely without aborting the parent context. - Individual LLM inference requests continue to respect a strict per-request timeout via the internal
http.Client, ensuring stalled connections are handled gracefully without prematurely terminating the entire indexing loop.
v0.2.1-beta | Fix Backend Disconnect for .loaignore Exclusions
Resolved an issue where .loaignore configurations saved via the UI were not being respected by the backend indexing services. Previously, both the fsnotify Watcher and the ctags indexer relied exclusively on a hardcoded list of exclusions, causing the crawler to inappropriately index custom build or coverage directories (e.g., codecoverage/).
A new .loaignore parsing utility has been implemented and wired into the core background processes:
- Indexer: The
.loaignorerules are now dynamically parsed and injected as--excludearguments into thectagsinvocation, preventing unneeded AST extraction. - Watcher: The filesystem watcher now checks modified files against the
.loaignorerules during JIT (Just-In-Time) reconciliation. If bulk file changes occur in ignored directories (e.g., build artifacts), the reconciliation process will instantly abort rather than needlessly waking the crawler.
Loa 0.2.0-beta: The Configuration & Clarity Update
Key Additions & Improvements:
- Live Configuration Testing: Added a dedicated
/api/test-llmbackend endpoint and new UI buttons in the setup wizards. Users can now instantly test their API URL, API keys, and model availability with inline visual feedback before kicking off the agent. - Asynchronous Setup Wizards: We decoupled heavy LLM initialization tasks (like project concept extraction and codebase boot-scanning) from the HTTP request cycle. The setup modal now closes instantly, passing the heavy lifting gracefully to the top visual indicator without freezing the UI.
- UI Polish: Cleaned up grid layouts, button stylings, and input alignments across the global setup and settings modals for a more professional, unified aesthetic.
- Comprehensive Documentation Overhaul:
- Usage Guide: Fully revamped to accurately define the three core Intent workflows (
Discuss,Investigatory,Modifying), clarify.loaignorebehaviors, and document the powerful real-time "Steering" feature. - New Settings Reference Guide: Added a deep-dive manual (
settings_reference.md) explicitly breaking down how to tune Memory Physics, allocate Context Synthesis budgets based on VRAM, and utilize the granular Tool Permissions gateways.
- Usage Guide: Fully revamped to accurately define the three core Intent workflows (
- Bug Fixes: Resolved internal Go build errors related to the
llm.Newconstructor interface.
v0.1.1-beta: Setup Script Hotfix & Doc Polish
This is a quick hotfix release following our initial beta launch to resolve a critical installation bug.
Changelog:
- Setup Script Fix (
setup.sh): Resolved a bash piping bug where runningcurl ... | bashcaused interactive prompts to swallow the script buffer, leading to syntax errors (Syntaxfehler beim unerwarteten Symbol »fi«). The script is now safely wrapped in amain()execution block for bulletproof remote installation. - Documentation Polish: Refactored the README to better highlight Loa's practical benefits and clarified our recommended local LLM variants (Qwen3.8 27-32B).
- Quality of Life: Added a complete
uninstall.shscript to the repository for easy cleanup of global configs and binaries.
If you attempted to installv0.1.0-betaand the script crashed midway through, please run the setup command again!