Add Atlas Cloud as a built-in provider - #404
Sun-sunshine06 merged 3 commits into
Conversation
There was a problem hiding this comment.
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 viapnpm changeset. Without one, the changelog will not reflect this addition for users who upgrade.
Suggested fix: runpnpm changesetwith 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_URLentry 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
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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
detectProviderFromKeynow classifies any key starting withapikey-as Atlas Cloud (packages/providers/src/index.ts:595), and the accompanying unit test asserts that the same fabricatedapikey-teststring round-trips toatlascloud(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 asopenai/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.tsshortlist). 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/modelscheck 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
Summary
https://api.atlascloud.ai/v1,ATLASCLOUD_API_KEY, andqwen/qwen3.5-flashas the default modelValidation
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 checkon changed source/test/README filestsc --noEmitforpackages/shared,packages/providers,packages/core, andapps/desktop/tsconfig.node.json/v1/modelscheck returned 118 models, includingqwen/qwen3.5-flashanddeepseek-ai/deepseek-v4-probiome check .successfullyNote: 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.