Skip to content

Add Azure OpenAI computer-use-preview Support - #5

Open
rizardo-maker wants to merge 2 commits into
777genius:mainfrom
rizardo-maker:main
Open

Add Azure OpenAI computer-use-preview Support#5
rizardo-maker wants to merge 2 commits into
777genius:mainfrom
rizardo-maker:main

Conversation

@rizardo-maker

@rizardo-maker rizardo-maker commented Jul 17, 2026

Copy link
Copy Markdown

I added Azure OpenAI support for the computer-use flow, including a new azure_openai provider path that uses the Azure OpenAI SDK with the computer-use-preview deployment. The backend now accepts Azure endpoint, API key, deployment, and API version settings, and the Flutter UI was updated so users can select Azure OpenAI from Settings and First Run setup. I also updated the README and .env.example, and added a focused test for the Azure client wiring.
I also cleaned up repo hygiene by ignoring local .venv, .DS_Store, and *.egg-info files so they don’t get committed.

Summary by CodeRabbit

  • New Features

    • Added Azure OpenAI as a supported provider.
    • Added Azure OpenAI setup fields for API key, endpoint, deployment, and API version.
    • Added secure storage and validation for Azure OpenAI credentials.
    • Added Azure OpenAI support to chat sessions and computer-use functionality.
    • Added default deployment and API version values for simpler configuration.
  • Documentation

    • Updated setup instructions and provider documentation with Azure OpenAI configuration details.
  • Bug Fixes

    • Improved provider detection and readiness checks for Azure OpenAI settings.

@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The change adds Azure OpenAI as a supported provider across environment configuration, Flutter setup and storage, WebSocket session creation, dependency injection, LLM client construction, validation, documentation, and package metadata.

Changes

Azure OpenAI provider support

Layer / File(s) Summary
Azure client and provider wiring
packages/llm_openai/..., packages/core/src/os_ai_core/di.py, packages/llm/src/os_ai_llm/config.py, tests/integration/test_openai_flow.py
Adds AzureOpenAIClient, Azure configuration constants, dependency-injection support, computer-tool mapping, public exports, and integration coverage.
WebSocket provider option propagation
packages/backend/src/os_ai_backend/ws.py
Parses Azure query parameters and forwards filtered provider options through session and container creation.
Frontend configuration and secure storage
frontend_flutter/lib/main.dart, frontend_flutter/lib/src/app/config/app_config.dart, frontend_flutter/lib/src/app/services/secure_storage_service.dart
Stores Azure credentials and settings, restores them into AppConfig, and includes them in WebSocket configuration.
Provider setup and validation
frontend_flutter/lib/src/presentation/settings/..., frontend_flutter/lib/src/features/chat/..., frontend_flutter/lib/src/app/services/...
Adds Azure fields and provider selection to setup/settings screens, validates endpoint and key inputs, and updates chat readiness messaging.
Documentation and package metadata
.env.example, README.md, packages/backend/src/os_ai_backend.egg-info/*
Documents Azure configuration and updates backend package dependency metadata.

Repository and distribution metadata

Layer / File(s) Summary
Local artifact ignore rules
.gitignore
Adds ignores for .venv, .DS_Store, and recursive egg-info directories.
Generated distribution manifests
packages/*/src/*.egg-info/*
Updates generated source manifests, requirements, Linux entry points, and package metadata.
Estimated code review effort: 4 (Complex) ~45 minutes

Suggested reviewers: 777genius

Poem

I’m a bunny with Azure keys,
Hopping through clouds and APIs.
Endpoints tucked in, deployments bright,
Securely stored and wired just right.
Tests thump softly—what a delight!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 18.18% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: adding Azure OpenAI support for the computer-use flow.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@README.md`:
- Line 44: Update the nearby README provider summaries that currently mention
only OpenAI and Anthropic to also include Azure OpenAI, keeping the existing
wording and table entry consistent without changing unrelated documentation.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: c8172cb8-58e0-44f5-b449-2c777e06cdd8

📥 Commits

Reviewing files that changed from the base of the PR and between 0356f41 and eae5492.

⛔ Files ignored due to path filters (1)
  • .DS_Store is excluded by !**/.DS_Store
📒 Files selected for processing (32)
  • .env.example
  • .gitignore
  • README.md
  • frontend_flutter/lib/main.dart
  • frontend_flutter/lib/src/app/config/app_config.dart
  • frontend_flutter/lib/src/app/services/api_key_validator.dart
  • frontend_flutter/lib/src/app/services/secure_storage_service.dart
  • frontend_flutter/lib/src/features/chat/presentation/widgets/chat_input_composer.dart
  • frontend_flutter/lib/src/presentation/settings/first_run_dialog.dart
  • frontend_flutter/lib/src/presentation/settings/settings_screen.dart
  • frontend_flutter/lib/src/presentation/settings/widgets/api_key_field.dart
  • packages/backend/src/os_ai_backend.egg-info/PKG-INFO
  • packages/backend/src/os_ai_backend.egg-info/SOURCES.txt
  • packages/backend/src/os_ai_backend.egg-info/requires.txt
  • packages/backend/src/os_ai_backend/ws.py
  • packages/core/src/os_ai_core.egg-info/SOURCES.txt
  • packages/core/src/os_ai_core.egg-info/requires.txt
  • packages/core/src/os_ai_core/di.py
  • packages/llm/src/os_ai_llm.egg-info/SOURCES.txt
  • packages/llm/src/os_ai_llm/config.py
  • packages/llm_anthropic/src/os_ai_llm_anthropic.egg-info/SOURCES.txt
  • packages/llm_openai/src/os_ai_llm_openai/__init__.py
  • packages/llm_openai/src/os_ai_llm_openai/adapters_openai.py
  • packages/llm_openai/src/os_ai_llm_openai/config.py
  • packages/os-linux/src/os_ai_os_linux.egg-info/PKG-INFO
  • packages/os-linux/src/os_ai_os_linux.egg-info/SOURCES.txt
  • packages/os-linux/src/os_ai_os_linux.egg-info/dependency_links.txt
  • packages/os-linux/src/os_ai_os_linux.egg-info/entry_points.txt
  • packages/os-linux/src/os_ai_os_linux.egg-info/requires.txt
  • packages/os-linux/src/os_ai_os_linux.egg-info/top_level.txt
  • packages/os/src/os_ai_os.egg-info/SOURCES.txt
  • tests/integration/test_openai_flow.py

Comment thread README.md
| Provider | Model | Computer Use | Status |
|----------|-------|-------------|--------|
| **OpenAI** | GPT-5.4 | Batched actions, `previous_response_id` continuity | **Fully supported** |
| **Azure OpenAI** | `computer-use-preview` deployment | Batched actions, `previous_response_id` continuity | **Supported** |

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Update the README’s other provider summaries to include Azure OpenAI.

This table now lists Azure as supported, but nearby descriptions still say the project supports only OpenAI and Anthropic. Update those summaries so users do not receive contradictory provider guidance.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@README.md` at line 44, Update the nearby README provider summaries that
currently mention only OpenAI and Anthropic to also include Azure OpenAI,
keeping the existing wording and table entry consistent without changing
unrelated documentation.

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