Skip to content

Remove model experiments from AI gateway and admin UI - #6088

Merged
chrarnoldus merged 18 commits into
mainfrom
remove-ai-gateway-model-experiments
Sep 24, 2026
Merged

chrarnoldus merged 18 commits into
mainfrom
remove-ai-gateway-model-experiments

Conversation

@chrarnoldus

@chrarnoldus chrarnoldus commented Sep 11, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • remove model-experiment membership, bucketing, direct routing, prompt capture, and usage attribution from the AI Gateway
  • stop publishing experiment models and remove their automatic-routing special cases
  • remove the Model Experiments and Experiment Requests admin tabs, legacy route, client hooks, prompt download endpoint, and dead R2 prompt-read plumbing
  • remove the orphaned model-experiment admin tRPC API and its test suite
  • retain historical database records while relocating the shared direct-provider helper out of the experiment namespace

Validation

  • pnpm format:changed
  • git diff --check
  • local tests intentionally skipped; CI will validate the change

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
@chrarnoldus chrarnoldus self-assigned this Sep 11, 2026
Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
@kilo-code-bot

kilo-code-bot Bot commented Sep 11, 2026 •

Copy link
Copy Markdown
Contributor

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Executive Summary

Incremental review at commit 5abb73560: removing the admin model-experiments tRPC router and its test suite is clean with no remaining references to the deleted procedures, and the main merge leaves the model-experiment removal internally consistent (no dangling imports, no removed-symbol usages, no dangling experiment picker/router references). No changed-code issues found.

Files Reviewed (58 files)
  • apps/web/src/app/admin/api/auto-routing/benchmark-config/route.test.ts
  • apps/web/src/app/admin/api/auto-routing/benchmark-config/route.ts
  • apps/web/src/app/admin/api/model-experiments/download/route.ts
  • apps/web/src/app/admin/api/model-experiments/hooks.ts
  • apps/web/src/app/admin/gateway/page.tsx
  • apps/web/src/app/admin/model-experiments/ModelExperimentRequestsContent.tsx
  • apps/web/src/app/admin/model-experiments/ModelExperimentsContent.tsx
  • apps/web/src/app/admin/model-experiments/page.tsx
  • apps/web/src/app/api/auto-routing/settings/route.test.ts
  • apps/web/src/app/api/gateway/audience-auth.integration.test.ts
  • apps/web/src/app/api/gateway/model-validation.integration.test.ts
  • apps/web/src/app/api/openrouter/[...path]/route.test.ts
  • apps/web/src/app/api/openrouter/[...path]/route.ts
  • apps/web/src/app/api/openrouter/models/route.test.ts
  • apps/web/src/app/api/openrouter/models/route.ts
  • apps/web/src/app/api/openrouter/models/validate/route.test.ts
  • apps/web/src/app/api/openrouter/models/validate/route.ts
  • apps/web/src/components/auto-routing/AutoRoutingModeCard.test.ts
  • apps/web/src/components/auto-routing/AutoRoutingModeCard.tsx
  • apps/web/src/lib/ai-gateway/auto-routing-pool-validation.test.ts
  • apps/web/src/lib/ai-gateway/auto-routing-pool-validation.ts
  • apps/web/src/lib/ai-gateway/experiments/list-available-experiment-models.test.ts
  • apps/web/src/lib/ai-gateway/experiments/list-available-experiment-models.ts
  • apps/web/src/lib/ai-gateway/experiments/membership.ts
  • apps/web/src/lib/ai-gateway/experiments/metadata-json.ts
  • apps/web/src/lib/ai-gateway/experiments/persist.test.ts
  • apps/web/src/lib/ai-gateway/experiments/persist.ts
  • apps/web/src/lib/ai-gateway/experiments/pick-variant.test.ts
  • apps/web/src/lib/ai-gateway/experiments/pick-variant.ts
  • apps/web/src/lib/ai-gateway/experiments/pick-variant.types.ts
  • apps/web/src/lib/ai-gateway/experiments/reserved-ids.ts
  • apps/web/src/lib/ai-gateway/is-free-model.ts
  • apps/web/src/lib/ai-gateway/kilo-exclusive-models.ts
  • apps/web/src/lib/ai-gateway/llm-proxy-helpers.test.ts
  • apps/web/src/lib/ai-gateway/llm-proxy-helpers.ts
  • apps/web/src/lib/ai-gateway/local-fake-llm.ts
  • apps/web/src/lib/ai-gateway/model-utils.ts
  • apps/web/src/lib/ai-gateway/models.test.ts
  • apps/web/src/lib/ai-gateway/processUsage.types.ts
  • apps/web/src/lib/ai-gateway/providers/build-direct-provider.test.ts
  • apps/web/src/lib/ai-gateway/providers/build-direct-provider.ts
  • apps/web/src/lib/ai-gateway/providers/get-provider.local-fake.test.ts
  • apps/web/src/lib/ai-gateway/providers/get-provider.ts
  • apps/web/src/lib/ai-gateway/providers/types.ts
  • apps/web/src/lib/ai-gateway/providers/upstream-attempt.ts
  • apps/web/src/lib/organizations/organization-auto-model.ts
  • apps/web/src/lib/organizations/organization-models.test.ts
  • apps/web/src/lib/organizations/organization-models.ts
  • apps/web/src/lib/r2/client.ts
  • apps/web/src/lib/r2/experiment-prompts.ts
  • apps/web/src/lib/redis-keys.ts
  • apps/web/src/lib/user/index.test.ts
  • apps/web/src/routers/admin-router.ts
  • apps/web/src/routers/admin/model-experiments-router.test.ts
  • apps/web/src/routers/admin/model-experiments-router.ts
  • apps/web/src/routers/organizations/organization-modes-router.test.ts
  • apps/web/src/routers/organizations/organization-settings-router.test.ts
  • apps/web/src/tests/openrouter-models.test.ts
Previous Review Summaries (4 snapshots, latest commit 396a1f6)

Current summary above is authoritative. Previous snapshots are kept for context only.

Previous review (commit 396a1f6)

Status: No Issues Found | Recommendation: Merge

Executive Summary

Incremental review at commit 396a1f60b: the model-experiment removal is internally consistent (no dangling references to removed symbols, the relocated build-direct-provider helper matches its former experiment-namespace implementation, and the admin tRPC APIs/DB records are intentionally retained), and the only line added since the previous review is a locale-aware casing fix required by the mobile case-guard test. No changed-code issues found.

Files Reviewed (57 files)
  • apps/mobile/src/lib/auth/passkey-client.ts
  • apps/web/src/app/admin/api/auto-routing/benchmark-config/route.test.ts
  • apps/web/src/app/admin/api/auto-routing/benchmark-config/route.ts
  • apps/web/src/app/admin/api/model-experiments/download/route.ts
  • apps/web/src/app/admin/api/model-experiments/hooks.ts
  • apps/web/src/app/admin/gateway/page.tsx
  • apps/web/src/app/admin/model-experiments/ModelExperimentRequestsContent.tsx
  • apps/web/src/app/admin/model-experiments/ModelExperimentsContent.tsx
  • apps/web/src/app/admin/model-experiments/page.tsx
  • apps/web/src/app/api/auto-routing/settings/route.test.ts
  • apps/web/src/app/api/gateway/audience-auth.integration.test.ts
  • apps/web/src/app/api/gateway/model-validation.integration.test.ts
  • apps/web/src/app/api/openrouter/[...path]/route.test.ts
  • apps/web/src/app/api/openrouter/[...path]/route.ts
  • apps/web/src/app/api/openrouter/models/route.test.ts
  • apps/web/src/app/api/openrouter/models/route.ts
  • apps/web/src/app/api/openrouter/models/validate/route.test.ts
  • apps/web/src/app/api/openrouter/models/validate/route.ts
  • apps/web/src/components/auto-routing/AutoRoutingModeCard.test.ts
  • apps/web/src/components/auto-routing/AutoRoutingModeCard.tsx
  • apps/web/src/lib/ai-gateway/auto-routing-pool-validation.test.ts
  • apps/web/src/lib/ai-gateway/auto-routing-pool-validation.ts
  • apps/web/src/lib/ai-gateway/experiments/build-direct-provider.ts (renamed to providers/build-direct-provider.ts)
  • apps/web/src/lib/ai-gateway/experiments/build-direct-provider.test.ts (renamed to providers/build-direct-provider.test.ts)
  • apps/web/src/lib/ai-gateway/experiments/list-available-experiment-models.test.ts
  • apps/web/src/lib/ai-gateway/experiments/list-available-experiment-models.ts
  • apps/web/src/lib/ai-gateway/experiments/membership.ts
  • apps/web/src/lib/ai-gateway/experiments/metadata-json.ts
  • apps/web/src/lib/ai-gateway/experiments/persist.test.ts
  • apps/web/src/lib/ai-gateway/experiments/persist.ts
  • apps/web/src/lib/ai-gateway/experiments/pick-variant.test.ts
  • apps/web/src/lib/ai-gateway/experiments/pick-variant.ts
  • apps/web/src/lib/ai-gateway/experiments/pick-variant.types.ts
  • apps/web/src/lib/ai-gateway/experiments/reserved-ids.ts
  • apps/web/src/lib/ai-gateway/is-free-model.ts
  • apps/web/src/lib/ai-gateway/llm-proxy-helpers.test.ts
  • apps/web/src/lib/ai-gateway/llm-proxy-helpers.ts
  • apps/web/src/lib/ai-gateway/local-fake-llm.ts
  • apps/web/src/lib/ai-gateway/model-utils.ts
  • apps/web/src/lib/ai-gateway/models.test.ts
  • apps/web/src/lib/ai-gateway/models.ts
  • apps/web/src/lib/ai-gateway/processUsage.types.ts
  • apps/web/src/lib/ai-gateway/providers/build-direct-provider.test.ts
  • apps/web/src/lib/ai-gateway/providers/build-direct-provider.ts
  • apps/web/src/lib/ai-gateway/providers/get-provider.local-fake.test.ts
  • apps/web/src/lib/ai-gateway/providers/get-provider.ts
  • apps/web/src/lib/ai-gateway/providers/types.ts
  • apps/web/src/lib/ai-gateway/providers/upstream-attempt.ts
  • apps/web/src/lib/organizations/organization-auto-model.ts
  • apps/web/src/lib/organizations/organization-models.test.ts
  • apps/web/src/lib/organizations/organization-models.ts
  • apps/web/src/lib/r2/client.ts
  • apps/web/src/lib/r2/experiment-prompts.ts
  • apps/web/src/lib/redis-keys.ts
  • apps/web/src/lib/user/index.test.ts
  • apps/web/src/routers/admin/model-experiments-router.ts
  • apps/web/src/routers/organizations/organization-modes-router.test.ts
  • apps/web/src/routers/organizations/organization-settings-router.test.ts
  • apps/web/src/tests/openrouter-models.test.ts

