feat(changelog): add 50% discount and config updates - #892
Conversation
Add a new changelog entry highlighting the 50% discount on Claude Code via RouteWay. Update configuration examples for optional model selection with clarified defaults. Remove outdated tool support note for cleanliness.
WalkthroughUpdated several documentation and changelog files: finalized a draft changelog, added a new promo changelog, updated Anthropic docs example model reference, and modified a blog post to remove provider-specific model examples and add an explicit "now run claude" example. Changes
Sequence Diagram(s)Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Suggested reviewers
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches🧪 Generate unit tests
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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 4
🧹 Nitpick comments (3)
apps/ui/src/content/changelog/2025-09-08-claude-code-configuration-support.md (1)
7-11: Brand naming consistency in alt text.Alt uses “LLM Gateway” while the rest of the page uses “LLMGateway”. Standardize to one form.
- alt: "Claude Code configuration support on LLM Gateway" + alt: "Claude Code configuration support on LLMGateway"apps/ui/src/content/changelog/2025-09-19-claude-code-50-percent-off.md (2)
22-26: Consider inlining the optional model line with the primary setup block.Reduces friction: users copy one block and are done.
export ANTHROPIC_BASE_URL=https://api.llmgateway.io export ANTHROPIC_AUTH_TOKEN=llmgtwy_.... # your llmgateway.io api key here - -``` - -### Optional Variable - -```shell -# optionally, choose your model, otherwise it will use the default Claude model via LLMGateway -export ROUTEWAY_MODEL=gpt-5 +# optionally, choose your model (provider/model); otherwise the default Claude model via LLMGateway is used +export ANTHROPIC_MODEL=openai/gpt-5
14-17: Add an explicit end date/timezone for the discount.Clarifies eligibility and avoids support churn.
-🎉 **Limited Time: 50% Off Claude Code via RouteWay!** +🎉 **Limited Time: 50% Off Claude Code via RouteWay!** (valid until 2025-10-05 23:59 UTC)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
apps/ui/src/content/changelog/2025-09-08-claude-code-configuration-support.md(1 hunks)apps/ui/src/content/changelog/2025-09-19-claude-code-50-percent-off.md(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
- GitHub Check: build / run
- GitHub Check: test / run
- GitHub Check: autofix
🔇 Additional comments (1)
apps/ui/src/content/changelog/2025-09-08-claude-code-configuration-support.md (1)
51-51: Verified — blog route exists.
Content file apps/ui/src/content/blog/2025-09-08-how-configure-claude-code-with-llmgateway.md exists (slug: how-to-configure-claude-code-with-llmgateway); changelog link /blog/how-to-configure-claude-code-with-llmgateway is correct.
| # optionally, choose your model, otherwise it will use the default Claude model via LLMGateway | ||
| export ANTHROPIC_MODEL=gpt-5 # choose your model with tool support | ||
| ``` |
There was a problem hiding this comment.
Align model value format with the “Popular Model Options” list (provider/model).
Example list items use provider-qualified names (e.g., openai/gpt-5), but the snippet sets ANTHROPIC_MODEL=gpt-5. This can confuse users and may not route as intended if aliases aren’t supported. Prefer a fully qualified value or explicitly document alias support.
Apply this diff:
-# optionally, choose your model, otherwise it will use the default Claude model via LLMGateway
-export ANTHROPIC_MODEL=gpt-5 # choose your model with tool support
+# optionally, choose your model (provider/model); otherwise the default Claude model via LLMGateway is used
+export ANTHROPIC_MODEL=openai/gpt-5 # choose your model with tool supportCommittable suggestion skipped: line range outside the PR's diff.
🤖 Prompt for AI Agents
In apps/ui/src/content/changelog/2025-09-08-claude-code-configuration-support.md
around lines 23 to 25, the example sets ANTHROPIC_MODEL=gpt-5 which is
inconsistent with the "Popular Model Options" that use provider-qualified names;
update the snippet to use a fully-qualified provider/model value (e.g.,
anthropic/gpt-5) or add a short note stating that unqualified aliases like
"gpt-5" are supported by the system, and ensure the example and surrounding text
consistently use the provider-qualified format.
| id: "20" | ||
| slug: "claude-code-50-percent-off" | ||
| date: "2025-09-19" |
There was a problem hiding this comment.
🧩 Analysis chain
Ensure id/slug uniqueness across changelog entries.
Conflicts can break listings or routes.
🏁 Script executed:
#!/bin/bash
# Check duplicate ids
rg -n '^id:\s*"[0-9]+"' apps/ui/src/content/changelog | awk -F'"' '{print $2}' | sort | uniq -d
# Check duplicate slugs
rg -n '^slug:\s*"' apps/ui/src/content/changelog | awk -F'"' '{print $2}' | sort | uniq -dLength of output: 2
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "Searching for files with id \"19\" under apps/ui/src/content/changelog..."
rg -n -S '^id:\s*"19"' apps/ui/src/content/changelog || true
echo
echo "Unique files containing id \"19\":"
rg -l -S '^id:\s*"19"' apps/ui/src/content/changelog || true
echo
echo "Showing id/slug lines for each matched file:"
rg -l -S '^id:\s*"19"' apps/ui/src/content/changelog || true | while IFS= read -r f; do
echo "---- $f ----"
rg -n -S '^(id|slug):' "$f" || true
doneLength of output: 599
Duplicate changelog id "19" found — fix required
id "19" appears in:
- apps/ui/src/content/changelog/2025-09-08-claude-code-configuration-support.md
- apps/ui/src/content/changelog/2025-09-11-alibaba-qwen-models.md
Assign a unique id to one of these entries (and verify slugs) to avoid broken listings/routes.
🤖 Prompt for AI Agents
In apps/ui/src/content/changelog/2025-09-19-claude-code-50-percent-off.md around
lines 2–4, there are duplicate changelog ids (id "19" already used in
2025-09-08-claude-code-configuration-support.md and
2025-09-11-alibaba-qwen-models.md); pick a unique id value (one not present in
any other changelog file), update the id field in the appropriate file to that
unique number, and verify the corresponding slug(s) remain correct so
routes/listings are not broken.
| src: "/changelog/claude-code-50-percent-off-09-19.png" | ||
| alt: "Claude Code 50% off limited time offer" | ||
| width: 1768 | ||
| height: 677 |
There was a problem hiding this comment.
🧩 Analysis chain
Verify image asset exists and dimensions are correct.
Prevent broken images on the changelog page.
🏁 Script executed:
#!/bash
# Check image exists anywhere in the repo
fd -a 'claude-code-50-percent-off-09-19.png'
# Optional: spot-check other changelog images referenced by this PR
rg -n '\/changelog\/.*\.png' apps/ui/src/content/changelog -nLength of output: 86
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "Searching for exact image filename..."
if command -v fd >/dev/null 2>&1; then
fd -HI --hidden --follow 'claude-code-50-percent-off-09-19.png' || true
else
rg --files | rg -n 'claude-code-50-percent-off-09-19.png' || true
fi
echo
echo "Listing PNG references under apps/ui/src/content/changelog..."
rg -n --hidden -S '/changelog/.*\.png' apps/ui/src/content/changelog || true
# If the file is found, attempt to print filesystem info and image dimensions
file_path=$(fd -HI --hidden --follow 'claude-code-50-percent-off-09-19.png' -0 2>/dev/null | tr '\0' '\n' | head -n1 || true)
if [ -n "$file_path" ]; then
echo
echo "Found image at: $file_path"
ls -l "$file_path" || true
if command -v identify >/dev/null 2>&1; then
identify -format "identify: %w %h\n" "$file_path" || true
else
python - <<'PY' || true
import sys
p = sys.argv[1]
try:
from PIL import Image
except Exception as e:
print("Pillow not installed; skipping dimension check:", e)
raise SystemExit(0)
try:
img = Image.open(p)
print("PIL dims: {}x{}".format(img.width, img.height))
except Exception as e:
print("Failed to read image dimensions:", e)
PY "$file_path"
fi
else
echo
echo "Image not found in repo."
fiLength of output: 3436
Missing changelog image — file not in repo; add or fix path
- apps/ui/src/content/changelog/2025-09-19-claude-code-50-percent-off.md (lines 8–11) references /changelog/claude-code-50-percent-off-09-19.png but the image asset is not present in the repository — add the image to the appropriate static/changelog directory or update the src to an existing asset.
- Frontmatter sets width: 1768 and height: 677 — ensure the committed image matches these dimensions or update the width/height values.
🤖 Prompt for AI Agents
In apps/ui/src/content/changelog/2025-09-19-claude-code-50-percent-off.md around
lines 8 to 11 the frontmatter references
/changelog/claude-code-50-percent-off-09-19.png which is missing from the repo;
add the PNG to the app's static/changelog directory (e.g.
apps/ui/public/static/changelog/) using the exact filename and case, or update
the src to point to an existing asset path; ensure the committed image matches
the frontmatter width: 1768 and height: 677 (or update those values to the
image's actual pixel dimensions), then commit the image and frontmatter change
so the path resolves in production.
| ```shell | ||
| # optionally, choose your model, otherwise it will use the default Claude model via LLMGateway | ||
| export ROUTEWAY_MODEL=gpt-5 | ||
| ``` |
There was a problem hiding this comment.
ROUTEWAY_MODEL likely not read by Claude Code; use ANTHROPIC_MODEL for consistency.
Claude Code typically reads ANTHROPIC_* vars. Introducing ROUTEWAY_MODEL risks copy‑paste breakage. Recommend using ANTHROPIC_MODEL with provider/model values, matching the 2025‑09‑08 post.
-# optionally, choose your model, otherwise it will use the default Claude model via LLMGateway
-export ROUTEWAY_MODEL=gpt-5
+# optionally, choose your model (provider/model); otherwise the default Claude model via LLMGateway is used
+export ANTHROPIC_MODEL=openai/gpt-5📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| ```shell | |
| # optionally, choose your model, otherwise it will use the default Claude model via LLMGateway | |
| export ROUTEWAY_MODEL=gpt-5 | |
| ``` |
🤖 Prompt for AI Agents
In apps/ui/src/content/changelog/2025-09-19-claude-code-50-percent-off.md around
lines 30 to 33, the snippet sets ROUTEWAY_MODEL which Claude Code likely won't
read; change the environment variable to ANTHROPIC_MODEL and provide the
provider/model format used elsewhere (e.g.
ANTHROPIC_MODEL="anthropic/claude-2.1" or similar) so the runtime reads the
correct variable consistently with the 2025-09-08 post.
Corrected example configuration to use "ANTHROPIC_MODEL" instead of the outdated "ROUTEWAY_MODEL" in the changelog.
Added the missing "claude" command to examples across docs, blog, and changelog. Removed outdated model examples for clarity.
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (6)
apps/ui/src/content/blog/2025-09-08-how-configure-claude-code-with-llmgateway.md (6)
33-35: Good addition; add a quick “installed?” sanity check before running.A one-liner helps users who haven’t installed the Claude CLI yet.
# now run claude! +# (optional) verify the CLI is installed and on PATH +claude --version || echo "Claude CLI not found. See the official install docs." claude
31-33: Align the example model with the rest of the doc or omit it to use the default.You show gpt-5 here, but later examples use OpenAI gpt‑4o* and Anthropic Sonnet variants. Pick one canonical example or omit to rely on the default to avoid confusion.
Option A (prefer consistency with later Anthropic example):
-# optionally, choose your model, otherwise it will use the default Claude model via LLMGateway -export ANTHROPIC_MODEL=gpt-5 # choose your model on llmgateway which supports tool calls +# optionally, choose your model (omit to use the default Claude model via LLMGateway) +export ANTHROPIC_MODEL=anthropic/claude-sonnet-4-20250514 # must support tool callsOption B (omit to lean on default and reduce churn):
-# optionally, choose your model, otherwise it will use the default Claude model via LLMGateway -export ANTHROPIC_MODEL=gpt-5 # choose your model on llmgateway which supports tool calls +# omit ANTHROPIC_MODEL to use LLMGateway’s default Claude model for tool callsAlso confirm the exact default model identifier used by LLMGateway and document it here.
19-21: “50% off for a limited time” needs timeframe or link to terms.Add an effective/expiry date or a link to promo terms to avoid stale or non‑compliant claims.
48-64: Model identifier consistency.You mix “openai/gpt-5”, “openai/gpt‑4o‑mini”, “anthropic/claude‑3‑5‑sonnet‑20241022”, and “anthropic/claude‑sonnet‑4‑20250514”. Standardize or add a note that identifiers evolve and to consult the Models page for the latest.
28-33: Clarify the default behavior.You say “otherwise it will use the default Claude model,” but the exact default isn’t named. Document the concrete default identifier to make behavior predictable.
73-77: API key handling: add a brief security note.Suggest warning users not to commit shell profiles and to rotate tokens if exposed. Consider pointing to using .env files or a secrets manager.
echo 'export ANTHROPIC_AUTH_TOKEN=llmgtwy_your_key_here' >> ~/.zshrc echo 'export ANTHROPIC_MODEL=openai/gpt-4o' >> ~/.zshrc source ~/.zshrc +# Security tip: never commit shell profiles; rotate tokens if leaked; consider a .env file or a secrets manager.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (4)
apps/docs/content/features/anthropic-endpoint.mdx(1 hunks)apps/ui/src/content/blog/2025-09-08-how-configure-claude-code-with-llmgateway.md(1 hunks)apps/ui/src/content/changelog/2025-09-08-claude-code-configuration-support.md(1 hunks)apps/ui/src/content/changelog/2025-09-19-claude-code-50-percent-off.md(1 hunks)
✅ Files skipped from review due to trivial changes (1)
- apps/docs/content/features/anthropic-endpoint.mdx
🚧 Files skipped from review as they are similar to previous changes (2)
- apps/ui/src/content/changelog/2025-09-08-claude-code-configuration-support.md
- apps/ui/src/content/changelog/2025-09-19-claude-code-50-percent-off.md
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
- GitHub Check: build / run
- GitHub Check: test / run
- GitHub Check: generate / run
- GitHub Check: lint / run
- GitHub Check: autofix
Add a new changelog entry highlighting the 50% discount on Claude Code via RouteWay. Update configuration examples for optional model selection with clarified defaults. Remove outdated tool support note for cleanliness.
Summary by CodeRabbit