feat: add OrcaRouter provider - #10990
Closed
xilema2 wants to merge 1 commit into
Closed
Conversation
Register OrcaRouter as an OpenAI-compatible meta-router, mirroring the existing openrouter/zenmux/nvidia loaders. Provider id, env var, and API base come from the models.dev catalog; this commit only adds the Kilo attribution headers so OrcaRouter can attribute traffic to Kilo Code. Activates on ORCAROUTER_API_KEY (or auth). Adds a headers test mirroring nvidia-headers, plus an orcarouter entry in the models-api test fixture (the fixture predates the orcarouter models.dev merge). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Contributor
Code Review SummaryStatus: No Issues Found | Recommendation: Merge The implementation is minimal and correct. Files Reviewed (4 files)
Fix these issues in Kilo Cloud Reviewed by claude-4.6-sonnet-20260217 · 1,075,134 tokens Review guidance: REVIEW.md from base branch |
NJ-2020
pushed a commit
to NJ-2020/kilocode
that referenced
this pull request
Jul 4, 2026
* chore: details * fix(tui): add visual feedback for diff wrap and conceal toggles (Kilo-Org#10655) * fix: await SessionRevert.cleanup for shell (Kilo-Org#10669) * fix: Make diff wrapping toggle always available in command_list and correct a type error (resolves Kilo-Org#10682) (Kilo-Org#10683) * feat(app): default servers on web * fix(app): handle non-tool call permissions * fix(app): line selection waits on ready * wip(app): model settings * feat(app): model settings * chore: generate * wip(app): sidebar hover full * wip(app): full-height sidebar * wip(app): full-height sidebar * feat(app): better sidebar hover when collapsed * fix(app): query selector with non-latin chars * chore: stale-while-revalidate headers for changelog * chore: generate * feat(opencode): add agent description (Kilo-Org#10680) * feat: dynamically resolve AGENTS.md files from subdirectories as agent explores them (Kilo-Org#10678) * chore: gen changelog page off changelog json * upgrade opentui to v0.1.75 * chore: update nix node_modules hashes * fix: move changelog footer outside content div to fix padding (Kilo-Org#10712) * fix(app): Order themes alphabetically (Kilo-Org#10698) * fix(app): restore external link opening in system browser (Kilo-Org#10697) * fix(ui): use focus-visible instead of focus to prevent sticky hover effect on click (Kilo-Org#10651) * fix: add 44px top padding to sticky version header on changelog (Kilo-Org#10715) * feat(app): file tree * wip(app): file tree mode * wip(app): file tree mode * chore: cleanup * chore: cleanup * chore(app): createStore over signals * fix(enterprise): add message navigation to share page desktop view (Kilo-Org#10071) Co-authored-by: Claude <noreply@anthropic.com> * chore: fix changelog page * Revert "fix(app): restore external link opening in system browser (Kilo-Org#10697)" This reverts commit 984518b. * ignore: tweak ai deps * feat: use anthropic compat messages api for anthropic models through copilot * chore: debug changelog * fix: ensure openai 404 errors are retried (Kilo-Org#10590) * chore: generate * test(app): e2e test for sidebar nav * chore: refactor changelog * fix(app): session load cap * chore(app): missing i18n strings * chore: cleanup * fix(app): session sync issue * chore: generate * fix(ui): update button styles and disconnect button size * fix(app): set provider row height to 56px * fix(app): add hover text for env-connected providers * fix(app): use default cursor for env provider text * feat(ui): add providers icon and use in settings * feat(ui): add models icon and use in settings * fix(app): style view all button with interactive color and margin * feat(ui): add optional transition animations to dialog * fix(ui): prevent double-close and fix dialog replacement * feat(app): add transition to select provider dialog * feat(app): add transition to command palette * fix(ui): reduce dialog transition in time to 150ms * feat(app): add provider descriptions to settings * feat(app): add Vercel AI Gateway provider description * fix(ui): scope filetree pill tabs styling * fix(app): adjust filetree panel padding * fix(app): tighten filetree row spacing * fix(app): use chevron icons for filetree folders * fix(app): use medium font for filetree items * fix(app): refine filetree row spacing and indent * fix(app): reduce filetree folder indent * fix(app): dim non-deep filetree guide lines * fix(app): fade filetree guide lines on hover * fix(app): move file tree toggle to right * fix(app): disable tooltips in filetree tabs * test(app): fix e2e test * ci: add stale pr job * ci: add dry-run option to stale PR closer workflow Allows testing stale PR closure without actually closing PRs * tweak: retry logic to catch certain provider problems * fix(app): disconnect zen provider * fix(app): zen disconnect not working * chore: generate * chore: cleanup * fix: search clear icon * wip: new release modal - highlight key updates or new features - needs some transition love - all copy including text and video placeholder * chore: cleanup * wip: highlights * wip: highlights * wip: highlights * tweak: when using messages api for copilot, attach anthropic beta headers * chore: don't flip github draft release automatically * fix(app): file tree performance * fix(app): reactive file tree * chore: generate * chore: cleanup * fix(app): enable file watcher * chore: cleanup * chore: cleanup * test(app): file tree spec * feat(release): add highlights template to draft releases (Kilo-Org#10745) * docs: add Italian README (Kilo-Org#10732) * chore: generate * fix(app): add connect provier in model selector (Kilo-Org#10706) * fix(desktop): disable magnification gestures on macOS (Kilo-Org#10605) * feat: add /learn command to extract session learnings to scoped AGENTS.md files (Kilo-Org#10717) * fix: use Instance.directory instead of process.cwd() in read tool * fix(core): expose Instance.directory to custom tools * fix(app): only show files in select dialog when clicking + tab * desktop: deduplicate tauri configs * ignore: update download stats 2026-01-27 * fix(app): auto-scroll button sometimes sticks * chore(app): missing tooltips * feat(app): forward and back buttons * chore: cleanup * feat(core): add worktree to plugin tool context * fix(app): agent fallback colors * fix(app): non-fatal error handling * docs(core): plugin tool context updates * fix(ui): set filetree tablist height to 48px with centered content * fix(app): center filetree empty state with 32px top margin * fix(app): update review empty states to 14px and align select file empty state * fix(app): only show left border on plus button when sticky * fix(app): use smaller close icon on tabs to match comment cards * fix(ui): add max-width 280px to tabs with text truncation * fix(app): don't show session skeleton after workspace reset * perf(app): don't keep parts in memory * perf(app): cleanup connect provider timers * perf(app): shared terminal ghostty-web instance * fix(app): select model anchor * Revert "fix(app): select model anchor" This reverts commit 36babf5fc390fd9a892ad3742690740296d94a23. * fix(app): open markdown links in external browser * fix(app): navigate to tabs when opening file * chore(app): cleanup tailwind vs pure css * fix(app): tooltips causing getComputedStyle errors in model select * fix(app): swallow file search errors * feat(opencode): Handle Venice cache creation tokens (Kilo-Org#10735) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * chore: generate * chore(docs): Better explanation on how to allow tools in external directories (Kilo-Org#10862) * tweak: adjust retry check to be more defensive * ci: make tests passing a requirement pre-release * zen: kimi k2.5 and minimax m2.1 * feat(app): update settings in general settings * chore(app): translations * test(app): new e2e smoke tests * feat(app): show loaded agents.md files * fix(app): session diffs not always loading * feat(app): improved layout * chore: generate * tweak: add recommended topP/temp for kimi k2.5 * Set temperature for kimi k2.5 * Revert "ci: make tests passing a requirement pre-release" This reverts commit 8c00818. * Revert "Set temperature for kimi k2.5" This reverts commit bb63d16. * feat(app): color filetree change dots by diff kind * feat(app): add filetree tooltips with diff labels * fix(app): shorten nav tooltips * fix(app): adjust titlebar left spacing * fix(app): delay nav tooltips * fix(app): align filetree change styling * fix(app): set filetree padding to 6px * fix(app): highlight selected change Track clicked file in the Changes tree and apply selection styling to the matching review diff. * chore(app): show 5 highlights * fix(app): auto-scroll * fix(app): don't connect to localhost through vpn * perf(app): better memory management * chore: cleanup * feat(desktop): i18n for tauri side * feat(desktop): tauri locales * fix(app): not auto-navigating to last project * chore: update nix node_modules hashes * fix(tui): handle 4-5 codes too in c to copy logic * fix(app): spinner color * fix(app): file tree not always loading * test(app): fix outdated e2e test * test(app): fix outdated e2e test * fix(app): file tree not always loading * fix(app): terminal corruption * feat(app): add 'connect provider' button to the manage models dialog (Kilo-Org#10887) * fix(app): auto-scroll * feat: support headless authentication for chatgpt/codex (Kilo-Org#10890) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: Aiden Cline <aidenpcline@gmail.com> * fix(app): reintroduce review tab * release: v1.1.37 * feat(app): use opentui markdown component behind experimental flag (Kilo-Org#10900) * chore: generate * docs: add Daytona OpenCode plugin to ecosystem (Kilo-Org#10917) * chore: generate * fix(cli): restore brand integrity of CLI wordmark (Kilo-Org#10912) * zen: kimi k2.5 * fix(opencode): ensure unsub(PartUpdated) is always called in TaskTool (Kilo-Org#9992) * chore: generate * ignore: adjust flag * bump plugin version * ci * fix: ensure parallel tool calls dont double load AGENTS.md * release: v1.1.38 * fix: ensure copilot plugin properly sets headers for new messages api * chore: generate * release: v1.1.39 * bump: plugins * ignore: update download stats 2026-01-28 * chore(app): global config changes * feat(app): custom provider * chore: cleanup * wip(app): global config * chore: cleanup * chore: cleanup * chore: generate * feat(i18n): add th locale support (Kilo-Org#10809) * chore: generate * fix(desktop): enable ctrl+n and ctrl+p for popover navigation (Kilo-Org#10777) * fix: add SubtaskPart with metadata reference (Kilo-Org#10990) Co-authored-by: yangtianzhe <yangtianzhe@corp.netease.com> * chore: generate * fix(app): close review pane * fix(markdown): Add streaming prop to markdown element (Kilo-Org#11025) * release: v1.1.40 * fix(script): remove highlights template from release notes (Kilo-Org#11052) * chore: generate * fix(ui): allow KaTeX inline math to be followed by punctuation (Kilo-Org#11033) * fix(app): alignment and padding in dialogs (Kilo-Org#10866) * fix(app): fill missing zh keys to avoid English fallback (Kilo-Org#10841) * chore: generate * fix(opencode): normalize zh punctuation for Chinese UI (Kilo-Org#10842) * fix(ui): improve zh duration display formatting (Kilo-Org#10844) * fix(opencode): add `AbortSignal` support to `Ripgrep.files()` and `GlobTool` (Kilo-Org#10833) * fix(typescript errors): remove duplicate keys causing typescript failures (Kilo-Org#11071) * fix(app): file tabs - auto scroll on open & scroll via mouse wheel (Kilo-Org#11070) * tweak: add ctx.abort to grep tool * fix(app): types * docs: update experimental environment variables in CLI docs (Kilo-Org#11030) * fix(app): make settings more responsive for mobile and small web/desktop (Kilo-Org#10775) * chore: generate * fix(opencode): allow media-src data: URL for small audio files (Kilo-Org#11082) * fix(provider): include providerID in SDK cache key (Kilo-Org#11020) Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> * fix: maxOutputTokens was accidentally hardcoded to undefined (Kilo-Org#10995) * fix: ensure variants for copilot models work w/ maxTokens being set * release: v1.1.41 * test: fix test * chore: generate * feat(cli): include cache tokens in stats (Kilo-Org#10582) * ci: adjust team * guard destroyed input field in timeout * feat: Sequential numbering for forked session titles (Issue Kilo-Org#10105) (Kilo-Org#10321) * more timeout race guards * fix: ensure that kimi doesnt have fake variants available * fix: frontmatter was adding newlines in some cases causing invalid model ids (Kilo-Org#11095) Co-authored-by: aptdnfapt <aptdnfapt@users.noreply.github.com> * fix: undo change that used anthropic messages endpoint for anthropic models on copilot due to ratelimiting issues, go back to completions endpoint instead * release: v1.1.42 * fix: fix types * fix: fix kilocode/sdk type * chore: update nix node_modules hashes --------- Co-authored-by: adamelmore <2363879+adamdottv@users.noreply.github.com> Co-authored-by: Idris Gadi <85882535+IdrisGit@users.noreply.github.com> Co-authored-by: Noam Bressler <noamzbr@gmail.com> Co-authored-by: Ariane Emory <97994360+ariane-emory@users.noreply.github.com> Co-authored-by: GitHub Action <action@github.com> Co-authored-by: Steffen Deusch <steffen@deusch.me> Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: Sebastian Herrlinger <hasta84@gmail.com> Co-authored-by: Ryan Vogel <ryan@mandarin3d.com> Co-authored-by: Sam Huckaby <samhuckaby@gmail.com> Co-authored-by: Alex Yaroshuk <34632190+alexyaroshuk@users.noreply.github.com> Co-authored-by: Rahul A Mistry <149420892+ProdigyRahul@users.noreply.github.com> Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: zerone0x <hi@trine.dev> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Aiden Cline <aidenpcline@gmail.com> Co-authored-by: Tim <hello@timsmart.co> Co-authored-by: David Hill <iamdavidhill@gmail.com> Co-authored-by: Fabio Martino <fabiomartino@users.noreply.github.com> Co-authored-by: Chris Yang <18487241+ysm-dev@users.noreply.github.com> Co-authored-by: Brendan Allan <git@brendonovich.dev> Co-authored-by: dpuyosa <dpuyosa@users.noreply.github.com> Co-authored-by: OpeOginni <107570612+OpeOginni@users.noreply.github.com> Co-authored-by: Frank <frank@anoma.ly> Co-authored-by: Rohan Godha <git@rohangodha.com> Co-authored-by: opencode <opencode@sst.dev> Co-authored-by: Tommy D. Rossi <beats.by.morse@gmail.com> Co-authored-by: James Murdza <james@jamesmurdza.com> Co-authored-by: Tito <github@mynameistito.com> Co-authored-by: Goni Zahavy <goni1993@gmail.com> Co-authored-by: Dax Raad <d@ironbay.co> Co-authored-by: Nattawee Phantawong <crozzio@gmail.com> Co-authored-by: Sairaj <sairaj2119@gmail.com> Co-authored-by: RenegadeE <37529469+YangTianz@users.noreply.github.com> Co-authored-by: yangtianzhe <yangtianzhe@corp.netease.com> Co-authored-by: Max Kong <kongzheyuan@outlook.com> Co-authored-by: Julian Coy <julian@juliancoy.com> Co-authored-by: Babou <42550761+bbabou@users.noreply.github.com> Co-authored-by: Devin Griffin <31415269+DNGriffin@users.noreply.github.com> Co-authored-by: tan <zerotanapok@gmail.com> Co-authored-by: Saba Tchikhinashvili <38084512+saba-ch@users.noreply.github.com> Co-authored-by: ideallove <20013535+ideallove@users.noreply.github.com> Co-authored-by: Benjamin Oldenburg <benjamin.oldenburg@ordis.co.th> Co-authored-by: aptdnfapt <aptdnfapt@users.noreply.github.com> Co-authored-by: marius-kilocode <marius@kilocode.ai>
NJ-2020
pushed a commit
to NJ-2020/kilocode
that referenced
this pull request
Jul 4, 2026
Co-authored-by: yangtianzhe <yangtianzhe@corp.netease.com>
Contributor
|
To stay organized pull requests are automatically closed after 30 days of inactivity. If the pull request is still relevant please reopen it or create a fresh new one. |
t7tran
pushed a commit
to t7tran/kilocode
that referenced
this pull request
Aug 14, 2026
* chore: details * fix(tui): add visual feedback for diff wrap and conceal toggles (Kilo-Org#10655) * fix: await SessionRevert.cleanup for shell (Kilo-Org#10669) * fix: Make diff wrapping toggle always available in command_list and correct a type error (resolves Kilo-Org#10682) (Kilo-Org#10683) * feat(app): default servers on web * fix(app): handle non-tool call permissions * fix(app): line selection waits on ready * wip(app): model settings * feat(app): model settings * chore: generate * wip(app): sidebar hover full * wip(app): full-height sidebar * wip(app): full-height sidebar * feat(app): better sidebar hover when collapsed * fix(app): query selector with non-latin chars * chore: stale-while-revalidate headers for changelog * chore: generate * feat(opencode): add agent description (Kilo-Org#10680) * feat: dynamically resolve AGENTS.md files from subdirectories as agent explores them (Kilo-Org#10678) * chore: gen changelog page off changelog json * upgrade opentui to v0.1.75 * chore: update nix node_modules hashes * fix: move changelog footer outside content div to fix padding (Kilo-Org#10712) * fix(app): Order themes alphabetically (Kilo-Org#10698) * fix(app): restore external link opening in system browser (Kilo-Org#10697) * fix(ui): use focus-visible instead of focus to prevent sticky hover effect on click (Kilo-Org#10651) * fix: add 44px top padding to sticky version header on changelog (Kilo-Org#10715) * feat(app): file tree * wip(app): file tree mode * wip(app): file tree mode * chore: cleanup * chore: cleanup * chore(app): createStore over signals * fix(enterprise): add message navigation to share page desktop view (Kilo-Org#10071) Co-authored-by: Claude <noreply@anthropic.com> * chore: fix changelog page * Revert "fix(app): restore external link opening in system browser (Kilo-Org#10697)" This reverts commit ead8bd3. * ignore: tweak ai deps * feat: use anthropic compat messages api for anthropic models through copilot * chore: debug changelog * fix: ensure openai 404 errors are retried (Kilo-Org#10590) * chore: generate * test(app): e2e test for sidebar nav * chore: refactor changelog * fix(app): session load cap * chore(app): missing i18n strings * chore: cleanup * fix(app): session sync issue * chore: generate * fix(ui): update button styles and disconnect button size * fix(app): set provider row height to 56px * fix(app): add hover text for env-connected providers * fix(app): use default cursor for env provider text * feat(ui): add providers icon and use in settings * feat(ui): add models icon and use in settings * fix(app): style view all button with interactive color and margin * feat(ui): add optional transition animations to dialog * fix(ui): prevent double-close and fix dialog replacement * feat(app): add transition to select provider dialog * feat(app): add transition to command palette * fix(ui): reduce dialog transition in time to 150ms * feat(app): add provider descriptions to settings * feat(app): add Vercel AI Gateway provider description * fix(ui): scope filetree pill tabs styling * fix(app): adjust filetree panel padding * fix(app): tighten filetree row spacing * fix(app): use chevron icons for filetree folders * fix(app): use medium font for filetree items * fix(app): refine filetree row spacing and indent * fix(app): reduce filetree folder indent * fix(app): dim non-deep filetree guide lines * fix(app): fade filetree guide lines on hover * fix(app): move file tree toggle to right * fix(app): disable tooltips in filetree tabs * test(app): fix e2e test * ci: add stale pr job * ci: add dry-run option to stale PR closer workflow Allows testing stale PR closure without actually closing PRs * tweak: retry logic to catch certain provider problems * fix(app): disconnect zen provider * fix(app): zen disconnect not working * chore: generate * chore: cleanup * fix: search clear icon * wip: new release modal - highlight key updates or new features - needs some transition love - all copy including text and video placeholder * chore: cleanup * wip: highlights * wip: highlights * wip: highlights * tweak: when using messages api for copilot, attach anthropic beta headers * chore: don't flip github draft release automatically * fix(app): file tree performance * fix(app): reactive file tree * chore: generate * chore: cleanup * fix(app): enable file watcher * chore: cleanup * chore: cleanup * test(app): file tree spec * feat(release): add highlights template to draft releases (Kilo-Org#10745) * docs: add Italian README (Kilo-Org#10732) * chore: generate * fix(app): add connect provier in model selector (Kilo-Org#10706) * fix(desktop): disable magnification gestures on macOS (Kilo-Org#10605) * feat: add /learn command to extract session learnings to scoped AGENTS.md files (Kilo-Org#10717) * fix: use Instance.directory instead of process.cwd() in read tool * fix(core): expose Instance.directory to custom tools * fix(app): only show files in select dialog when clicking + tab * desktop: deduplicate tauri configs * ignore: update download stats 2026-01-27 * fix(app): auto-scroll button sometimes sticks * chore(app): missing tooltips * feat(app): forward and back buttons * chore: cleanup * feat(core): add worktree to plugin tool context * fix(app): agent fallback colors * fix(app): non-fatal error handling * docs(core): plugin tool context updates * fix(ui): set filetree tablist height to 48px with centered content * fix(app): center filetree empty state with 32px top margin * fix(app): update review empty states to 14px and align select file empty state * fix(app): only show left border on plus button when sticky * fix(app): use smaller close icon on tabs to match comment cards * fix(ui): add max-width 280px to tabs with text truncation * fix(app): don't show session skeleton after workspace reset * perf(app): don't keep parts in memory * perf(app): cleanup connect provider timers * perf(app): shared terminal ghostty-web instance * fix(app): select model anchor * Revert "fix(app): select model anchor" This reverts commit 36babf5fc390fd9a892ad3742690740296d94a23. * fix(app): open markdown links in external browser * fix(app): navigate to tabs when opening file * chore(app): cleanup tailwind vs pure css * fix(app): tooltips causing getComputedStyle errors in model select * fix(app): swallow file search errors * feat(opencode): Handle Venice cache creation tokens (Kilo-Org#10735) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> * chore: generate * chore(docs): Better explanation on how to allow tools in external directories (Kilo-Org#10862) * tweak: adjust retry check to be more defensive * ci: make tests passing a requirement pre-release * zen: kimi k2.5 and minimax m2.1 * feat(app): update settings in general settings * chore(app): translations * test(app): new e2e smoke tests * feat(app): show loaded agents.md files * fix(app): session diffs not always loading * feat(app): improved layout * chore: generate * tweak: add recommended topP/temp for kimi k2.5 * Set temperature for kimi k2.5 * Revert "ci: make tests passing a requirement pre-release" This reverts commit 1a74d33. * Revert "Set temperature for kimi k2.5" This reverts commit 16d8d55. * feat(app): color filetree change dots by diff kind * feat(app): add filetree tooltips with diff labels * fix(app): shorten nav tooltips * fix(app): adjust titlebar left spacing * fix(app): delay nav tooltips * fix(app): align filetree change styling * fix(app): set filetree padding to 6px * fix(app): highlight selected change Track clicked file in the Changes tree and apply selection styling to the matching review diff. * chore(app): show 5 highlights * fix(app): auto-scroll * fix(app): don't connect to localhost through vpn * perf(app): better memory management * chore: cleanup * feat(desktop): i18n for tauri side * feat(desktop): tauri locales * fix(app): not auto-navigating to last project * chore: update nix node_modules hashes * fix(tui): handle 4-5 codes too in c to copy logic * fix(app): spinner color * fix(app): file tree not always loading * test(app): fix outdated e2e test * test(app): fix outdated e2e test * fix(app): file tree not always loading * fix(app): terminal corruption * feat(app): add 'connect provider' button to the manage models dialog (Kilo-Org#10887) * fix(app): auto-scroll * feat: support headless authentication for chatgpt/codex (Kilo-Org#10890) Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: Aiden Cline <aidenpcline@gmail.com> * fix(app): reintroduce review tab * release: v1.1.37 * feat(app): use opentui markdown component behind experimental flag (Kilo-Org#10900) * chore: generate * docs: add Daytona OpenCode plugin to ecosystem (Kilo-Org#10917) * chore: generate * fix(cli): restore brand integrity of CLI wordmark (Kilo-Org#10912) * zen: kimi k2.5 * fix(opencode): ensure unsub(PartUpdated) is always called in TaskTool (Kilo-Org#9992) * chore: generate * ignore: adjust flag * bump plugin version * ci * fix: ensure parallel tool calls dont double load AGENTS.md * release: v1.1.38 * fix: ensure copilot plugin properly sets headers for new messages api * chore: generate * release: v1.1.39 * bump: plugins * ignore: update download stats 2026-01-28 * chore(app): global config changes * feat(app): custom provider * chore: cleanup * wip(app): global config * chore: cleanup * chore: cleanup * chore: generate * feat(i18n): add th locale support (Kilo-Org#10809) * chore: generate * fix(desktop): enable ctrl+n and ctrl+p for popover navigation (Kilo-Org#10777) * fix: add SubtaskPart with metadata reference (Kilo-Org#10990) Co-authored-by: yangtianzhe <yangtianzhe@corp.netease.com> * chore: generate * fix(app): close review pane * fix(markdown): Add streaming prop to markdown element (Kilo-Org#11025) * release: v1.1.40 * fix(script): remove highlights template from release notes (Kilo-Org#11052) * chore: generate * fix(ui): allow KaTeX inline math to be followed by punctuation (Kilo-Org#11033) * fix(app): alignment and padding in dialogs (Kilo-Org#10866) * fix(app): fill missing zh keys to avoid English fallback (Kilo-Org#10841) * chore: generate * fix(opencode): normalize zh punctuation for Chinese UI (Kilo-Org#10842) * fix(ui): improve zh duration display formatting (Kilo-Org#10844) * fix(opencode): add `AbortSignal` support to `Ripgrep.files()` and `GlobTool` (Kilo-Org#10833) * fix(typescript errors): remove duplicate keys causing typescript failures (Kilo-Org#11071) * fix(app): file tabs - auto scroll on open & scroll via mouse wheel (Kilo-Org#11070) * tweak: add ctx.abort to grep tool * fix(app): types * docs: update experimental environment variables in CLI docs (Kilo-Org#11030) * fix(app): make settings more responsive for mobile and small web/desktop (Kilo-Org#10775) * chore: generate * fix(opencode): allow media-src data: URL for small audio files (Kilo-Org#11082) * fix(provider): include providerID in SDK cache key (Kilo-Org#11020) Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> * fix: maxOutputTokens was accidentally hardcoded to undefined (Kilo-Org#10995) * fix: ensure variants for copilot models work w/ maxTokens being set * release: v1.1.41 * test: fix test * chore: generate * feat(cli): include cache tokens in stats (Kilo-Org#10582) * ci: adjust team * guard destroyed input field in timeout * feat: Sequential numbering for forked session titles (Issue Kilo-Org#10105) (Kilo-Org#10321) * more timeout race guards * fix: ensure that kimi doesnt have fake variants available * fix: frontmatter was adding newlines in some cases causing invalid model ids (Kilo-Org#11095) Co-authored-by: aptdnfapt <aptdnfapt@users.noreply.github.com> * fix: undo change that used anthropic messages endpoint for anthropic models on copilot due to ratelimiting issues, go back to completions endpoint instead * release: v1.1.42 * fix: fix types * fix: fix kilocode/sdk type * chore: update nix node_modules hashes --------- Co-authored-by: adamelmore <2363879+adamdottv@users.noreply.github.com> Co-authored-by: Idris Gadi <85882535+IdrisGit@users.noreply.github.com> Co-authored-by: Noam Bressler <noamzbr@gmail.com> Co-authored-by: Ariane Emory <97994360+ariane-emory@users.noreply.github.com> Co-authored-by: GitHub Action <action@github.com> Co-authored-by: Steffen Deusch <steffen@deusch.me> Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: Sebastian Herrlinger <hasta84@gmail.com> Co-authored-by: Ryan Vogel <ryan@mandarin3d.com> Co-authored-by: Sam Huckaby <samhuckaby@gmail.com> Co-authored-by: Alex Yaroshuk <34632190+alexyaroshuk@users.noreply.github.com> Co-authored-by: Rahul A Mistry <149420892+ProdigyRahul@users.noreply.github.com> Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: zerone0x <hi@trine.dev> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Aiden Cline <aidenpcline@gmail.com> Co-authored-by: Tim <hello@timsmart.co> Co-authored-by: David Hill <iamdavidhill@gmail.com> Co-authored-by: Fabio Martino <fabiomartino@users.noreply.github.com> Co-authored-by: Chris Yang <18487241+ysm-dev@users.noreply.github.com> Co-authored-by: Brendan Allan <git@brendonovich.dev> Co-authored-by: dpuyosa <dpuyosa@users.noreply.github.com> Co-authored-by: OpeOginni <107570612+OpeOginni@users.noreply.github.com> Co-authored-by: Frank <frank@anoma.ly> Co-authored-by: Rohan Godha <git@rohangodha.com> Co-authored-by: opencode <opencode@sst.dev> Co-authored-by: Tommy D. Rossi <beats.by.morse@gmail.com> Co-authored-by: James Murdza <james@jamesmurdza.com> Co-authored-by: Tito <github@mynameistito.com> Co-authored-by: Goni Zahavy <goni1993@gmail.com> Co-authored-by: Dax Raad <d@ironbay.co> Co-authored-by: Nattawee Phantawong <crozzio@gmail.com> Co-authored-by: Sairaj <sairaj2119@gmail.com> Co-authored-by: RenegadeE <37529469+YangTianz@users.noreply.github.com> Co-authored-by: yangtianzhe <yangtianzhe@corp.netease.com> Co-authored-by: Max Kong <kongzheyuan@outlook.com> Co-authored-by: Julian Coy <julian@juliancoy.com> Co-authored-by: Babou <42550761+bbabou@users.noreply.github.com> Co-authored-by: Devin Griffin <31415269+DNGriffin@users.noreply.github.com> Co-authored-by: tan <zerotanapok@gmail.com> Co-authored-by: Saba Tchikhinashvili <38084512+saba-ch@users.noreply.github.com> Co-authored-by: ideallove <20013535+ideallove@users.noreply.github.com> Co-authored-by: Benjamin Oldenburg <benjamin.oldenburg@ordis.co.th> Co-authored-by: aptdnfapt <aptdnfapt@users.noreply.github.com> Co-authored-by: marius-kilocode <marius@kilocode.ai>
t7tran
pushed a commit
to t7tran/kilocode
that referenced
this pull request
Aug 14, 2026
Co-authored-by: yangtianzhe <yangtianzhe@corp.netease.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Issue
Fixes #10989
Context
Adds OrcaRouter as a selectable provider. OrcaRouter (https://www.orcarouter.ai) is an
OpenAI-compatible meta-router that routes a single API key across 80+ upstream models
(OpenAI, Anthropic, Google, DeepSeek, xAI, Qwen, etc.) and exposes an adaptive
orcarouter/autorouter.
OrcaRouter's catalog and API base already ship in the models.dev catalog this repo consumes
(provider id
orcarouter,api: https://api.orcarouter.ai/v1, envORCAROUTER_API_KEY), so thisPR does not embed any model definitions. The only client-side wiring needed is attribution
headers — the same treatment the other OpenAI-compatible meta-routers (openrouter, vercel,
zenmux, nvidia) already get.
Disclosure: I'm an engineer on the OrcaRouter team.
Implementation
OrcaRouter is registered as a custom loader in
kiloCustomLoaders(the Kilo-owned providermodule), mirroring the existing
opencode/openrouter/zenmuxentries:autoload: false— the provider activates once the user suppliesORCAROUTER_API_KEY(or auth). Provider id, env var, and base URL all come from the models.dev catalog entry;
no catalog is embedded in this repo.
DEFAULT_HEADERS(HTTP-Referer/X-Title/User-Agent) so OrcaRouter canattribute traffic to Kilo Code. User-configured headers still take precedence via the normal
provider-options merge.
No changes to shared upstream opencode files were required (the loader lives in
src/kilocode/provider/provider.ts, an annotation-exempt path).Scope note (pre-existing, not addressed here): as with the other meta-routers, attribution
headers are injected on the env/auth activation path. Configuring a provider purely via
opencode.jsonprovider.<id>.options.apiKeywithout the env var does not inject the defaultheaders, because the custom-loader pass runs before the config merge and
autoload: falseproviders are only merged once already loaded. This is existing cross-provider loader/config-merge
behavior (e.g.
nvidiabehaves identically) and is intentionally left out of this provider-additionPR rather than changing provider-initialization semantics here.
Screenshots / Video
N/A — no visual UI change (provider wiring only).
How to Test
Manual/local verification
ORCAROUTER_API_KEY=<key> bun devthen/modelslists OrcaRouter models (sourced live frommodels.dev); selecting one routes through
https://api.orcarouter.ai/v1with the Kiloattribution headers.
Reviewer test steps
packages/opencode/:bun test ./test/kilocode/orcarouter-headers.test.tsconfig-supplied header overrides while
HTTP-Refereris preserved.Blocked checks and substitute verification
bun turbo typecheckincludes@kilocode/kilo-jetbrains, which requires Java 21 (notavailable in my environment). Substitute: ran
bun run typecheckscoped topackages/opencode/(the only package touched) — passes with no errors.
Evidence (all executed by the agent locally):
bun test ./test/kilocode/orcarouter-headers.test.ts→ 2 pass / 0 failbun test ./test/provider/models.test.ts ./test/provider/provider.test.ts ./test/kilocode/nvidia-headers.test.ts→ 80 pass / 0 fail (fixture change does not regress)bun run typecheck(packages/opencode) → no errorsbun run lint→ 0 errorsbun run script/check-opencode-annotations.ts→ passChecklist