Verification

  • Repo-wide search found no remaining imports of @/lib/ai-gateway/experiments/* or references to removed symbols (isPublicIdExperimented, listAvailableExperimentModels, persistExperimentAttribution, buildExperimentPromptCapture, pickModelExperimentVariant, findExperimentReservedModelIds, EXPERIMENTED_PUBLIC_IDS_REDIS_KEY, r2ExperimentPromptsBucketName, ExperimentPromptCapture, experimentIds, experiment_model, the experiment ProviderId).
  • apps/web/src/lib/ai-gateway/providers/build-direct-provider.test.ts is byte-identical to the deleted experiment-namespace test, and the relocated helper only narrows the id parameter to 'custom'.
  • Retained references in routers/admin/model-experiments-router.ts (ROUTING_STATUSES, model_experiment_request) are intentional per the PR description.
  • The single new line (toLocaleLowerCase() in apps/mobile/src/lib/auth/passkey-client.ts) satisfies the repository's apps/mobile/src/lib/case-guard.test.ts, which rejects bare toLowerCase() calls.

Previous review (commit 35cfa22)

Status: No Issues Found | Recommendation: Merge

Executive Summary

Incremental review of commit 35cfa2240 ("Remove model experiment admin UI"), which deletes the model-experiment admin pages, request browser, prompt-download endpoint, and R2 prompt-read helper. The removal is internally consistent: no remaining code imports the deleted modules or removed symbols (r2ExperimentPromptsBucketName, getPromptByHash, parseMetadataJson, ModelExperimentsContent, ModelExperimentRequestsContent), and the gateway tab route was updated cleanly.

Files Reviewed (10 files)
  • apps/web/src/app/admin/api/model-experiments/download/route.ts (deleted)
  • apps/web/src/app/admin/api/model-experiments/hooks.ts (deleted)
  • apps/web/src/app/admin/gateway/page.tsx
  • apps/web/src/app/admin/model-experiments/ModelExperimentRequestsContent.tsx (deleted)
  • apps/web/src/app/admin/model-experiments/ModelExperimentsContent.tsx (deleted)
  • apps/web/src/app/admin/model-experiments/metadata-json.ts (deleted)
  • apps/web/src/app/admin/model-experiments/page.tsx (deleted)
  • apps/web/src/lib/r2/client.ts
  • apps/web/src/lib/r2/experiment-prompts.ts (deleted)
  • apps/web/src/lib/user/index.test.ts

Verified that apps/web/src/lib/r2/client.ts still compiles (only the unused optional export was removed), the jest.mock in apps/web/src/lib/user/index.test.ts remains syntactically valid, and repo-wide grep found no code references to the deleted admin UI modules or R2 helper (only an unrelated .plans/*.md design note).

Previous review (commit c5851e6)

Status: No Issues Found | Recommendation: Merge

Executive Summary

Incremental review of commit c5851e60f ("Preserve latest gateway routing cleanup"), which deletes the now-dead percentage-routed partner fallback retry block from the OpenRouter gateway route. The deletion is clean: no dangling references and no behavior change.

Files Reviewed (1 file in this increment)
  • apps/web/src/app/api/openrouter/[...path]/route.ts

Verified in the current file that attempt is now a valid const (its only reassignment lived in the removed block), after is still used, and the removed symbols (partnerFallback, warnExceptInTest, getPercentageRoutedPartnerProvider) have no remaining references. The other PR files were covered by the previous review at 96c0cf1b, which found no issues.

Previous review (commit 96c0cf1)

Status: No Issues Found | Recommendation: Merge

Executive Summary

Reviewed the model-experiment removal across 50 files; deletions are internally consistent, no stale imports/type references remain, and no high-confidence defects were found in the changed lines.

Files Reviewed (50 files)
  • apps/web/src/app/admin/api/auto-routing/benchmark-config/route.test.ts
  • apps/web/src/app/admin/api/auto-routing/benchmark-config/route.ts
  • apps/web/src/app/admin/model-experiments/ModelExperimentsContent.tsx
  • apps/web/src/app/admin/model-experiments/metadata-json.ts
  • apps/web/src/app/api/auto-routing/settings/route.test.ts
  • apps/web/src/app/api/gateway/audience-auth.integration.test.ts
  • apps/web/src/app/api/gateway/model-validation.integration.test.ts
  • apps/web/src/app/api/openrouter/[...path]/route.test.ts
  • apps/web/src/app/api/openrouter/[...path]/route.ts
  • apps/web/src/app/api/openrouter/models/route.test.ts
  • apps/web/src/app/api/openrouter/models/route.ts
  • apps/web/src/app/api/openrouter/models/validate/route.test.ts
  • apps/web/src/app/api/openrouter/models/validate/route.ts
  • apps/web/src/components/auto-routing/AutoRoutingModeCard.test.ts
  • apps/web/src/components/auto-routing/AutoRoutingModeCard.tsx
  • apps/web/src/lib/ai-gateway/auto-routing-pool-validation.test.ts
  • apps/web/src/lib/ai-gateway/auto-routing-pool-validation.ts
  • apps/web/src/lib/ai-gateway/experiments/list-available-experiment-models.test.ts (deleted)
  • apps/web/src/lib/ai-gateway/experiments/list-available-experiment-models.ts (deleted)
  • apps/web/src/lib/ai-gateway/experiments/membership.ts (deleted)
  • apps/web/src/lib/ai-gateway/experiments/persist.test.ts (deleted)
  • apps/web/src/lib/ai-gateway/experiments/persist.ts (deleted)
  • apps/web/src/lib/ai-gateway/experiments/pick-variant.test.ts (deleted)
  • apps/web/src/lib/ai-gateway/experiments/pick-variant.ts (deleted)
  • apps/web/src/lib/ai-gateway/experiments/pick-variant.types.ts (deleted)
  • apps/web/src/lib/ai-gateway/experiments/reserved-ids.ts (deleted)
  • apps/web/src/lib/ai-gateway/is-free-model.ts
  • apps/web/src/lib/ai-gateway/llm-proxy-helpers.test.ts
  • apps/web/src/lib/ai-gateway/llm-proxy-helpers.ts
  • apps/web/src/lib/ai-gateway/local-fake-llm.ts
  • apps/web/src/lib/ai-gateway/model-utils.ts
  • apps/web/src/lib/ai-gateway/models.test.ts
  • apps/web/src/lib/ai-gateway/models.ts
  • apps/web/src/lib/ai-gateway/processUsage.types.ts
  • apps/web/src/lib/ai-gateway/providers/build-direct-provider.test.ts
  • apps/web/src/lib/ai-gateway/providers/build-direct-provider.ts
  • apps/web/src/lib/ai-gateway/providers/get-provider.local-fake.test.ts
  • apps/web/src/lib/ai-gateway/providers/get-provider.ts
  • apps/web/src/lib/ai-gateway/providers/types.ts
  • apps/web/src/lib/ai-gateway/providers/upstream-attempt.ts
  • apps/web/src/lib/organizations/organization-auto-model.ts
  • apps/web/src/lib/organizations/organization-models.test.ts
  • apps/web/src/lib/organizations/organization-models.ts
  • apps/web/src/lib/r2/client.ts
  • apps/web/src/lib/r2/experiment-prompts.ts
  • apps/web/src/lib/redis-keys.ts
  • apps/web/src/routers/admin/model-experiments-router.ts
  • apps/web/src/routers/organizations/organization-modes-router.test.ts
  • apps/web/src/routers/organizations/organization-settings-router.test.ts
  • apps/web/src/tests/openrouter-models.test.ts

Verification performed: repository-wide scan for imports of the deleted experiments/* modules and removed symbols (isPublicIdExperimented, pickModelExperimentVariant, listAvailableExperimentModels, findExperimentReservedModelIds, persistExperimentAttribution, buildExperimentPromptCapture, ResolvedExperimentUpstream, EXPERIMENTED_PUBLIC_IDS_REDIS_KEY, putPromptOrNull), and inspection of current get-provider.ts, the openrouter route, the admin router, and r2/experiment-prompts.ts for dangling references and unused symbols. No stale references or type/lint breaks were identified.


Reviewed by deepseek-v4.1-flash · Input: 0 · Output: 0 · Cached: 0

Review guidance: REVIEW.md from base branch main

chrarnoldus and others added 6 commits September 16, 2026 00:02
…-experiments

# Conflicts:
#	apps/web/src/lib/ai-gateway/experiments/pick-variant.test.ts

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
…-experiments-20260918

# Conflicts:
#	apps/web/src/app/api/openrouter/[...path]/route.test.ts
#	apps/web/src/app/api/openrouter/[...path]/route.ts
#	apps/web/src/lib/ai-gateway/is-free-model.ts
#	apps/web/src/lib/ai-gateway/providers/get-provider.ts

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
…-experiments-20260918-1505

# Conflicts:
#	apps/web/src/app/api/openrouter/[...path]/route.test.ts
#	apps/web/src/app/api/openrouter/[...path]/route.ts
#	apps/web/src/lib/ai-gateway/providers/get-provider.ts
#	apps/web/src/lib/ai-gateway/providers/upstream-attempt.ts
#	apps/web/src/lib/organizations/organization-models.test.ts
#	apps/web/src/tests/openrouter-models.test.ts

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
…nt-ui-20260918

# Conflicts:
#	apps/web/src/lib/organizations/organization-models.test.ts

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
@chrarnoldus chrarnoldus changed the title Remove model experiments from AI gateway Remove model experiments from AI gateway and admin UI Sep 18, 2026
chrarnoldus and others added 5 commits September 19, 2026 16:48
…riments-20260919

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
…riments-20260922

# Conflicts:
#	apps/mobile/src/lib/auth/passkey-client.ts

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
…riments-20260922-1027

# Conflicts:
#	apps/web/src/app/api/openrouter/[...path]/route.ts
#	apps/web/src/lib/ai-gateway/providers/upstream-attempt.ts

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
…riments-20260922-1219

# Conflicts:
#	apps/web/src/app/admin/model-experiments/ModelExperimentsContent.tsx

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
chrarnoldus and others added 2 commits September 23, 2026 11:37
…riments-20260923

# Conflicts:
#	apps/web/src/app/admin/api/auto-routing/benchmark-config/route.test.ts

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
…riments-20260923-2052

# Conflicts:
#	apps/web/src/lib/ai-gateway/auto-routing-pool-validation.ts
#	apps/web/src/lib/ai-gateway/is-free-model.ts
#	apps/web/src/lib/ai-gateway/models.ts

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
@johnnyeric

Copy link
Copy Markdown
Contributor
Before After
Screenshot 2026-09-23 at 18 45 33 Screenshot 2026-09-23 at 18 45 45

@johnnyeric

johnnyeric commented Sep 23, 2026 •

Copy link
Copy Markdown
Contributor

Deployed the PR locally and verified. On the UI, the tabs are gone. On the backend, since there is no existent experiments in prod database the removed logic won't be hit and I found no major side effects.
Only one scenario might be worth checking, that a couple models defined with price 0 would show up in a model picker because the check for experiment was removed. I only validated the response locally, I need to check how to verify in prod too.

Removing the experiment picker rule also unhides any zero-price model that is not marked free. In the current OpenRouter catalog, that is only google/lyria-3-pro-preview and google/lyria-3-clip-preview. Both output audio as well as text. They can now appear in the Efficient pool picker, where the old rule kept them out. Saving one can still fail if it does not serve every chat API.

The picker is defined at:

The picker is isEligiblePoolModel in apps/web/src/components/auto-routing/AutoRoutingModeCard.tsx. It is rendered on /profile and /organizations/[id]/providers-and-models. The same filter is also used by the admin benchmarks section.

@chrarnoldus

Copy link
Copy Markdown
Contributor Author

Removing the experiment picker rule also unhides any zero-price model that is not marked free. In the current OpenRouter catalog, that is only google/lyria-3-pro-preview and google/lyria-3-clip-preview. Both output audio as well as text. They can now appear in the Efficient pool picker, where the old rule kept them out. Saving one can still fail if it does not serve every chat API.

I don't think this is a problem, if it serves text it should work.

chrarnoldus and others added 3 commits September 24, 2026 08:09
…riments-20260924

# Conflicts:
#	apps/web/src/app/admin/api/auto-routing/benchmark-config/route.test.ts

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
…nt-admin-router-20260924

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
@chrarnoldus
chrarnoldus merged commit a38e6a6 into main Sep 24, 2026
26 checks passed
@chrarnoldus
chrarnoldus deleted the remove-ai-gateway-model-experiments branch September 24, 2026 10:25
iscekic pushed a commit to Kilo-Org/kilocode that referenced this pull request Sep 26, 2026
…4554)

## Automated docs sync — 2026-09-25

This PR keeps kilo.ai/docs in sync with features merged to [Kilo-Org/cloud](https://github.com/Kilo-Org/cloud) and [Kilo-Org/kilocode](https://github.com/Kilo-Org/kilocode). Every change below links to the merged PR it documents.

- Window: `2026-09-24T07:08:33.639Z` → `2026-09-25T07:05:29.302Z`
- Verification (docs build + tests): **passing**

### Surface: `cloud-mobile`

- Assignees / requested reviewers: @iscekic and @eshurakov
- Derivation: Derived from the repository layout. A product surface is a package under packages/ that ships a distinct client, plugin, backend, or hosted service: cli = packages/opencode/ + packages/tui/ + packages/server/ + packages/sdk/ + packages/plugin/; vscode = packages/kilo-vscode/ + packages/kilo-web-ui/ + packages/kilo-ui/; jetbrains = packages/kilo-jetbrains/; gateway = packages/kilo-gateway/; web = packages/kilo-console/ + packages/kilo-indexing/ + packages/kilo-memory/ + packages/kilo-sandbox/. Docs route from the IA tree packages/kilo-docs/pages/ plus docs/jetbrains-vscode-settings-parity.md: each surface lists the pages sections that document it, and the per-platform pages under packages/kilo-docs/pages/code-with-ai/platforms/ map to the matching extension surface (the vscode/ directory to vscode, jetbrains.md to jetbrains). A doc path belongs to the surface with the longest matching prefix; a path that matches none of those prefixes falls to `other` (the explicit other prefixes are listed under other.docs). The cloud surfaces are derived the same way from the Kilo-Org/cloud layout: cloud-mobile = apps/mobile/, cloud-web = apps/web/, cloud-extension = apps/extension/, and cloud-agent = the cloud-agent packages under packages/ (packages/cloud-agent-sdk/ + packages/cloud-agent-profile/). A cloud source names its repository while a bare string still means this repository. The pages under packages/kilo-docs/pages/collaborate/ document the cloud web app (app.kilo.ai: teams dashboard, billing, SSO, adoption dashboard), so they route to cloud-web. No page under packages/kilo-docs/pages/ documents the browser side-panel extension yet, so cloud-extension lists no docs prefix.
- Map: `.github/docs-sync/surfaces.json`
- Surface map: `cli`, `vscode`, `jetbrains`, `gateway`, `web`, `cloud-mobile`, `cloud-web`, `cloud-extension`, `cloud-agent`, `other`
- Source prefixes: `apps/mobile/` (Kilo-Org/cloud)
- Doc prefixes: `packages/kilo-docs/pages/code-with-ai/platforms/mobile.md`
- Paths that fall to `other`: `packages/kilo-docs/pages/community/`, `packages/kilo-docs/pages/kiloclaw/`, `packages/kilo-docs/pages/contributing/`, `packages/kilo-docs/LEARNINGS.md`, `docs/`
- Reviewers are ranked from `Kilo-Org/cloud`; the workflow needs a token with `contents: read` on that repository (repository secret `CROSS_REPO_ACCESS_TOKEN`, exposed to the upsert step as `CLOUD_REPO_TOKEN`).
- How the two were computed: Reviewers for `cloud-mobile` are ranked from `Kilo-Org/cloud` git history over `apps/mobile/` (a commit 180 days old counts half as much, half-life 180 days). Bots (author type "Bot" or a login matching /\[bot\]$/i) and people without admin, write, or maintain permission are excluded.

### Changes

<!-- docs-sync:changes:start -->
| Docs change | Source |
| --- | --- |
| updated pages/code-with-ai/platforms/mobile.md | [Kilo-Org/cloud#6386](Kilo-Org/cloud#6386) |
| updated pages/ai-providers/openai-chatgpt-plus-pro.md | [Kilo-Org/cloud#6702](Kilo-Org/cloud#6702) |
| updated pages/code-with-ai/platforms/cloud-agent.md | [Kilo-Org/cloud#6683](Kilo-Org/cloud#6683) |
| updated pages/getting-started/byok.md | [Kilo-Org/cloud#6692](Kilo-Org/cloud#6692) |
<!-- docs-sync:changes:end -->

### Pending — will retry

<!-- docs-sync:pending:start -->
_None._
<!-- docs-sync:pending:end -->

### Considered, no docs change needed

<!-- docs-sync:skipped:start -->
| PR | Reason |
| --- | --- |
| [Kilo-Org/cloud#6658](Kilo-Org/cloud#6658) | Internal sandbox lifecycle fix with no user-visible workflow or setting. |
| [Kilo-Org/cloud#6673](Kilo-Org/cloud#6673) | Internal container CA trust plumbing, no user-facing behavior. |
| [Kilo-Org/cloud#6672](Kilo-Org/cloud#6672) | Internal sandbox launch/recovery fix with no documented workflow change. |
| [Kilo-Org/cloud#6660](Kilo-Org/cloud#6660) | Internal cloud-agent queue delivery fix; no new command, setting, or workflow for users. |
| [Kilo-Org/cloud#6226](Kilo-Org/cloud#6226) | Internal gateway alias-routing change, not user-visible. |
| [#14490](#14490) | Tool-call animation and streaming UI polish; users do not need to learn a new workflow. |
| [#14530](#14530) | Bug fix restoring intended worktree-pool behavior, no doc change needed. |
| [#14529](#14529) | Bug fix restoring tab/panel state across project switches. |
| [#14531](#14531) | Reconnect recovery bug fix, restores already-documented behavior. |
| [#14532](#14532) | Bug fix keeping session tab title in sync on rename. |
| [Kilo-Org/cloud#6088](Kilo-Org/cloud#6088) | Removes internal/admin model-experiment surfaces, not public product docs. |
| [Kilo-Org/cloud#6682](Kilo-Org/cloud#6682) | Internal control-socket reconnect race fix, no user-facing change. |
| [#14534](#14534) | Transcript re-render performance bug fix. |
| [#14535](#14535) | Bug fix preserving the loaded browser page across context switches. |
| [Kilo-Org/cloud#6684](Kilo-Org/cloud#6684) | Reverted by Kilo-Org/cloud#6685. |
| [Kilo-Org/cloud#6678](Kilo-Org/cloud#6678) | Dead-code constant removal, no user-visible effect. |
| [Kilo-Org/cloud#6687](Kilo-Org/cloud#6687) | Removes internal model-experiment maintenance and retains tables, no user-facing change. |
| [#14515](#14515) | JetBrains plugin unload crash fix, no documented behavior change. |
| [#14520](#14520) | JetBrains transcript/list rendering performance work. |
| [Kilo-Org/cloud#6614](Kilo-Org/cloud#6614) | Mobile PR Review header and session title bug fix, no doc change needed. |
| [Kilo-Org/cloud#6625](Kilo-Org/cloud#6625) | Internal mobile secure-store error-handling refactor. |
| [Kilo-Org/cloud#6624](Kilo-Org/cloud#6624) | Mobile auth bug fix that stops a retry loop; restores expected sign-in behavior with no new setting or workflow. |
| [#14310](#14310) | Contributor/CI fix making the kilo-v2 checkout installable; not user-visible product behavior. |
| [Kilo-Org/cloud#6611](Kilo-Org/cloud#6611) | Mobile notification-tap fix that selects the session's organization; restores correct behavior rather than adding a learnable feature. |
| [Kilo-Org/cloud#6644](Kilo-Org/cloud#6644) | Mobile sign-in layout/alignment polish; no change to what a user must do. |
| [Kilo-Org/cloud#6601](Kilo-Org/cloud#6601) | Mobile layout fix keeping empty states clear of the tab bar; purely visual. |
| [#14543](#14543) | CI/release infrastructure adding Windows binary code signing; no public docs impact. |
| [Kilo-Org/cloud#6616](Kilo-Org/cloud#6616) | Mobile visual defect fixes and a session-title fallback; no new user workflow or setting. |
| [Kilo-Org/cloud#6630](Kilo-Org/cloud#6630) | Reports an edge-case partial worktree restore; failure-path plumbing with no new user-facing workflow, target setting, or config. |
| [Kilo-Org/cloud#6699](Kilo-Org/cloud#6699) | Cloud Agent e2e stabilization plus internal idle-sandbox capacity handling; not user-visible. |
| [#14545](#14545) | Automated JetBrains release/changelog PR; underlying user-facing changes are triaged from their own PRs. |
| [Kilo-Org/cloud#6708](Kilo-Org/cloud#6708) | Internal AI-gateway request-logging policy change in the admin panel; no existing public docs surface and no change to how users run Kilo Code. |
| [#14533](#14533) | Documentation already shipped with the merged PR. The experimental.task_model_selection flag is gone from the current source, and pages/code-with-ai/agents/model-selection.md, pages/code-with-ai/agents/context-mentions.md, and pages/getting-started/settings/index.md already describe per-task selection as default-on with no stale experiment references. |
| [#14510](#14510) | Documentation already shipped with the merged PR. Marketplace companion-skill support is present in the current source (packages/opencode/src/kilocode/marketplace/companions.ts and installer), and pages/customize/marketplace.md already documents installing, publishing, and removing MCP servers with companion skills. |
<!-- docs-sync:skipped:end -->

---

(bot) Generated by the docs-sync workflow. Humans review and merge; while this PR stays open, the next daily run appends new changes here. Branch: `docs/auto-sync-2026-09-25`.
<!-- docs-sync: processed-through 2026-09-25T07:05:29.302Z -->
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