Skip to content

feat: migrate iFlow provider to Qoder AI (#660)#818

Closed
diegosouzapw wants to merge 1 commit intomainfrom
feat/issue-660-qoder
Closed

feat: migrate iFlow provider to Qoder AI (#660)#818
diegosouzapw wants to merge 1 commit intomainfrom
feat/issue-660-qoder

Conversation

@diegosouzapw
Copy link
Copy Markdown
Owner

No description provided.

Copilot AI review requested due to automatic review settings March 30, 2026 13:57
@kilo-code-bot
Copy link
Copy Markdown

kilo-code-bot bot commented Mar 30, 2026

Code Review Summary

Status: 1 Incomplete Issue | Recommendation: Add missing changes before merge

Overview

Severity Count
CRITICAL 1
WARNING 0
SUGGESTION 0
Issue Details (click to expand)

CRITICAL

File Line Issue
src/app/(dashboard)/dashboard/agents/page.tsx Runtime code still references iflow — incompatible with renamed provider
src/app/api/v1/models/catalog.ts Runtime code still uses if: "iflow" — incompatible with renamed provider
src/app/api/providers/[id]/test/route.ts Runtime code still uses iflow provider ID — incompatible with renamed provider

Details: Three files contain runtime code referencing iflow, which is no longer a valid provider after this rename to qoder. These are NOT modified in this PR, causing runtime incompatibility:

  1. src/app/(dashboard)/dashboard/agents/page.tsx — Maps iflow: "iflow" in combo model mapping
  2. src/app/api/v1/models/catalog.ts — Uses if: "iflow" in provider aliases
  3. src/app/api/providers/[id]/test/route.ts — Uses iflow in test config
Files Reviewed (X files)
  • .env.example - i18n renames
  • CHANGELOG.md - Documentation updates
  • src/lib/oauth/constants/oauth.ts - Provider config rename
  • src/lib/oauth/providers/qoder.ts - OAuth provider rename (moved from iflow.ts)
  • src/lib/oauth/services/qoder.ts - OAuth service rename (moved from iflow.ts)
  • open-sse/executors/qoder.ts - Executor rename (moved from iflow.ts)
  • tests/unit/qoder-executor.test.mjs - Test rename (moved from iflow-executor.test.mjs)
  • 30+ i18n translation files - Brand rename across all languages
  • Multiple README files in various languages

Additional Note: The PR is mostly comprehensive, covering environment variables, OAuth configs, executors, services, providers, i18n (30 languages), tests, and documentation. The rename from iFlow → Qoder is consistent and well-applied. However, the three runtime files mentioned above need to be updated to use qoder instead of iflow for the application to function correctly after this merge.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request completes the rebranding of the 'iFlow' provider to 'Qoder' across the codebase, including configuration files, documentation, translations, and test suites. I have identified two instances in open-sse/services/usage.ts and src/lib/usage/fetcher.ts where the function getIflowUsage remains, which should be renamed to getQoderUsage to maintain consistency with the rest of the refactor.

return await getQwenUsage(accessToken, providerSpecificData);
case "iflow":
case "qoder":
return await getIflowUsage(accessToken);
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.

medium

For consistency with the migration from iFlow to Qoder, the function getIflowUsage should be renamed to getQoderUsage. This will improve code clarity and maintainability. Please also rename the function at its definition on line 1188.

Suggested change
return await getIflowUsage(accessToken);
return await getQoderUsage(accessToken);

return await getQwenUsage(accessToken, providerSpecificData);
case "iflow":
case "qoder":
return await getIflowUsage(accessToken);
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.

medium

For consistency with the migration from iFlow to Qoder, the function getIflowUsage should be renamed to getQoderUsage. This will improve code clarity and maintainability. Please also rename the function at its definition on line 214.

Suggested change
return await getIflowUsage(accessToken);
return await getQoderUsage(accessToken);

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Migrates the “iFlow” free/OAuth provider integration to “Qoder AI” across the UI constants, OAuth wiring, open-sse registry/executors, scripts, tests, and documentation/i18n so the codebase treats Qoder as the supported provider moving forward.

Changes:

  • Replaces provider identifiers and display strings from iflow/“iFlow” to qoder/“Qoder” across constants, OAuth provider registration, and usage/token-refresh plumbing.
  • Updates open-sse provider registry + executor mapping and related scripts/env examples for Qoder.
  • Updates docs and i18n message bundles to reflect the new provider name and expected free-stack copy.

Reviewed changes

Copilot reviewed 267 out of 268 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
tests/unit/proxy-connection-test.test.mjs Updates provider expectation lists to use qoder instead of iflow.
src/shared/constants/providers.ts Renames free provider entry from iflow to qoder (keeps alias if).
src/shared/constants/pricing.ts Updates pricing section comment to “Qoder AI (if)”.
src/shared/constants/colors.ts Renames provider color key from iflow to qoder and updates label.
src/shared/components/OAuthModal.tsx Updates UI copy examples from iFlow → Qoder for popup-close handling.
src/lib/usage/fetcher.ts Routes usage lookup switch-case from iflowqoder and updates messages.
src/lib/oauth/services/index.ts Re-exports QoderService instead of IFlowService.
src/lib/oauth/providers/qoder.ts Defines the Qoder OAuth provider using QODER_CONFIG and userinfo lookup.
src/lib/oauth/providers/index.ts Registers qoder provider in OAuth provider registry map.
src/lib/oauth/constants/oauth.ts Renames IFLOW_CONFIG → QODER_CONFIG and updates endpoints/env var names.
src/i18n/messages/zh-CN.json Updates free-stack and “waiting for authorization” strings to Qoder.
src/i18n/messages/vi.json Updates free-stack and “waiting for authorization” strings to Qoder.
src/i18n/messages/uk-UA.json Updates free-stack and “waiting for authorization” strings to Qoder.
src/i18n/messages/tr.json Updates free-stack and “waiting for authorization” strings to Qoder.
src/i18n/messages/th.json Updates free-stack and “waiting for authorization” strings to Qoder.
src/i18n/messages/sv.json Updates free-stack and “waiting for authorization” strings to Qoder.
src/i18n/messages/sk.json Updates free-stack and “waiting for authorization” strings to Qoder.
src/i18n/messages/ru.json Updates free-stack and “waiting for authorization” strings to Qoder.
src/i18n/messages/ro.json Updates free-stack and “waiting for authorization” strings to Qoder.
src/i18n/messages/pt.json Updates free-stack and “waiting for authorization” strings to Qoder.
src/i18n/messages/pt-BR.json Updates free-stack and “waiting for authorization” strings to Qoder.
src/i18n/messages/pl.json Updates free-stack and “waiting for authorization” strings to Qoder.
src/i18n/messages/phi.json Updates free-stack and “waiting for authorization” strings to Qoder.
src/i18n/messages/no.json Updates free-stack and “waiting for authorization” strings to Qoder.
src/i18n/messages/nl.json Updates free-stack and “waiting for authorization” strings to Qoder.
src/i18n/messages/ms.json Updates free-stack and “waiting for authorization” strings to Qoder.
src/i18n/messages/ko.json Updates free-stack and “waiting for authorization” strings to Qoder.
src/i18n/messages/ja.json Updates free-stack and “waiting for authorization” strings to Qoder.
src/i18n/messages/it.json Updates free-stack and “waiting for authorization” strings to Qoder.
src/i18n/messages/in.json Updates “waiting for authorization” string key/value to Qoder.
src/i18n/messages/id.json Updates free-stack and “waiting for authorization” strings to Qoder.
src/i18n/messages/hu.json Updates free-stack and “waiting for authorization” strings to Qoder.
src/i18n/messages/hi.json Updates free-stack description to Qoder.
src/i18n/messages/he.json Updates free-stack and “waiting for authorization” strings to Qoder.
src/i18n/messages/fr.json Updates free-stack and “waiting for authorization” strings to Qoder.
src/i18n/messages/fi.json Updates free-stack and “waiting for authorization” strings to Qoder.
src/i18n/messages/es.json Updates free-stack and “waiting for authorization” strings to Qoder.
src/i18n/messages/en.json Updates free-stack and “waiting for authorization” strings to Qoder.
src/i18n/messages/de.json Updates free-stack and “waiting for authorization” strings to Qoder.
src/i18n/messages/da.json Updates free-stack and “waiting for authorization” strings to Qoder.
src/i18n/messages/cs.json Updates Czech docs strings and some markdown emphasis formatting.
src/i18n/messages/bg.json Updates free-stack and “waiting for authorization” strings to Qoder.
src/i18n/messages/ar.json Updates free-stack and “waiting for authorization” strings to Qoder.
scripts/system-info.mjs Updates CLI tool probe from iflow to qoder.
scripts/check-t11-any-budget.mjs Updates T11 any-budget file list from iflow executor to qoder executor.
scripts/bootstrap-env.mjs Updates optional OAuth secret key name to QODER.
open-sse/utils/thinkTagParser.ts Updates provider examples in documentation comment from iFlow → Qoder.
open-sse/services/usage.ts Switch-case provider id migration iflowqoder and message text updates.
open-sse/services/tokenRefresh.ts Switch-case provider id migration iflowqoder and token refresh endpoint updates.
open-sse/executors/index.ts Replaces IFlowExecutor wiring with QoderExecutor.
open-sse/config/providerRegistry.ts Replaces iflow registry entry with qoder (endpoints/models/UA/env var names).
open-sse/config/constants.ts Renames OAuth endpoints map entry from iflowqoder.
docs/i18n/zh-CN/USER_GUIDE.md Updates provider name references and examples from iFlow → Qoder.
docs/i18n/zh-CN/TROUBLESHOOTING.md Updates free-tier provider mention from iFlow → Qoder.
docs/i18n/zh-CN/FEATURES.md Updates provider list copy to include Qoder instead of iFlow.
docs/i18n/zh-CN/CODEBASE_DOCUMENTATION.md Updates token refresh/provider tables to reference Qoder instead of iFlow.
docs/i18n/vi/USER_GUIDE.md Updates provider name references and examples from iFlow → Qoder.
docs/i18n/vi/TROUBLESHOOTING.md Updates free-tier provider mention from iFlow → Qoder.
docs/i18n/vi/FEATURES.md Updates provider list copy to include Qoder instead of iFlow.
docs/i18n/vi/CODEBASE_DOCUMENTATION.md Updates token refresh/provider tables to reference Qoder instead of iFlow.
docs/i18n/vi/ARCHITECTURE.md Updates architecture diagrams/tables to reference Qoder instead of iFlow.
docs/i18n/uk-UA/USER_GUIDE.md Updates provider name references and examples from iFlow → Qoder.
docs/i18n/uk-UA/TROUBLESHOOTING.md Updates free-tier provider mention from iFlow → Qoder.
docs/i18n/uk-UA/FEATURES.md Updates provider list copy to include Qoder instead of iFlow.
docs/i18n/uk-UA/CODEBASE_DOCUMENTATION.md Updates token refresh/provider tables to reference Qoder instead of iFlow.
docs/i18n/th/USER_GUIDE.md Updates provider name references and examples from iFlow → Qoder.
docs/i18n/th/TROUBLESHOOTING.md Updates free-tier provider mention from iFlow → Qoder.
docs/i18n/th/FEATURES.md Updates provider list copy to include Qoder instead of iFlow.
docs/i18n/th/CODEBASE_DOCUMENTATION.md Updates token refresh/provider tables to reference Qoder instead of iFlow.
docs/i18n/th/ARCHITECTURE.md Updates architecture diagrams/tables to reference Qoder instead of iFlow.
docs/i18n/sv/USER_GUIDE.md Updates provider name references and examples from iFlow → Qoder.
docs/i18n/sv/TROUBLESHOOTING.md Updates free-tier provider mention from iFlow → Qoder.
docs/i18n/sv/FEATURES.md Updates provider list copy to include Qoder instead of iFlow.
docs/i18n/sv/CODEBASE_DOCUMENTATION.md Updates token refresh/provider tables to reference Qoder instead of iFlow.
docs/i18n/sk/USER_GUIDE.md Updates provider name references and examples from iFlow → Qoder.
docs/i18n/sk/TROUBLESHOOTING.md Updates free-tier provider mention from iFlow → Qoder.
docs/i18n/sk/FEATURES.md Updates provider list copy to include Qoder instead of iFlow.
docs/i18n/sk/CODEBASE_DOCUMENTATION.md Updates token refresh/provider tables to reference Qoder instead of iFlow.
docs/i18n/sk/ARCHITECTURE.md Updates architecture diagrams/tables to reference Qoder instead of iFlow.
docs/i18n/ru/USER_GUIDE.md Updates provider name references and examples from iFlow → Qoder.
docs/i18n/ru/TROUBLESHOOTING.md Updates free-tier provider mention from iFlow → Qoder.
docs/i18n/ru/FEATURES.md Updates provider list copy to include Qoder instead of iFlow.
docs/i18n/ru/CODEBASE_DOCUMENTATION.md Updates token refresh/provider tables to reference Qoder instead of iFlow.
docs/i18n/ro/USER_GUIDE.md Updates provider name references and examples from iFlow → Qoder.
docs/i18n/ro/TROUBLESHOOTING.md Updates free-tier provider mention from iFlow → Qoder.
docs/i18n/ro/FEATURES.md Updates provider list copy to include Qoder instead of iFlow.
docs/i18n/ro/CODEBASE_DOCUMENTATION.md Updates token refresh/provider tables to reference Qoder instead of iFlow.
docs/i18n/pt/USER_GUIDE.md Updates provider name references and examples from iFlow → Qoder.
docs/i18n/pt/TROUBLESHOOTING.md Updates free-tier provider mention from iFlow → Qoder.
docs/i18n/pt/FEATURES.md Updates provider list copy to include Qoder instead of iFlow.
docs/i18n/pt/CODEBASE_DOCUMENTATION.md Updates token refresh/provider tables to reference Qoder instead of iFlow.
docs/i18n/pt-BR/USER_GUIDE.md Updates provider name references and examples from iFlow → Qoder.
docs/i18n/pt-BR/TROUBLESHOOTING.md Updates free-tier provider mention from iFlow → Qoder.
docs/i18n/pt-BR/FEATURES.md Updates provider list copy to include Qoder instead of iFlow.
docs/i18n/pt-BR/CODEBASE_DOCUMENTATION.md Updates token refresh/provider tables to reference Qoder instead of iFlow.
docs/i18n/pl/USER_GUIDE.md Updates provider name references and examples from iFlow → Qoder.
docs/i18n/pl/TROUBLESHOOTING.md Updates free-tier provider mention from iFlow → Qoder.
docs/i18n/pl/FEATURES.md Updates provider list copy to include Qoder instead of iFlow.
docs/i18n/pl/CODEBASE_DOCUMENTATION.md Updates token refresh/provider tables to reference Qoder instead of iFlow.
docs/i18n/pl/ARCHITECTURE.md Updates architecture diagrams/tables to reference Qoder instead of iFlow.
docs/i18n/phi/USER_GUIDE.md Updates provider name references and examples from iFlow → Qoder.
docs/i18n/phi/TROUBLESHOOTING.md Updates free-tier provider mention from iFlow → Qoder.
docs/i18n/phi/FEATURES.md Updates provider list copy to include Qoder instead of iFlow.
docs/i18n/phi/CODEBASE_DOCUMENTATION.md Updates token refresh/provider tables to reference Qoder instead of iFlow.
docs/i18n/no/USER_GUIDE.md Updates provider name references and examples from iFlow → Qoder.
docs/i18n/no/TROUBLESHOOTING.md Updates free-tier provider mention from iFlow → Qoder.
docs/i18n/no/FEATURES.md Updates provider list copy to include Qoder instead of iFlow.
docs/i18n/no/CODEBASE_DOCUMENTATION.md Updates token refresh/provider tables to reference Qoder instead of iFlow.
docs/i18n/no/ARCHITECTURE.md Updates architecture diagrams/tables to reference Qoder instead of iFlow.
docs/i18n/nl/USER_GUIDE.md Updates provider name references and examples from iFlow → Qoder.
docs/i18n/nl/TROUBLESHOOTING.md Updates free-tier provider mention from iFlow → Qoder.
docs/i18n/nl/FEATURES.md Updates provider list copy to include Qoder instead of iFlow.
docs/i18n/nl/CODEBASE_DOCUMENTATION.md Updates token refresh/provider tables to reference Qoder instead of iFlow.
docs/i18n/ms/USER_GUIDE.md Updates provider name references and examples from iFlow → Qoder.
docs/i18n/ms/TROUBLESHOOTING.md Updates free-tier provider mention from iFlow → Qoder.
docs/i18n/ms/FEATURES.md Updates provider list copy to include Qoder instead of iFlow.
docs/i18n/ms/CODEBASE_DOCUMENTATION.md Updates token refresh/provider tables to reference Qoder instead of iFlow.
docs/i18n/ms/ARCHITECTURE.md Updates architecture diagrams/tables to reference Qoder instead of iFlow.
docs/i18n/ko/USER_GUIDE.md Updates provider name references and examples from iFlow → Qoder.
docs/i18n/ko/TROUBLESHOOTING.md Updates free-tier provider mention from iFlow → Qoder.
docs/i18n/ko/FEATURES.md Updates provider list copy to include Qoder instead of iFlow.
docs/i18n/ko/CODEBASE_DOCUMENTATION.md Updates token refresh/provider tables to reference Qoder instead of iFlow.
docs/i18n/ja/USER_GUIDE.md Updates provider name references and examples from iFlow → Qoder.
docs/i18n/ja/TROUBLESHOOTING.md Updates free-tier provider mention from iFlow → Qoder.
docs/i18n/ja/FEATURES.md Updates provider list copy to include Qoder instead of iFlow.
docs/i18n/ja/CODEBASE_DOCUMENTATION.md Updates token refresh/provider tables to reference Qoder instead of iFlow.
docs/i18n/it/USER_GUIDE.md Updates provider name references and examples from iFlow → Qoder.
docs/i18n/it/TROUBLESHOOTING.md Updates free-tier provider mention from iFlow → Qoder.
docs/i18n/it/FEATURES.md Updates provider list copy to include Qoder instead of iFlow.
docs/i18n/it/CODEBASE_DOCUMENTATION.md Updates token refresh/provider tables to reference Qoder instead of iFlow.
docs/i18n/in/USER_GUIDE.md Updates provider name references and examples from iFlow → Qoder.
docs/i18n/in/TROUBLESHOOTING.md Updates free-tier provider mention from iFlow → Qoder.
docs/i18n/in/README.md Updates tier diagram text from iFlow → Qoder.
docs/i18n/in/FEATURES.md Updates provider list copy to include Qoder instead of iFlow.
docs/i18n/in/CODEBASE_DOCUMENTATION.md Updates token refresh/provider tables to reference Qoder instead of iFlow.
docs/i18n/in/ARCHITECTURE.md Updates architecture diagrams/tables to reference Qoder instead of iFlow.
docs/i18n/id/USER_GUIDE.md Updates provider name references and examples from iFlow → Qoder.
docs/i18n/id/TROUBLESHOOTING.md Updates free-tier provider mention from iFlow → Qoder.
docs/i18n/id/FEATURES.md Updates provider list copy to include Qoder instead of iFlow.
docs/i18n/id/CODEBASE_DOCUMENTATION.md Updates token refresh/provider tables to reference Qoder instead of iFlow.
docs/i18n/id/ARCHITECTURE.md Updates architecture diagrams/tables to reference Qoder instead of iFlow.
docs/i18n/hu/USER_GUIDE.md Updates provider name references and examples from iFlow → Qoder.
docs/i18n/hu/TROUBLESHOOTING.md Updates free-tier provider mention from iFlow → Qoder.
docs/i18n/hu/FEATURES.md Updates provider list copy to include Qoder instead of iFlow.
docs/i18n/hu/CODEBASE_DOCUMENTATION.md Updates token refresh/provider tables to reference Qoder instead of iFlow.
docs/i18n/he/USER_GUIDE.md Updates provider name references and examples from iFlow → Qoder.
docs/i18n/he/TROUBLESHOOTING.md Updates free-tier provider mention from iFlow → Qoder.
docs/i18n/he/FEATURES.md Updates provider list copy to include Qoder instead of iFlow.
docs/i18n/he/CODEBASE_DOCUMENTATION.md Updates token refresh/provider tables to reference Qoder instead of iFlow.
docs/i18n/he/ARCHITECTURE.md Updates architecture diagrams/tables to reference Qoder instead of iFlow.
docs/i18n/fr/USER_GUIDE.md Updates provider name references and examples from iFlow → Qoder.
docs/i18n/fr/TROUBLESHOOTING.md Updates free-tier provider mention from iFlow → Qoder.
docs/i18n/fr/FEATURES.md Updates provider list copy to include Qoder instead of iFlow.
docs/i18n/fr/CODEBASE_DOCUMENTATION.md Updates token refresh/provider tables to reference Qoder instead of iFlow.
docs/i18n/fr/ARCHITECTURE.md Updates architecture diagrams/tables to reference Qoder instead of iFlow.
docs/i18n/fi/USER_GUIDE.md Updates provider name references and examples from iFlow → Qoder.
docs/i18n/fi/TROUBLESHOOTING.md Updates free-tier provider mention from iFlow → Qoder.
docs/i18n/fi/FEATURES.md Updates provider list copy to include Qoder instead of iFlow.
docs/i18n/fi/CODEBASE_DOCUMENTATION.md Updates token refresh/provider tables to reference Qoder instead of iFlow.
docs/i18n/es/USER_GUIDE.md Updates provider name references and examples from iFlow → Qoder.
docs/i18n/es/TROUBLESHOOTING.md Updates free-tier provider mention from iFlow → Qoder.
docs/i18n/es/FEATURES.md Updates provider list copy to include Qoder instead of iFlow.
docs/i18n/es/CODEBASE_DOCUMENTATION.md Updates token refresh/provider tables to reference Qoder instead of iFlow.
docs/i18n/es/ARCHITECTURE.md Updates architecture diagrams/tables to reference Qoder instead of iFlow.
docs/i18n/de/USER_GUIDE.md Updates provider name references and examples from iFlow → Qoder.
docs/i18n/de/TROUBLESHOOTING.md Updates free-tier provider mention from iFlow → Qoder.
docs/i18n/de/FEATURES.md Updates provider list copy to include Qoder instead of iFlow.
docs/i18n/de/CODEBASE_DOCUMENTATION.md Updates token refresh/provider tables to reference Qoder instead of iFlow.
docs/i18n/de/ARCHITECTURE.md Updates architecture diagrams/tables to reference Qoder instead of iFlow.
docs/i18n/da/USER_GUIDE.md Updates provider name references and examples from iFlow → Qoder.
docs/i18n/da/TROUBLESHOOTING.md Updates free-tier provider mention from iFlow → Qoder.
docs/i18n/da/FEATURES.md Updates provider list copy to include Qoder instead of iFlow.
docs/i18n/da/CODEBASE_DOCUMENTATION.md Updates token refresh/provider tables to reference Qoder instead of iFlow.
docs/i18n/cs/USER_GUIDE.md Updates Czech docs provider references from iFlow → Qoder.
docs/i18n/cs/FEATURES.md Updates Czech features doc provider list and normalizes some emphasis formatting.
docs/i18n/bg/USER_GUIDE.md Updates provider name references and examples from iFlow → Qoder.
docs/i18n/bg/TROUBLESHOOTING.md Updates free-tier provider mention from iFlow → Qoder.
docs/i18n/bg/FEATURES.md Updates provider list copy to include Qoder instead of iFlow.
docs/i18n/bg/CODEBASE_DOCUMENTATION.md Updates token refresh/provider tables to reference Qoder instead of iFlow.
docs/i18n/bg/ARCHITECTURE.md Updates architecture diagrams/tables to reference Qoder instead of iFlow.
docs/i18n/ar/USER_GUIDE.md Updates provider name references and examples from iFlow → Qoder.
docs/i18n/ar/TROUBLESHOOTING.md Updates free-tier provider mention from iFlow → Qoder.
docs/i18n/ar/FEATURES.md Updates provider list copy to include Qoder instead of iFlow.
docs/i18n/ar/CODEBASE_DOCUMENTATION.md Updates token refresh/provider tables to reference Qoder instead of iFlow.
docs/i18n/ar/ARCHITECTURE.md Updates architecture diagrams/tables to reference Qoder instead of iFlow.
docs/USER_GUIDE.md Updates main user guide provider references from iFlow → Qoder.
docs/TROUBLESHOOTING.md Updates main troubleshooting free-tier provider mention to Qoder.
docs/FEATURES.md Updates main features provider list to include Qoder instead of iFlow.
docs/CODEBASE_DOCUMENTATION.md Updates main codebase docs provider tables/references from iFlow → Qoder.
docs/ARCHITECTURE.md Updates main architecture diagrams/tables to reference Qoder instead of iFlow.
.env.example Renames IFLOW_* env vars to QODER_* and updates UA var name/value.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +69 to +73
clientId: process.env.QODER_OAUTH_CLIENT_ID || "10009311001",
clientSecret: process.env.QODER_OAUTH_CLIENT_SECRET || "4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",
authorizeUrl: "https://qoder.cn/oauth",
tokenUrl: "https://qoder.cn/oauth/token",
userInfoUrl: "https://qoder.cn/api/oauth/getUserInfo",
Copy link

Copilot AI Mar 30, 2026

Choose a reason for hiding this comment

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

QODER_CONFIG hardcodes a non-empty OAuth client secret fallback. Even if the clientId is public, committing a real clientSecret in source control is a credential leak risk and makes it hard to rotate. Prefer defaulting clientSecret to "" and requiring it via env/provider-credentials.json, or load these built-in creds from a non-committed secret store.

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a5393a3ec4

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

"gemini-cli": new GeminiCLIExecutor(),
github: new GithubExecutor(),
iflow: new IFlowExecutor(),
qoder: new QoderExecutor(),
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Keep legacy iflow executor alias for migrated installs

Changing the specialized executor key to qoder without a backward alias means existing deployments that still have provider='iflow' in persisted connections will no longer use the signed iFlow/Qoder executor path and will fall back to DefaultExecutor, which drops the required signature headers and can trigger upstream auth/406 failures. I could not find an iflowqoder normalization or data migration in this change, so keeping an iflow compatibility key here (and corresponding refresh aliasing) is needed to avoid breaking upgrades.

Useful? React with 👍 / 👎.

"gemini-cli": gemini,
antigravity,
iflow,
qoder,
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Add qoder OAuth test config to provider test route

Registering OAuth under qoder here makes new Qoder connections store connection.provider === 'qoder', but /api/providers/[id]/test still only has an iflow entry in OAUTH_TEST_CONFIG; testOAuthConnection returns Provider test not supported when the key is missing, so Qoder's connection test path fails even with valid tokens. Add a qoder config (or alias map) in that route to keep the dashboard test flow working.

Useful? React with 👍 / 👎.

@diegosouzapw
Copy link
Copy Markdown
Owner Author

Thanks for the contribution! We're closing this PR for now because while the documentation has been updated to reflect Qoder AI, the actual backend implementation (e.g. open-sse/executors/qoder.ts) and frontend provider registry changes are entirely missing from this branch. Please feel free to reopen this PR once the typescript codebase implementation for the new Qoder AI provider is included.

@diegosouzapw diegosouzapw deleted the feat/issue-660-qoder branch March 30, 2026 23:59
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.

2 participants