Skip to content

Add Atlas Cloud as a built-in provider - #404

Merged
Sun-sunshine06 merged 3 commits into
OpenCoworkAI:mainfrom
binyangzhu000-sudo:codex/add-atlascloud-provider
Sep 23, 2026
Merged

Sun-sunshine06 merged 3 commits into
OpenCoworkAI:mainfrom
binyangzhu000-sudo:codex/add-atlascloud-provider

Conversation

@binyangzhu000-sudo

Copy link
Copy Markdown
Contributor

Summary

  • add Atlas Cloud as a built-in OpenAI-compatible provider with https://api.atlascloud.ai/v1, ATLASCLOUD_API_KEY, and qwen/qwen3.5-flash as the default model
  • wire Atlas Cloud through provider validation, key-prefix detection, onboarding IPC parsing, provider shortlist, public base-url fallback, and provider error help URLs
  • update the existing English/Chinese provider lists only; no sponsor blocks, logos, credits, or partner copy were added

Validation

  • vitest run packages/shared/src/config.test.ts packages/shared/src/base-url.test.ts packages/providers/src/index.test.ts packages/providers/src/validate.test.ts packages/core/src/errors.test.ts apps/desktop/src/main/onboarding-ipc.test.ts (228 tests passed)
  • biome check on changed source/test/README files
  • tsc --noEmit for packages/shared, packages/providers, packages/core, and apps/desktop/tsconfig.node.json
  • live Atlas Cloud /v1/models check returned 118 models, including qwen/qwen3.5-flash and deepseek-ai/deepseek-v4-pro
  • commit hook ran full-repo biome check . successfully

Note: the repository pre-push hook runs the full test suite. In this local environment, desktop suites that import Electron fail because Electron's install script is blocked by pnpm's approve-builds policy (Electron failed to install correctly). The targeted provider/onboarding tests and typechecks above pass.

@github-actions github-actions Bot added docs Documentation area:desktop apps/desktop (Electron shell, renderer) area:core packages/core (generation orchestration) area:providers packages/providers (pi-ai adapter, model calls) labels Jul 16, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Review mode: initial

Findings

  • [Minor] Missing changeset for a user-visible change — Atlas Cloud is a new built-in provider that appears in onboarding, settings, model picker, and provider lists. According to the project conventions (CONTRIBUTING.md, PR template checklist), every user-visible change should include a changeset via pnpm changeset. Without one, the changelog will not reflect this addition for users who upgrade.
    Suggested fix: run pnpm changeset with a patch-level bump and a description such as "feat: add Atlas Cloud as a built-in OpenAI-compatible provider" before merging.

  • [Nit] The PROVIDER_KEY_HELP_URL entry for Atlas Cloud (https://atlascloud.ai/) is a generic landing page, not a direct key-settings URL. While acceptable as a starting point, consider updating it to the exact key-management page if Atlas Cloud provides one (e.g., https://atlascloud.ai/account/api-keys). This would reduce user friction when they encounter a 4xx error and click the link.

Summary

The PR cleanly adds Atlas Cloud as a built-in OpenAI-compatible provider across all relevant layers (config schema, onboarding IPC, provider validation, key-prefix detection, error rewriting, base URL models endpoint, provider shortlist, and documentation). The changes are additive, follow existing patterns, and include tests for each new path. No regressions, security issues, or dependency/license concerns were identified. The only actionable item before merging is adding a changeset for changelog tracking.

Testing

  • New test cases added for key detection (packages/providers/src/index.test.ts), provider validation (packages/providers/src/validate.test.ts), onboarding IPC forwarding (apps/desktop/src/main/onboarding-ipc.test.ts), error URL rewriting (packages/core/src/errors.test.ts), base URL models endpoint (packages/shared/src/base-url.test.ts), and config schema/shortlist (packages/shared/src/config.test.ts). Existing tests continue to pass. No E2E tests for Atlas Cloud-specific UI workflows (e.g., onboarding flow with Atlas Cloud selected) — acceptable for an initial integration.

Open-CoDesign Bot

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Review mode: follow-up after new commits

Findings

  • [Resolved] The missing changeset (previously [Minor]) is now present at .changeset/atlascloud-provider.md. Thank you.

Residual observations

  • The key-help URL for Atlas Cloud (https://atlascloud.ai/) remains a generic landing page rather than a direct key-management link. This is a non-blocking polish item — if Atlas Cloud provides a dedicated key-settings URL (e.g., https://atlascloud.ai/account/api-keys), consider updating it to reduce user friction on 4xx errors.

Summary
All material issues from the previous review are resolved. The PR correctly wires Atlas Cloud across config, onboarding, validation, error rewriting, and documentation. Tests cover each new path. No regressions or security concerns. Ready to merge.

Testing

  • Existing tests pass; the new changeset does not affect runtime.

Open-CoDesign Bot

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Review mode: follow-up after new commits

Findings
No new material findings. The changeset flagged in the prior review is now present at .changeset/atlascloud-provider.md, and the new commits add a scaffolding entry for it at .changeset/atlascloud-provider.md (shared/providers/core/desktop) that matches the touched packages. The Atlas Cloud wiring stays internally consistent across packages/shared/src/config.ts, packages/providers/src/index.ts, packages/providers/src/validate.ts, packages/core/src/agent.ts, packages/core/src/errors.ts, and apps/desktop/src/main/onboarding/provider-parsers.ts.

Questions

  • detectProviderFromKey now classifies any key starting with apikey- as Atlas Cloud (packages/providers/src/index.ts:595), and the accompanying unit test asserts that the same fabricated apikey-test string round-trips to atlascloud (packages/providers/src/index.test.ts:21). Can you confirm this is the real Atlas Cloud key prefix? If real keys use a different prefix (or have no stable prefix), this heuristic will silently never fire for pasted keys and misclassify them as openai/unknown; in that case the branch should be corrected or dropped rather than kept as a self-referential test-only match.

Summary
Review mode: follow-up after new commits. The Atlas Cloud provider is wired correctly through the config enum, builtin provider table, onboarding shortlist, validation endpoint, error-help map, and public base-URL fallback, and each new path has a focused Vitest case (packages/providers/src/validate.test.ts, packages/shared/src/config.test.ts, packages/shared/src/base-url.test.ts, packages/core/src/errors.test.ts, apps/desktop/src/main/onboarding-ipc.test.ts). No regressions, license, or security concerns are introduced by the diff.

Residual observations

  • The Atlas Cloud key-help URL is still the generic landing page (packages/core/src/errors.ts:23, packages/shared/src/config.ts shortlist). This is the same non-blocking polish item from the previous review; update only if Atlas Cloud exposes a dedicated key-management URL.
  • The default/shortlist models (qwen/qwen3.5-flash, deepseek-ai/deepseek-v4-pro) come from the PR's live /v1/models check and could not be independently re-verified in this run. If the default model is later renamed, new Atlas Cloud users would fail onboarding; worth a follow-up only if it drifts.

Testing
Not run (automation). The added Vitest cases cover provider detection, validation URL/auth, config + shortlist shape, error rewriting, and onboarding IPC forwarding, which is proportionate coverage for this change.

Open-CoDesign Bot

@Sun-sunshine06
Sun-sunshine06 merged commit c3d2ff3 into OpenCoworkAI:main Sep 23, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:core packages/core (generation orchestration) area:desktop apps/desktop (Electron shell, renderer) area:providers packages/providers (pi-ai adapter, model calls) docs Documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants