Commit graph

2075 commits

Author SHA1 Message Date
Alessandro
2d389af727 Defer Office desktop startup
Some checks failed
Build And Publish Docker Images / plan (push) Has been cancelled
Build And Publish Docker Images / build (push) Has been cancelled
Make the Office canvas mount passive so Xpra starts only when the Desktop surface is opened or an official Office document is created/opened.

Track Desktop host visibility to unload hidden frames, stop monitors, dedupe viewport resize work, and set Xpra offscreen mode according to HTTPS support. Add a near-future note for the tunnel memory footprint.

Show Office desktop startup progress

Display a loading message while the Agent Zero Desktop environment is starting or restarting, so the right-canvas Desktop button gives immediate feedback before Xpra finishes waking up.
2026-05-03 03:26:04 +02:00
Alessandro
48977bffc5
Merge pull request #1596 from ruizanthony/fix/code-execution-pty-fd-leak
fix(code_execution): close PTY file descriptors
2026-05-03 02:16:01 +02:00
Alessandro
d37500967f Restart browser runtime after stale context
Detect cached Playwright contexts that have already closed before reusing the browser runtime.

Clear stale browser pages, popup waiters, screencasts, and interaction state; stop the old Playwright instance; and restart cleanly on next use. Add regression coverage for stale context recovery and unexpected context close events.
2026-05-03 01:55:24 +02:00
Alessandro
3df27ccec3 Handle optional Xpra codec gaps on ARM64
Treat local Xpra GUI client packages as best-effort during Office runtime preparation so ARM64 codec dependency gaps do not surface as startup warnings when the browser-hosted Desktop is already usable.

Keep required Desktop Xpra packages strict, trim the ARM Docker fallback to the server/X11/html5 set, and add regression coverage for optional versus required xpra-codecs/libvpx9 failures.
2026-05-03 01:53:02 +02:00
Alessandro
29c829b389 Skip broken symlinks in usr update backups
Avoid aborting self-update backups when /usr contains dangling symlinks, such as host-created virtualenv links inside workdir. Broken file symlinks are logged and skipped so the backup can complete while preserving normal usr files.

Fixes #1598
2026-05-03 01:11:43 +02:00
Alessandro
677a0c1e64 Bridge desktop URLs into Browser
Register the Agent Zero Browser as the Desktop URL handler, queue URL intents from the Xfce environment, and route them into Browser on the opposite canvas/modal surface. Also make floating Browser and Desktop modals pass outside clicks through while preserving interaction inside the modal window.
2026-05-03 00:57:56 +02:00
Alessandro
6d9dedb821 Fix Office desktop runtime on arm64 2026-05-03 00:27:23 +02:00
Agent Zero Local
eecbb5ba34 fix(code_execution): handle closed PTYs while reading output 2026-05-02 21:33:08 +00:00
Agent Zero Local
d4eaa7c030 fix(code_execution): avoid double-close of PTY master fd
Use a shared mutable holder for the POSIX PTY master fd and invalidate it before close. This keeps EOF cleanup and TTYSession.close()/kill() idempotent and prevents closing an unrelated resource if the OS reuses the old fd number.
2026-05-02 21:32:12 +00:00
Agent Zero Local
a0f0c2e8d2 fix(code_execution): recover from closed PTY sessions
Detect closed or exited local TTY sessions before writing, convert invalid PTY write errors into retryable session failures, and reset/retry the terminal session once after send/read failures.
2026-05-02 21:32:12 +00:00
Agent Zero Local
2ce1947b0f fix(code_execution): close PTY file descriptors
Store and close POSIX PTY master descriptors when terminal sessions are closed or killed, and make local terminal session shutdown await the full TTY cleanup path. This prevents leaked /dev/ptmx descriptors from exhausting the process file descriptor limit.
2026-05-02 21:32:12 +00:00
Alessandro
f3d5e6b149 Avoid xpra codec dependency on arm64 fallback
Some checks are pending
Build And Publish Docker Images / plan (push) Waiting to run
Build And Publish Docker Images / build (push) Blocked by required conditions
2026-05-02 22:03:51 +02:00
Alessandro
1a4ef03853 Fix xpra repository fallback for arm64 Docker builds 2026-05-02 21:48:46 +02:00
Alessandro
2d11287f2e Revert "Raise Docker image nofile soft limit on startup"
This reverts commit 7bd70fa8b7.
2026-05-02 21:28:04 +02:00
Alessandro
d0f1951ae7
Merge pull request #1572 from joshua-mo-143/feat-add-venice-embedding-provider
Some checks are pending
Build And Publish Docker Images / plan (push) Waiting to run
Build And Publish Docker Images / build (push) Blocked by required conditions
feat: add Venice embedding provider
2026-05-02 21:08:10 +02:00
Alessandro
949c96930a docs: update OAuth README screenshot 2026-05-02 21:07:22 +02:00
Alessandro
2e00697513 Persist Browser and Desktop modal modes 2026-05-02 21:06:51 +02:00
Alessandro
dd696732c8 Fix canvas markdown rename before save
Route Office canvas renames through the document store so dirty or missing-on-disk Markdown sessions can be materialized at the new path without hitting the generic workdir filesystem rename endpoint. Add regression coverage for missing draft materialization, dirty markdown rename, and the custom rename hook contract.
2026-05-02 20:51:58 +02:00
Alessandro
5f2ef4f1da Hide Xfce browser and mail menu entries
Add local XDG overrides for the xfce4-mail-reader.desktop and xfce4-web-browser.desktop application IDs shipped by the current desktop runtime, while keeping the older exo-* IDs covered for compatibility. Update the desktop profile tests so future changes assert both generations of launcher IDs.
2026-05-02 20:48:14 +02:00
Alessandro
e5caed435b
Merge pull request #1560 from octo-patch/fix/issue-1548-per-project-plugin-config-ignored
fix: always check project-level plugin config as fallback (fixes #1548)
2026-05-02 20:39:43 +02:00
Alessandro
7bd70fa8b7 Raise Docker image nofile soft limit on startup
Configure the Docker image initializer to raise the container soft nofile limit to a safer default when Docker's hard limit allows it.

Document the new-image behavior and optional A0_NOFILE_LIMIT override without requiring users to add Docker ulimit flags.
2026-05-02 20:37:47 +02:00
Alessandro
d8c0d6b9fe Fix Time Travel snapshot resilience
Force-add curated snapshot paths so workspace .gitignore rules cannot break Time Travel snapshots, while preserving Time Travel's own exclusions for secrets and generated files.

Repair invalid shadow Git repositories by restoring HEAD when possible or quarantining and reinitializing unusable repos, and canonicalize workspace paths to avoid duplicate shadow histories for aliases.

Add regression coverage for ignored paths, corrupt shadow HEAD recovery, and canonical workspace identity.
2026-05-02 20:27:28 +02:00
Alessandro
d6d97d037c Fix skills selector unloading
Remove dynamically loaded skills when they are deactivated from the Skills selector. Treat skill names and paths as aliases so scoped defaults, chat overrides, and loaded-skill state resolve consistently.
2026-05-02 20:14:49 +02:00
Alessandro
0da8f3dc2b Add OAuth disconnect and remaining quota visibility
Allow users to disconnect their OpenAI account by clearing stored ChatGPT OAuth tokens while preserving unrelated auth data.

Fetch and normalize Codex usage windows, then show remaining percentage and reset timing in the OAuth settings UI.

Add focused tests for usage parsing and disconnect cleanup.
2026-05-02 20:14:04 +02:00
Alessandro
e63173d812 Polish Agent Zero Desktop defaults
Show hidden files by default in Thunar-backed Desktop sessions while preserving existing file manager profile settings.

Hide the default Xfce Mail Reader and Web Browser helper entries from the Applications menu through local XDG overrides, and cover the generated Desktop profile artifacts with targeted tests.
2026-05-02 20:04:37 +02:00
Alessandro
c553e91c03 Add Browser extension UI open action
Detect openable Chrome extension UI pages from manifests and expose resolved chrome-extension URLs to the Browser UI.

Render an Open button in the compact Browser extension dropdown and cover manifest UI metadata with regression tests.
2026-05-02 20:02:28 +02:00
Alessandro
92ae20da2c Add Desktop habitat README
Install a curated README into generated Agent Zero Desktop sessions so the Xfce workspace explains the habitat concept, credits the open-source foundations and Jan Tomášek, and gives users Terminal commands for popular agent CLIs.

Keep the README as an _office plugin asset and copy it into the Desktop profile during launcher preparation.
2026-05-02 19:51:07 +02:00
Alessandro
f17e13b859 Add file browser search and bulk actions
Adds a branded file-browser toolbar with current-folder search, visible selection, and selection status.

Introduces bulk copy paths, ZIP download, and delete actions backed by dedicated API handlers so selected files are processed as one browser operation.
2026-05-02 19:44:13 +02:00
Alessandro
27b3624a97 Add Office document rename action
Add a pencil action beside Save that reuses the existing file browser rename modal for open Office documents. Preserve document metadata after filesystem renames, retarget active LibreOffice desktop sessions to the new path, and cover the rename flow in Office regression tests.
2026-05-02 19:31:53 +02:00
Alessandro
ff1f26f6ac Add directory ZIP downloads to file browser
Expose a directory-only Download ZIP action in the file browser menu and make folder downloads use a stable .zip filename from the existing download endpoint.
2026-05-02 19:30:42 +02:00
Alessandro
e64b9b2538 Remove legacy Office canvas affordances
Route DOCX, spreadsheets, and presentations exclusively through the Xpra desktop LibreOffice session. Keep the custom canvas path focused on Markdown source editing, remove the old dashboard/preview/native LibreOfficeKit code, and update tests and runtime package declarations to match the new Office surface.
2026-05-02 19:24:49 +02:00
Alessandro
739c0a18a3 Improve Office desktop integration
Route binary Office documents through the persistent Desktop surface while keeping Markdown in the custom tabbed editor.

Harden Xpra clipboard bridging and explicit clipboard flags so host paste can reach the desktop session.

Align XFCE and LibreOffice profile paths with Agent Zero locations: downloads for wallpapers, configured workdir for default saves and the Workdir shortcut, and trusted metadata for generated launchers.
2026-05-02 18:39:32 +02:00
Alessandro
2f5f98521d Fix Desktop cursor and canvas resize handoff
Make the embedded Xpra Desktop use the browser cursor as the only visible cursor by suppressing the shadow pointer overlay and pointer-position renderer without blocking pointer input.

Prefer the active Office host iframe when choosing the Desktop frame, then force resize recovery during modal-to-canvas docking so the Xpra desktop, window, and canvas refill the canvas after handoff.
2026-05-02 18:05:39 +02:00
Alessandro
74dcb32814 Fix Desktop Xpra keyboard focus capture
Make the Desktop iframe explicitly focusable and re-arm Xpra keyboard capture on load and click so typed input reaches the remote session reliably.\n\nAdd regression assertions for the Xpra keyboard bridge contract.
2026-05-02 17:51:27 +02:00
Alessandro
704c0e9daf Polish sidebar task actions
Move Remote Link and Space Agent into the sidebar dropdown while removing their right-canvas rail actions.

Rename Scheduler-facing UI to Tasks and collapse Chat Actions behind a persisted dropdown accordion.
2026-05-02 17:34:24 +02:00
Alessandro
ad7925b543 Enable clipboard shortcuts in Browser visual mode
Bridge copy, cut, paste, and common edit shortcuts from the Browser modal and canvas screenshot surface into the Playwright runtime while preserving native clipboard behavior for Agent Zero UI fields.

Add websocket and runtime clipboard handling with regression coverage for frontend shortcut routing, paste fallback, and viewer input dispatch.
2026-05-02 17:21:44 +02:00
Alessandro
ae94f158df Make Time Travel modal-only
Add a Time Travel entry directly under Files in the sidebar dropdown and route it through the existing modal. Stop Time Travel from registering or mounting a right-canvas surface, and keep modal refresh tied to the modal state.
2026-05-02 17:20:05 +02:00
Alessandro
9fc3ff20a4 Add browser extension uninstall controls
Expose extension deletion from the Browser internal settings page and keep the compact Browser dropdown focused on quick enable/install actions.\n\nAdd a guarded uninstall API that only deletes Browser-managed extension folders, updates enabled extension paths, refreshes the settings UI, and covers managed versus external paths with regression tests.
2026-05-02 17:05:33 +02:00
Alessandro
39a96012f9 Make browser annotation tray draggable
Fix annotation panel stacking so draft popovers render above the annotations recap.\n\nAllow the annotations recap tray to float within the browser stage by dragging its header, with bounded positioning and cleanup when annotations are cleared or the browser surface unmounts.
2026-05-02 16:55:50 +02:00
Alessandro
c2fb2c3c94 Add browser screenshot previews to tool messages
Render Browser tool Screenshot KVPs as clickable live thumbnails that open the Browser canvas while preserving the existing lower-row Browser action.\n\nAdd a lightweight websocket snapshot endpoint for existing browser runtimes and keep preview frame memory bounded with revocable object URLs.
2026-05-02 16:48:38 +02:00
Alessandro
807aa8eea2
Merge pull request #1571 from TerminallyLazy/browser-multitab-modifiers
feat(browser): multi-tab awareness + modifier-key click
2026-05-02 15:58:17 +02:00
Alessandro
90ae70eb6e Merge ready into browser multi-tab PR 2026-05-02 15:56:16 +02:00
Alessandro
12b96ae41e Harden browser multi-tab focus handling 2026-05-02 15:49:05 +02:00
Alessandro
3466160e4c Harden Office canvas sync and PPTX output
Sync document_artifact results into an already-open Office canvas without auto-opening a closed canvas.

Generate PPTX artifacts through the Office plugin writer so PowerPoint decks open in Impress with visible multi-slide content.

Add focused regression coverage for canvas sync behavior and PPTX slide creation.
2026-05-02 15:28:43 +02:00
Alessandro
04926a3a65 Harden Office artifact workflows
Keep Office document artifacts from auto-opening the canvas while adding plugin-owned Download and Open in canvas message actions. Add format-specific skills for Markdown, Word, Excel, and presentation workflows, and clarify the startup-warmed Desktop runtime remains visually opt-in.\n\nCover the Excel method=create path, Markdown-first/no-auto-open policies, response affordance copy, document action buttons, and Desktop bootstrap with focused regressions.
2026-05-02 14:46:56 +02:00
Alessandro
aea1718f9f Revert "Show active models for Default LLM"
This reverts commit 7c59ac9e57.
2026-05-02 14:12:25 +02:00
Alessandro
baac20f7a4 Fix Office artifact creation and canvas closing
Add an explicit close button to the right canvas toolbar, next to the undock control, and cover its label, handler, and ordering in the canvas regression test.

Treat document_artifact tool_args.method as an action alias so calls like method=create with format=xlsx create workbooks instead of falling back to LibreOffice status. Add regression coverage for the exact XLSX creation shape.
2026-05-02 14:08:35 +02:00
Alessandro
ce7ec3cb4c fix(canvas): keep browser and office surfaces opt-in
Make Markdown the first-class document workflow in the office skills and state the Desktop/LibreOffice path as opt-in for GUI or binary Office work.

Remove passive Browser canvas auto-opening from tool results; Browser result handling now only syncs an already-open Browser canvas, while explicit user buttons can still open the canvas or modal. Add regression coverage for the no-auto-open policy and Markdown-first skill guidance.
2026-05-02 14:08:35 +02:00
Alessandro
1a32d3a295 fix(desktop): stabilize Xpra viewport resizing
Make Desktop canvas and modal handoffs resize the live Xpra viewport deterministically by syncing the visible frame, making backend resize requests authoritative, unloading hidden iframe clients, and guarding Xpra HTML menu callbacks when the menu is disabled. Also forwards wheel events from the embedded Xpra canvas so mouse and trackpad scrolling reach the Linux desktop session.
2026-05-02 14:08:35 +02:00
Alessandro
eb5220b058 fix(browser): read content inside shadow DOM
Teach the browser page-content helper to traverse open shadow roots and assigned slot nodes when collecting text, rendering list/inline children, and resolving selectors. This lets Agent Zero inspect modern component-heavy pages more accurately without depending only on light-DOM textContent.

Bump the injected helper version so existing browser contexts can refresh to the new DOM traversal behavior.
2026-05-02 13:07:10 +02:00