[pull] main from agent0ai:main - #4
Open
pull[bot] wants to merge 1739 commits into
Open
Conversation
Repair saved _model_config user config and presets so Venice model slots use chat completions with the Venice system prompt disabled. Leave a0_venice slots untouched and add regression coverage for parsing and slot preservation.
Drop queued debounced snapshots when the workspace directory is gone before the timer flushes. This keeps transient delete/rename races from surfacing as Time Travel snapshot errors while preserving normal snapshot failures for existing workspaces.
Resolve tool-specific log objects for all parallel child jobs, removing the code_execution_tool-only special case and using native get_log_object() when available, with generic fallback. Update parallel_tools docs to reflect the shared logging contract and add coverage for wait/ fallback behavior in parallel-tool tests.
Pass each parent-visible child log into direct parallel worker execution so tool before_execution reuses it instead of creating a second generic tool log. This keeps native badge types such as wait/progress (HDL) intact through execution, updates the parallel helper DOX contract, and adds a regression test for log reuse.
Lead with a sharper Linux-computer positioning, desktop hero, and scannable feature table. Put the Launcher first, collapse alternate install paths, add basic troubleshooting, and move starter prompts above the deep dives. Trim the mid-README Space Agent detour to a footer note while keeping the safety and documentation sections.
Write serialized chats to a same-directory temporary file, fsync it, and atomically replace chat.json so interrupted saves preserve the previous chat data. Add regression coverage for interrupted replacement and document the persistence guarantee.
Give each preset editor row a stable UI-only key so Alpine does not reuse nested model state after a middle row is removed. Add a regression guard and document the row identity invariant in the model-config plugin contract.
Create local preset drafts and handle add, remove, and save actions through modelConfig.createPresetEditor so the HTML remains declarative. Document the project-wide Alpine expression boundary and keep the plugin contract specific to preset editor ownership.
Add a configurable circuit breaker for consecutive malformed or repeated model outputs. Expose the limit in Agent Settings and render the stop notice from a framework prompt.
Refresh an existing Codex CLI after successful or already-current self-updates without making npm failures fatal. Bootstrap the new behavior when startup synchronizes a stale runtime updater, and cover both paths with focused regressions.
Simplify provider cards and model-slot copy, align model pickers with the main model configuration UI, and infer a sole connected OAuth provider only when it does not silently replace a different saved provider.\n\nAdd focused static coverage for the updated picker and provider-default behavior.
List bundled slash commands in their own section and create same-name project or global overrides when users edit them. Remove the Commands sidebar shortcut and redundant scope banner, then simplify command cards by dropping badges and argument hints while tightening description typography. Add regression coverage for built-in listing and override precedence.
Trim the root AGENTS.md to project-wide contracts and the top-level child index. Move Docker runtime and GitHub release details into their owning child DOX files.
Register Gemini CLI with auth detection and a verified headless workflow. Expose its settings and status metadata, update the plugin contracts and tests, bump the plugin version, and replace the thumbnail.
Execute multiline terminal input as one current-shell compound so intermediate prompts cannot complete queued work early. Preserve shell state and cover Bash and PowerShell grouping with regression tests.
Separate Gemini CLI installation from probing so long installs remain observable. Use Agent Zero secret aliases for GEMINI_API_KEY instead of assuming saved secrets are exported from /a0/usr/.env, with contract coverage.
Register NVIDIA NIM for chat and embedding models through LiteLLM, including hosted model discovery.\n\nExpose NIM in onboarding with API key and documentation links, and cover the provider contract with a focused regression test.
Raise the default update and rollback health-check window from two to three minutes so slower Docker and virtiofs installations can finish booting. Preserve the existing environment override and document the runtime default.
Reset additional parameters together with the custom API base when a model provider changes, preventing stale provider-specific options from leaking into the new provider. Update the model-config contract and README, and extend the focused frontend regression check.
Add an Interface settings section with independent mobile and desktop toggles for the project selector, clock, connection status, and right canvas rail. Persist the visibility map in instance settings, apply it at the shared WebUI surfaces, preserve existing defaults, and cover the contract with focused regression tests and DOX updates.
Use OpenRouter's google/gemini-3.1-flash-lite model without the preview suffix for the global default, Balance preset, and onboarding defaults.
Target LibreOffice saves to the requested document window and report whether the file content changed. Fail fast on dead XFCE startup, probe the live X display, replace session manifests atomically, and decode XWD screenshots through Pillow's raw decoder. Add focused regressions for each path.
Capture each notification payload together with its GUID and update cursor under the notification manager lock. This prevents concurrent notify_user events from advancing the WebUI cursor without delivering the corresponding toast.\n\nAdd regression coverage for notification cursor continuity and update the helper contracts.
Make plugin frontend-reload and Agent Zero update notifications persistent until the user dismisses or acts on them. Reuse the existing zero-duration toast contract without changing ordinary notification timeouts.\n\nDocument the behavior and extend the persistent-toast regression coverage.
Present Open updater as the existing confirm-style button on its own toast row. Opening the Self Update modal now dismisses the persistent notification so users do not need to close it separately.\n\nKeep external update-instruction links unchanged and extend the persistent-toast regression coverage.
Persist the frontend-extension notification as read before reloading so it does not reappear after refresh. Align plugin and updater toast actions with the shared small spacing token.
feat: Add _vision_sidecar plugin
Read the pinned json_repair requirement from the root requirements file and install it into the active framework interpreter when the package is missing or stale. Invoke the plugin hook during startup migration so self-updated installations converge without rebuilding the image. Add focused coverage for version checks, install command construction, and startup dispatch.
Expose timeout and max-token controls only in the visible Vision sidecar advanced settings, defaulting to 300 seconds and 2000 tokens, and pass them through the model builder. Point prompt customization to Agent Editor and promote legacy kwargs into the dedicated preset fields.
Queue model-visible history produced by direct parallel workers and promote it only after the parent parallel result is recorded. This keeps native vision images available to Main while preserving provider-safe ordering, background collection, and the delegated sidecar path.
Expose an optional route-agnostic query on vision_load and pass it to delegated image analysis alongside the current user request. Keep native image history unchanged while preserving one-call multi-image batching, permissive Responses schemas, and generic parallel execution.
Rebuild branched chats from their trimmed local history by dropping inherited Responses continuation, response-ID ownership, and cached Context Window data. Preserve structured response output metadata so local replay remains faithful while source and branch provider lifecycles stay independent.
Keep native vision_load results concise by omitting the skipped-images section when no inputs were skipped. Preserve skipped-path and max-embed details whenever the configured limit drops images, with focused coverage for both output forms.
Improve code quality of context doctor. Add handling of Reasoning kvps. Bump json_repair version
fix: Context Doctor polish
Negotiate collection deltas and preserve sidebar row identity so high-rate log streams avoid resending and reconciling unchanged state. Bound streamed log fields, defer expensive response formatting until completion, update capped process groups only for new steps, and keep disconnect and terminal task state accurate. Add focused lifecycle, snapshot, sync, and WebUI regressions.
Prefer stable browser IDs in Browser Settings and translate an exact advertised legacy CDP endpoint before connector dispatch. Preserve unmatched custom endpoints exactly and fail closed, with focused WebUI and runtime regressions.
Render API keys, access tokens, client secrets, and similar non-password credentials as masked text inputs so browsers do not offer to save them as passwords. Preserve readable placeholders and reveal controls while leaving genuine password fields unchanged.
Cache the underlying SentenceTransformer by its effective constructor options so startup preload and first-chat initialization share one instance while wrappers keep their own runtime configuration. Pass the runtime embedding configuration through preload and cover reuse, concurrency, option changes, and failure handling.
Reject response snapshots without complete object boundaries before invoking the dirty JSON root scanner. This avoids repeated scans of incomplete streamed prefixes while preserving strict tool-call acceptance and Context Doctor repair behavior.
Coalesce expensive full-response parsing and publication behind a 128-character or 50-millisecond cadence while retaining per-chunk security hooks, strict tool validation, immediate canonical completion, and the final pre-Context-Doctor flush. Add deterministic coverage for fast fragments, slow streams, final snapshot ordering, and canonical-root early stopping.
Keep message action buttons mounted while streamed updates refresh their handlers, preserving hover, focus, and extension controls. Render the first user turn optimistically and serialize WebSocket state pushes so welcome-screen messages remain visible.
Render root responses with safe Markdown and LaTeX throughout live updates, removing the raw monospace-to-formatted swap at completion. Update the stream contract and focused regressions while preserving the existing realtime synchronization optimizations.
Point the root README's A0 Launcher downloads and release note link at the published v1.6 assets.
Forward incremental response function arguments through the canonical Agent Zero tool envelope so final Codex answers render progressively while preserving buffered execution for non-response tool calls. Cover partial DirtyJson rendering, completed envelope assembly, duplicate completion suppression, and the transport contract.
Promote native reasoning summaries after response streaming completes and keep the normalized thoughts through Context Doctor log refreshes. Add regression coverage for both lifecycle boundaries.
Route OpenAI, Azure, GitHub Copilot, and GitHub Copilot OAuth explicitly through Chat Completions. Keep Codex/ChatGPT and xAI Grok OAuth explicitly on Responses. Make Chat Completions the LiteLLM transport default for omitted, blank, default, auto, or unknown modes so new providers avoid unsupported Responses endpoints unless they explicitly opt in.
The private Browser Xvfb always started with the US XKB layout, so non-US keyboards could not type their printed characters in the interactive Browser window: German Mac users could not type "@" via Option+L, and umlauts, brackets, and AltGr/Option symbols landed on wrong keys or vanished. Add keyboard_layout / keyboard_variant Browser settings (validated as safe XKB tokens, empty keeps US behavior). Browser startup applies the layout to the private display with setxkbmap and pins it on the Xpra shadow server (--keyboard-sync=no, --keyboard-layout, --keyboard-variant) so connecting clients cannot override the server layout. Layout changes flow through browser_runtime_config and restart internal runtimes. The fallback canvas input path also stopped discarding Alt/AltGr combinations that produce printable characters, and the settings UI offers free-text layout/variant fields linking to the official xkeyboard-config list.
Only forward Alt-modified text from AltGraph or macOS Option input. Keep ordinary Windows and Linux Alt shortcuts from becoming literal characters, with focused regression coverage.
Make the interactive Browser honor configured keyboard layouts
fix(webui): allow hiding mobile canvas rail
…ets-modal fix(onboarding): close modal before opening model presets
Normalize the copy and raw controls to a shared height and preserve their alignment. Wrap the mobile action row from the left so every control remains visible.
…edding-model-prefix fix: keep gateway model ids intact for OpenAI-compatible embeddings
Run the Utility Model naming task from monologue_end so it cannot delay the Main Model's first token. Keep the existing background task, naming safeguards, and configuration behavior unchanged.
Update the context-window indicator when each new Agent 0 generation starts while deduplicating streamed updates. Keep the completion refresh for final provider usage and cover the event-driven behavior in the plugin contract and regression test.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )