Skip to content

Add Gemini, Qwen, and OpenRouter sessions - #55

Merged
glenn-jocher merged 10 commits into
mainfrom
feat/gemini-qwen-harness
Aug 9, 2026
Merged

glenn-jocher merged 10 commits into
mainfrom
feat/gemini-qwen-harness

Conversation

@glenn-jocher

@glenn-jocher glenn-jocher commented Aug 9, 2026 •

Copy link
Copy Markdown
Member

Summary

  • release Lite 0.0.14 with Gemini CLI and Qwen Code as resumable harnesses using their native sign-in flows and Portal-owned Google/Alibaba icons
  • add OpenRouter as a Codex Responses provider and consolidate DeepSeek/OpenRouter behind one shared provider path
  • install missing agent harnesses from the New Session dialog, then refresh every choice sharing that harness
  • use one shared eight-second deferred action for restart and close/delete: terminals remain running until expiry, while Undo cancels the action without teardown
  • use the current OpenRouter glyph in purple for light mode and lime for dark mode

Provider behavior

  • Gemini accepts Lite-owned GEMINI_API_KEY or its native Google sign-in
  • Qwen Code owns its regional provider and authentication setup; Lite detects native OAuth without reading or rewriting provider configuration
  • OpenRouter uses the Codex Responses wire API with OPENROUTER_API_KEY and ~openai/gpt-latest
  • DeepSeek retains its existing profile/config/catalog behavior through the same generic Codex-provider owner
  • persisted Gemini and Qwen tabs start fresh when their native conversation history no longer exists

Validation

  • bun run check
  • bun run build
  • cargo fmt --check --manifest-path src-tauri/Cargo.toml
  • cargo check --manifest-path src-tauri/Cargo.toml
  • git diff --check

🛠️ PR Summary

Made with ❤️ by Ultralytics Actions

🌟 Summary

Lite 0.0.14 adds Gemini CLI, Qwen Code, and OpenRouter support while centralizing provider setup, CLI installation, and deferred session actions.

📊 Key Changes

  • Added Gemini CLI and Qwen Code sessions with native sign-in detection, session resume checks, provider-specific icons, and API-key support for Gemini.
  • Added OpenRouter as a Codex Responses provider using OPENROUTER_API_KEY and ~openai/gpt-latest, with DeepSeek and OpenRouter sharing generic Codex-provider handling.
  • Updated the New Session dialog to install missing Claude, Codex, Gemini, Kimi, and Qwen CLIs, then refresh availability for all choices using the installed harness.
  • Consolidated restart and close into one eight-second deferred action: terminals continue running until the timeout, while Undo cancels the action before teardown.
  • Updated provider labels, usage messaging, documentation, branding, and the application version from 0.0.13 to 0.0.14.

🎯 Purpose & Impact

  • Users can create sessions with Gemini CLI, Qwen Code, and OpenRouter directly from Lite, including installation of missing supported CLIs from the New Session dialog.
  • Persisted Gemini and Qwen tabs start new conversations when their corresponding native history is unavailable.
  • Closing or restarting a session no longer stops its terminal immediately; the action remains reversible during the eight-second Undo window.
📋 Skipped 1 file (lock files, generated, images, etc.)
  • src-tauri/Cargo.lock

@UltralyticsAssistant

Copy link
Copy Markdown
Member

👋 Hello @glenn-jocher, thank you for submitting a ultralytics/lite 🚀 PR! This automated message confirms your contribution was received, and an Ultralytics engineer will assist with the review. To ensure a seamless integration of your work, please review the following checklist:

  • ✅ Define a Purpose: Clearly explain the purpose of your fix or feature in your PR description, and link to any relevant issues. Ensure your commit messages are clear, concise, and adhere to the project's conventions.
  • ✅ Synchronize with Source: Confirm your PR is synchronized with the ultralytics/lite main branch. If it's behind, update it by clicking the 'Update branch' button or by running git pull and git merge main locally.
  • ✅ Ensure CI Checks Pass: Verify all Ultralytics Continuous Integration (CI) checks are passing. If any checks fail, please address the issues.
  • ✅ Update Documentation: Update the relevant documentation for any new or modified features.
  • ✅ Add Tests: If applicable, include or update tests to cover your changes, and confirm that all tests are passing.
  • ✅ Sign the CLA: Please ensure you have signed our Contributor License Agreement if this is your first Ultralytics PR by writing "I have read the CLA Document and I sign the CLA" in a new message.
  • ✅ Minimize Changes: Limit your changes to the minimum necessary for your bug fix or feature addition. "It is not daily increase but daily decrease, hack away the unessential. The closer to the source, the less wastage there is." — Bruce Lee

For more guidance, please refer to our Contributing Guide. Don't hesitate to leave a comment if you have any questions. Thank you for contributing to Ultralytics! 🚀

@UltralyticsAssistant UltralyticsAssistant added documentation Improvements or additions to documentation enhancement New feature or request labels Aug 9, 2026

@UltralyticsAssistant UltralyticsAssistant left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔍 PR Review

Made with ❤️ by Ultralytics Actions

Reviewed all 9 changed files, including the Rust launch/auth paths, provider registry, session dialog, settings status, labels, process detection, and documentation. The provider metadata refactor is coherent, but the Gemini launch path is currently unusable, Lite-owned Qwen keys are not passed under Qwen's OpenAI auth mode, and Qwen auth status can be falsely reported as configured. Remaining risk is concentrated in native CLI compatibility and provider-auth state detection.

💬 Posted 3 inline comments
  • ⚠️ HIGH src-tauri/src/lib.rs:1996 Gemini CLI's current command-line reference supports --resume but does not define --session-id; new Gemini sessions therefore launch with an unsupported option and fail before opening the harness. Removing this flag alone would also leave Lite's UUID unrelated to Gemini's native session ID, so resumability would still be broken. Use a supported new-session path and capture/pass Gemini's native session ID for later --resume.
  • ⚠️ HIGH src-tauri/src/lib.rs:2018 When Lite owns a Qwen key, this selects Qwen's openai auth mode, but the later environment injection still sets only DASHSCOPE_API_KEY. Qwen's OpenAI-compatible mode resolves OPENAI_API_KEY by default unless an envKey model-provider entry exists, and this launch path creates no such entry; the saved Lite key is therefore not supplied to Qwen. Pass the key through OPENAI_API_KEY for this branch or use Qwen's --openai-api-key argument. ([qwenlm.github.io](https://qwenlm.github.io/qwen…
  • 📝 LOW src-tauri/src/lib.rs:1708 The existence of ~/.qwen/settings.json is not evidence that Qwen is authenticated: it is the general user settings file and may contain only preferences. This causes Settings to hide the Sign in action and displays Qwen as configured for users who have no auth provider or credentials configured. Check an auth configuration marker such as the selected auth/provider settings rather than file presence alone. ([qwenlm.github.io](https://qwenlm.github.io/qwen-code-docs/en/users/configuration/setti…

Comment thread src-tauri/src/lib.rs
Comment thread src-tauri/src/lib.rs Outdated
Comment thread src-tauri/src/lib.rs Outdated
@glenn-jocher
glenn-jocher merged commit fcd88ea into main Aug 9, 2026
5 checks passed
@glenn-jocher
glenn-jocher deleted the feat/gemini-qwen-harness branch August 9, 2026 16:52
@UltralyticsAssistant

Copy link
Copy Markdown
Member

🎉 PR #55 has been merged—thank you, @glenn-jocher, for this excellent contribution to Lite!

“Alone we can do so little; together we can do so much.” — Helen Keller

Lite 0.0.14 now supports Gemini CLI, Qwen Code, and OpenRouter, while streamlining CLI setup and making session close and restart actions reversible during the eight-second Undo window. Great work!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants