Skip to content

Add a QML desktop app with an owned Ava backend - #6

Merged
SmartAI merged 2 commits into
mainfrom
investigate/native-desktop
Sep 9, 2026
Merged

Add a QML desktop app with an owned Ava backend#6
SmartAI merged 2 commits into
mainfrom
investigate/native-desktop

Conversation

@SmartAI

@SmartAI SmartAI commented Sep 9, 2026

Copy link
Copy Markdown
Owner

Ava can now run in a Qt Quick desktop window through the optional ava-desktop entrypoint.
The QML/PySide6 UI supports project folders, conversations, streamed replies, queued input, pause/resume, cancellation, and history restoration using the existing Ava HTTP/SSE API.

The app owns a separate loopback backend with per-launch authentication, explicit readiness, bounded shutdown, and parent-exit detection.
The transcript uses an incremental Qt list model and durable event sequence numbers to avoid duplicate replay after reconnecting.
Conversation drafts stay separate, and failed sends retain the draft.
Qt remains an optional dependency; CI exercises the desktop scenarios and rejects QML warnings.

Run with uv run --extra desktop ava-desktop --project ..

GitHub CI passed for 947947a on Ubuntu, including the desktop tests and QML lint.

Local validation on Linux with Python 3.12 and Qt 6.11.2:

  • Python suite: 159 passed, including four desktop acceptance/replay scenarios with a gated local model server and real backend process.
  • Frontend: 10 tests passed and npm run check passed.
  • Ruff, mypy, and qmllint --max-warnings 0 passed.
  • Qt mouse, keyboard, and input-method events exercised the rendered window; Chinese preedit Enter handling was checked.
  • Built wheel and source archive; installed the wheel into a separate environment and launched outside the checkout.
  • Verified duplicate-instance rejection and backend exit/port closure after forcibly terminating the GUI.
  • Confirmed local research files are excluded from the source archive.

This is the first desktop slice: selectable plain text and expandable tool output.
Markdown formatting, attachments, diff, browser integration, and desktop installers are not included.
GUI tests use offscreen rendering; real OS input-method integration, macOS behavior, and signed packaging remain unverified.

@SmartAI
SmartAI merged commit 64b47d6 into main Sep 9, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant