Skip to content

fix: revert remove routeway provider - #1680

Closed
smakosh wants to merge 1 commit into
mainfrom
revert-1677-chore/remove-routeway-provider
Closed

smakosh wants to merge 1 commit into
mainfrom
revert-1677-chore/remove-routeway-provider

Conversation

@smakosh

@smakosh smakosh commented Feb 17, 2026

Copy link
Copy Markdown
Member

Reverts #1677

Summary by CodeRabbit

  • New Features

    • Added Routeway provider integration with multiple AI models
    • Introduced free model options including DeepSeek R1T2 Chimera, GLM-4.5 Air, Kimi K2, and others with zero-cost tokens
    • Special promotion: Claude Code now available at 50% discount via Routeway
  • Documentation

    • Added guides for configuring and using Routeway free models
    • Documented Claude Code discount offer with setup instructions

@coderabbitai

coderabbitai Bot commented Feb 17, 2026

Copy link
Copy Markdown
Contributor

Walkthrough

This PR adds comprehensive support for the Routeway LLM provider throughout the application. It includes environment variable configuration, provider registration, model definitions, streaming response handling, UI components, and documentation for free model offerings and promotional discounts.

Changes

Cohort / File(s) Summary
Configuration & Environment
.env.example, .env.unified.example, .github/workflows/e2e.yml, .run/dev.run.xml
Added Routeway-related environment variables (API keys and discount base URL) for development and CI/CD pipeline configuration.
Provider & Model Definitions
packages/models/src/providers.ts, packages/models/src/models.ts, packages/models/src/models/routeway.ts
Registered Routeway as a new provider with configuration and added 188 lines of model definitions for free and premium models offered through Routeway.
Gateway Streaming & Chat Handling
apps/gateway/src/chat/chat.ts, apps/gateway/src/chat/tools/transform-streaming-to-openai.ts, apps/gateway/src/lib/costs.spec.ts
Added Routeway provider case to streaming transformation with finish reason mappings, finishReason guard logic, and test documentation comments.
Provider Endpoint Resolution
packages/actions/src/get-provider-endpoint.ts
Added Routeway base URL (https://api.routeway.ai) to provider endpoint resolution logic.
UI & Icons
apps/ui/src/components/landing/hero.tsx, apps/ui/src/components/provider-keys/provider-logo.ts, packages/shared/src/components/provider-icons.tsx
Added Routeway provider to hero landing page, created RoutewayIcon component (41 lines), and registered icon mappings.
E2E Testing
apps/api/src/routes/keys-provider.e2e.ts
Extended test skip logic to exclude Routeway provider from specific test routes.
Documentation & Changelog
apps/docs/content/guides/cursor.mdx, apps/ui/src/content/changelog/2025-09-02-routeway-free-models.md, apps/ui/src/content/changelog/2025-09-19-claude-code-50-percent-off.md
Added documentation for free model options, new changelog entries for Routeway free models (94 lines) and Claude Code promotional offering (42 lines).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~35 minutes

Possibly related PRs

Suggested labels

auto-merge

Suggested reviewers

  • steebchen
🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'fix: revert remove routeway provider' accurately describes the main change: reverting the removal of the Routeway provider. It is specific, concise, and clearly summarizes the changeset.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch revert-1677-chore/remove-routeway-provider

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@smakosh smakosh changed the title Revert "chore: remove routeway provider" fix: revert remove routeway provider Feb 17, 2026
@smakosh
smakosh enabled auto-merge February 17, 2026 10:30
@smakosh
smakosh disabled auto-merge February 17, 2026 10:30

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (3)
packages/shared/src/components/provider-icons.tsx (1)

621-658: Inconsistent default icon size and potential clipPath id collision.

Two observations:

  1. Size inconsistency: The default className uses h-14 w-14, while most other icons in this file (Mistral, OpenAI, Perplexity, etc.) default to h-10 w-10. This may cause the Routeway icon to render larger than other provider icons in shared UI contexts.

  2. Generic clipPath id: The clipPath uses id="a", which could collide with other SVGs on the same page. Consider using a more unique id (e.g., routeway-clip) or using React.useId() like MinimaxIcon does for its gradient.

Suggested fix for size consistency and id uniqueness
 export const RoutewayIcon: React.FC<React.SVGProps<SVGSVGElement>> = (
 	props,
 ) => (
 	<svg
 		{...props}
-		className={cn("h-14 w-14 text-black dark:text-white", props.className)}
+		className={cn("h-10 w-10 text-black dark:text-white", props.className)}
 		xmlns="http://www.w3.org/2000/svg"
 		viewBox="900 200 800 1000"
 	>
 		<defs>
-			<clipPath clipPathUnits="userSpaceOnUse" id="a">
-				<path d="M-1213.3696 448.07749h1920v-1080h-1920Z" />
+			<clipPath clipPathUnits="userSpaceOnUse" id="routeway-clip">
+				<path d="M-1213.3696 448.07749h1920v-1080h-1920Z" />
 			</clipPath>
 		</defs>

And update the reference:

-			clipPath="url(`#a`)"
+			clipPath="url(`#routeway-clip`)"
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/shared/src/components/provider-icons.tsx` around lines 621 - 658,
The RoutewayIcon component has an inconsistent default size and a generic
clipPath id that may collide; update RoutewayIcon so its default className
matches other icons (change "h-14 w-14" to "h-10 w-10" on the className prop)
and replace the generic clipPath id "a" (and its reference clipPath="url(`#a`)")
with a unique id such as "routeway-clip" (or generate a scoped id via
React.useId()) and update the clipPath attribute to match the new id.
apps/api/src/routes/keys-provider.e2e.ts (1)

129-134: Clarify the TODO to match the actual skip list.

The comment mentions only Routeway/NanoGPT but the guard also skips inference.net—consider updating the TODO (or adding a tracking issue) so it stays accurate.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/api/src/routes/keys-provider.e2e.ts` around lines 129 - 134, Update the
TODO so it accurately reflects the full skip list used by the conditional
checking providerId (the if guard that compares providerId to "routeway",
"inference.net", and "nanogpt"); either expand the comment to list all three
providers or replace it with a clearer note and/or a reference to a tracking
issue describing why these providers are skipped and when to remove the guard.
packages/models/src/models/routeway.ts (1)

15-16: inputPrice: 0.0 / 1e6 is a no-op expression repeated across all entries.

Since all models are free, you could simplify to inputPrice: 0 and outputPrice: 0 directly. The / 1e6 pattern makes sense for paid models (price per million tokens), but for zero prices it's pure noise. This is purely a readability nit — fine to keep if you prefer consistency with other provider files.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/models/src/models/routeway.ts` around lines 15 - 16, The model
entries currently set inputPrice: 0.0 / 1e6 and outputPrice: 0.0 / 1e6 (a no-op)
— replace these expressions with simple numeric zeros by setting inputPrice: 0
and outputPrice: 0 in the model definitions (the objects that define each
model's pricing, where inputPrice and outputPrice are declared) to improve
readability while preserving the semantics.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@apps/ui/src/content/changelog/2025-09-02-routeway-free-models.md`:
- Around line 5-6: The markdown references "5 New Free Models" in the
title/summary but only documents four; add a new GPT-4.1 model section to the
same file so the count matches. Locate the existing model sections (headings for
"DeepSeek R1T2 Chimera", "GLM-4.5 Air", "Kimi K2", "GPT-OSS 20B") and insert a
parallel heading "GPT-4.1" with a short descriptive paragraph that notes it is
available free via RouteWay, any relevant usage limits or features, and a link
or callout consistent with the other model entries so formatting and tone match.
Ensure the summary/title still accurately reflect five models after adding this
section.

---

Nitpick comments:
In `@apps/api/src/routes/keys-provider.e2e.ts`:
- Around line 129-134: Update the TODO so it accurately reflects the full skip
list used by the conditional checking providerId (the if guard that compares
providerId to "routeway", "inference.net", and "nanogpt"); either expand the
comment to list all three providers or replace it with a clearer note and/or a
reference to a tracking issue describing why these providers are skipped and
when to remove the guard.

In `@packages/models/src/models/routeway.ts`:
- Around line 15-16: The model entries currently set inputPrice: 0.0 / 1e6 and
outputPrice: 0.0 / 1e6 (a no-op) — replace these expressions with simple numeric
zeros by setting inputPrice: 0 and outputPrice: 0 in the model definitions (the
objects that define each model's pricing, where inputPrice and outputPrice are
declared) to improve readability while preserving the semantics.

In `@packages/shared/src/components/provider-icons.tsx`:
- Around line 621-658: The RoutewayIcon component has an inconsistent default
size and a generic clipPath id that may collide; update RoutewayIcon so its
default className matches other icons (change "h-14 w-14" to "h-10 w-10" on the
className prop) and replace the generic clipPath id "a" (and its reference
clipPath="url(`#a`)") with a unique id such as "routeway-clip" (or generate a
scoped id via React.useId()) and update the clipPath attribute to match the new
id.

Comment on lines +5 to +6
title: "Enhanced Auto-Routing & 5 New Free Models via RouteWay"
summary: "Expanding auto-routing options & access DeepSeek R1T2 Chimera, GLM-4.5 Air, Kimi K2, GPT-OSS 20B, and GPT-4.1 completely free through our RouteWay integration."

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.

⚠️ Potential issue | 🟡 Minor

Missing GPT-4.1 model section.

The title and summary mention "5 New Free Models" including GPT-4.1, but only 4 models have detailed sections (DeepSeek R1T2 Chimera, GLM-4.5 Air, Kimi K2, GPT-OSS 20B). The GPT-4.1 section appears to be missing.

Also applies to: 40-83

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/ui/src/content/changelog/2025-09-02-routeway-free-models.md` around
lines 5 - 6, The markdown references "5 New Free Models" in the title/summary
but only documents four; add a new GPT-4.1 model section to the same file so the
count matches. Locate the existing model sections (headings for "DeepSeek R1T2
Chimera", "GLM-4.5 Air", "Kimi K2", "GPT-OSS 20B") and insert a parallel heading
"GPT-4.1" with a short descriptive paragraph that notes it is available free via
RouteWay, any relevant usage limits or features, and a link or callout
consistent with the other model entries so formatting and tone match. Ensure the
summary/title still accurately reflect five models after adding this section.

@steebchen steebchen closed this Feb 17, 2026
@steebchen
steebchen deleted the revert-1677-chore/remove-routeway-provider branch February 17, 2026 11:17
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