Sign in with GitHub
Powered by Upstage upstage/solar-pro4

Light up your code

Connect a repository and CodeSolar reviews every pull request from then on. Bugs, security, and performance issues land on the exact line — with a fix you can apply.

No credit card · One webhook per repo · Disconnect anytime

github.com/acme/payments-api/pull/482
CodeSolarbotreviewed 12 files
🔆 CodeSolar review  🔴 Changes recommended

Adds exponential backoff to payment retries. The retry loop does not reuse the idempotency key, risking double charges.

Critical 1Medium 2
src/billing/retry.ts
  41   for (let i = 0; i < maxRetries; i++) {
  42 +   const key = crypto.randomUUID();
  43 +   await charge(customer, amount, key);
🛑 Critical · bug — A new idempotency key per retry causes double charges

randomUUID() is inside the loop, so retries look like distinct requests to the payment gateway. If the first request timed out but actually succeeded, the customer is charged twice. Generate the key once, outside the loop.

Suggested fix
  const key = crypto.randomUUID();
  for (let i = 0; i < maxRetries; i++) {
    await charge(customer, amount, key);

This is what CodeSolar actually leaves on a pull request.

Three steps, and you're done

No config file. No CI changes.

  1. 01
    Sign in with GitHub

    One OAuth sign-in and every repository you can reach shows up.

  2. 02
    Connect a repository

    One toggle installs the webhook. No clone, no runner.

  3. 03
    Open a pull request

    From then on every PR gets a Solar-Pro4 review automatically.

🎯
Comments land on the right line

The diff goes to the model with real line numbers rendered in the margin, and every line it returns is checked back against the diff. No comments on the wrong line.

🤫
It doesn't nag

Formatting, import order, and semicolons belong to your linter. CodeSolar looks at bugs, security, performance, and design. You set the severity floor per repo.

🧩
Fixes you can apply

It leaves a GitHub suggestion block only when it is confident. One click on Commit suggestion and it's in.

📄
Config lives in the repo

Drop a .codesolar.yml and your team's rules get reviewed and versioned alongside the code. It wins over console settings.

🌏
English, Korean, Japanese

Solar is native-level in all three. Pick the review language per repository — the console follows your browser locale.

🔒
Your code is not stored

The diff exists only in memory while the review runs. What gets stored is the review result and an encrypted token.

Tell it your team's rules

Drop a .codesolar.yml in the repository root and the reviewer follows it — review language, severity floor, excluded paths, and anything specific to your project.

# .codesolar.yml
language: en
minSeverity: medium
reviewDrafts: false
maxComments: 15
ignore:
  - "**/*.generated.ts"
  - "docs/**"
instructions: |
  This service is multi-tenant. Make sure every DB query
  filters by tenant_id.

One more reviewer on your next PR

All you need is a GitHub account. Connecting a repository takes three seconds.

Get started with GitHub