Skip to content

[pull] main from Alishahryar1:main - #242

Merged
pull[bot] merged 7 commits into
Co-Contribute-OpenSource:mainfrom
Alishahryar1:main
Sep 25, 2026
Merged

pull[bot] merged 7 commits into
Co-Contribute-OpenSource:mainfrom
Alishahryar1:main

Conversation

@pull

@pull pull Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

## Why

Identify uv as the package manager and keep its bolt icon beside its
name.

## How

Replace the README's uv badge with a local SVG showing Package Manager
on the left and the original bolt artwork beside UV on the right.
Preserve the uv colors and repository link.
## Why

License Free Claude Code under GNU AGPL version 3 only.

## How

Replace the project license with AGPL-3.0-only, retain the project
copyright notice, and update the README badge and license description.
Declare the SPDX license expression in package metadata and include
LICENSE in distributions. Preserve third-party license notices.


<!-- greptile_comment -->

<!-- greptile_summary -->

<h2><a
href="https://app.greptile.com/api/retrigger?id=69039820"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://greptile-static-assets.s3.amazonaws.com/badges/RetriggerDark.svg?v=2"><source
media="(prefers-color-scheme: light)"
srcset="https://greptile-static-assets.s3.amazonaws.com/badges/Retrigger.svg?v=2"><img
alt="Retrigger"
src="https://greptile-static-assets.s3.amazonaws.com/badges/Retrigger.svg?v=2"
align="right"></picture></a>Confidence Score: 4/5</h2>

The license badge link should be corrected, but this issue does not
block merging.

<h2><a
href="https://app.greptile.com/api/ide/codex?prompt=IMPORTANT%3A%20Work%20in%20the%20repository%20%22alishahryar1%2Ffree-claude-code%22%20on%20the%20existing%20branch%20%22ali%2Fagpl-v3-license%22.%20Checkout%20that%20branch%20%E2%80%94%20do%20NOT%20create%20a%20new%20branch%20or%20open%20a%20new%20PR.%20Push%20your%20changes%20to%20%22ali%2Fagpl-v3-license%22.%0A%0A%23%23%23%20Issue%201%0AREADME.md%3A10%0AThe%20README%20is%20used%20as%20the%20PyPI%20project%20description.%20There%2C%20the%20new%20relative%20%60LICENSE%60%20badge%20link%20resolves%20to%20%60https%3A%2F%2Fpypi.org%2Fproject%2Ffree-claude-code%2FLICENSE%60%2C%20not%20the%20repository%E2%80%99s%20license.%20Visitors%20clicking%20the%20badge%20cannot%20reach%20the%20license%20through%20it.%20Use%20an%20absolute%20repository%20URL%20for%20the%20badge%20target.%20This%20documentation%20issue%20does%20not%20block%20merging.%0A%0A%60%60%60suggestion%0A%5B!%5BLicense%3A%20AGPL%20v3%5D%28https%3A%2F%2Fimg.shields.io%2Fbadge%2FLicense-AGPL_v3-blue.svg%3Fstyle%3Dfor-the-badge%29%5D%28https%3A%2F%2Fgithub.com%2FAlishahryar1%2Ffree-claude-code%2Fblob%2Fmain%2FLICENSE%29%0A%60%60%60%0A%0ANote%3A%20If%20this%20suggestion%20doesn't%20match%20your%20team's%20coding%20style%2C%20reply%20to%20this%20and%20let%20me%20know.%20I'll%20remember%20it%20for%20next%20time!%0A%0A---%0A%0AFor%20each%20issue%20above%2C%20determine%20whether%20it%20is%20valid%20and%20should%20be%20fixed.%20If%20so%2C%20fix%20it%20directly.&repo=alishahryar1%2Ffree-claude-code&pr=1887&platform=github"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://greptile-static-assets.s3.amazonaws.com/badges/FixAllInCodexDark.svg?v=7"><source
media="(prefers-color-scheme: light)"
srcset="https://greptile-static-assets.s3.amazonaws.com/badges/FixAllInCodex.svg?v=7"><img
alt="Fix All in Codex"
src="https://greptile-static-assets.s3.amazonaws.com/badges/FixAllInCodex.svg?v=7"
align="right"></picture></a>Findings</h2>

1. <img alt="P2"
src="https://greptile-static-assets.s3.amazonaws.com/badges/p2.svg?v=9"
align="top">&nbsp;**License badge misses the license** <a
href="https://github.com/Alishahryar1/free-claude-code/pull/1887#discussion_r4099329790">▶</a>

<details open><summary>Summary</summary>

The PR replaces the MIT license with AGPL-3.0-only and updates the
README and package metadata. The README’s new license badge link works
relative to the repository, but on the PyPI project page it leads to a
PyPI-relative URL instead of the license. This is a non-blocking
documentation issue.
</details>

<!-- greptile_confidence_score:4 -->

<sub>Reviews (1) · Last reviewed commit: ["Switch project license to
AGPL-3.0-only"](https://github.com/alishahryar1/free-claude-code/commit/2754e9f2981e0b2f30b4d1685d2ce7d2ac4f64bc)</sub>

<!-- /greptile_comment -->
## Why

The license badge uses a relative link that can point to the wrong
location when the README is rendered outside GitHub.

## How

Point the badge to the repository's absolute LICENSE URL.


<!-- greptile_comment -->

<!-- greptile_summary -->

<h2><a
href="https://app.greptile.com/api/retrigger?id=69049030"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://greptile-static-assets.s3.amazonaws.com/badges/RetriggerDark.svg?v=2"><source
media="(prefers-color-scheme: light)"
srcset="https://greptile-static-assets.s3.amazonaws.com/badges/Retrigger.svg?v=2"><img
alt="Retrigger"
src="https://greptile-static-assets.s3.amazonaws.com/badges/Retrigger.svg?v=2"
align="right"></picture></a>Confidence Score: 5/5</h2>

Safe to merge.

What we checked:
- Rendered and clicked the license badge from the README before and
after the change. <a href="https://www.greptile.com/trex"><img
alt="T-Rex"
src="https://greptile-static-assets.s3.amazonaws.com/trex/trex_green.svg"
height="16" align="absmiddle"></a>
- Verified the badge image loaded successfully in both runs. <a
href="https://www.greptile.com/trex"><img alt="T-Rex"
src="https://greptile-static-assets.s3.amazonaws.com/trex/trex_green.svg"
height="16" align="absmiddle"></a>
- Verified the license link target changed from the local LICENSE to the
repository's GitHub LICENSE page and displayed SPDX-License-Identifier:
AGPL-3.0-only. <a href="https://www.greptile.com/trex"><img alt="T-Rex"
src="https://greptile-static-assets.s3.amazonaws.com/trex/trex_green.svg"
height="16" align="absmiddle"></a>
- Collected and reviewed artifacts (scripts, videos, images, and logs)
to document the verification results. <a
href="https://www.greptile.com/trex"><img alt="T-Rex"
src="https://greptile-static-assets.s3.amazonaws.com/trex/trex_green.svg"
height="16" align="absmiddle"></a>

<details open><summary>Summary</summary>

The README license badge now uses an absolute link so it works when the
README is displayed outside GitHub. The rendered badge opened the
repository’s LICENSE page, which displayed the AGPL license. No issues
found.
</details>

<!-- greptile_confidence_score:5 -->

<sub>Reviews (1) · Last reviewed commit: ["Use absolute URL for README
license
badg..."](https://github.com/alishahryar1/free-claude-code/commit/f345485d9d5b2ba1a5eff7c338e854f4221dd224)</sub>

<!-- /greptile_comment -->
## Why

Make the README badges easier to distinguish while keeping their text
readable.

## How

Give each badge a distinct, familiar color with text contrast above
4.5:1. Rename the Ty label to Type Checker and the Ruff label to
Formatter.
## Why

Pytest looks too similar to Ruff, and Loguru's gray blends into the
badge label.

## How

Use dark pink for Pytest and teal for Loguru, retaining high-contrast
white text.


<!-- greptile_comment -->

<!-- greptile_summary -->

<h2><a
href="https://app.greptile.com/api/retrigger?id=69056893"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://greptile-static-assets.s3.amazonaws.com/badges/RetriggerDark.svg?v=2"><source
media="(prefers-color-scheme: light)"
srcset="https://greptile-static-assets.s3.amazonaws.com/badges/Retrigger.svg?v=2"><img
alt="Retrigger"
src="https://greptile-static-assets.s3.amazonaws.com/badges/Retrigger.svg?v=2"
align="right"></picture></a>Confidence Score: 5/5</h2>

Safe to merge.

What we checked:
- Reran the Chromium badge-check script to render the Pytest and Loguru
badges from both README revisions. <a
href="https://www.greptile.com/trex"><img alt="T-Rex"
src="https://greptile-static-assets.s3.amazonaws.com/trex/trex_green.svg"
height="16" align="absmiddle"></a>
- Validated that both changed badge URLs returned HTTP 200 SVGs and that
Chromium loaded the images showing PYTEST and LOGURU with the intended
colors and preserved link targets. <a
href="https://www.greptile.com/trex"><img alt="T-Rex"
src="https://greptile-static-assets.s3.amazonaws.com/trex/trex_green.svg"
height="16" align="absmiddle"></a>
- Captured visual evidence of the pre-change badge appearance with a
video and a poster frame. <a href="https://www.greptile.com/trex"><img
alt="T-Rex"
src="https://greptile-static-assets.s3.amazonaws.com/trex/trex_green.svg"
height="16" align="absmiddle"></a>
- Captured visual evidence of the post-change badge appearance and
confirmed the colors #ad1457 and #00695c with the links preserved. <a
href="https://www.greptile.com/trex"><img alt="T-Rex"
src="https://greptile-static-assets.s3.amazonaws.com/trex/trex_green.svg"
height="16" align="absmiddle"></a>

<details open><summary>Summary</summary>

The README changes the Pytest badge from red to dark pink and the Loguru
badge from gray to teal. Both badges rendered with the intended labels
and colors, and their links remained unchanged. No actionable issues
were found.
</details>

<!-- greptile_confidence_score:5 -->

<sub>Reviews (1) · Last reviewed commit: ["Distinguish Pytest and Loguru
badge
colo..."](https://github.com/alishahryar1/free-claude-code/commit/374b9c5367eb707d8b69f0f009837bdc72a11ee2)</sub>

<!-- /greptile_comment -->
## Why

TokenRouter, NaraRoute, Lightning AI, and Experiential Labs should use
their standard provider endpoints rather than expose custom base URLs.

## How

Remove their URL settings and Admin fields so the provider catalog
supplies the fixed endpoints. Previously saved URL values and
environment overrides no longer affect routing. Bump the version to
6.2.61.


<!-- greptile_comment -->

<!-- greptile_summary -->

<h2><a
href="https://app.greptile.com/api/retrigger?id=69069229"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://greptile-static-assets.s3.amazonaws.com/badges/RetriggerDark.svg?v=2"><source
media="(prefers-color-scheme: light)"
srcset="https://greptile-static-assets.s3.amazonaws.com/badges/Retrigger.svg?v=2"><img
alt="Retrigger"
src="https://greptile-static-assets.s3.amazonaws.com/badges/Retrigger.svg?v=2"
align="right"></picture></a>Confidence Score: 4/5</h2>

The retained, inactive settings are a non-blocking issue; they do not
make the PR unsafe to merge.

<h2><a
href="https://app.greptile.com/api/ide/codex?prompt=IMPORTANT%3A%20Work%20in%20the%20repository%20%22alishahryar1%2Ffree-claude-code%22%20on%20the%20existing%20branch%20%22ali%2Ffixed-cloud-provider-endpoints%22.%20Checkout%20that%20branch%20%E2%80%94%20do%20NOT%20create%20a%20new%20branch%20or%20open%20a%20new%20PR.%20Push%20your%20changes%20to%20%22ali%2Ffixed-cloud-provider-endpoints%22.%0A%0A%23%23%23%20Issue%201%0Asrc%2Ffree_claude_code%2Fconfig%2Fsettings.py%3A169-172%0AIf%20a%20user%20has%20a%20custom%20URL%20for%20one%20of%20these%20four%20providers%20in%20managed%20configuration%2C%20the%20provider%20now%20uses%20its%20fixed%20endpoint%20instead.%20The%20old%20URL%20remains%20in%20the%20saved%20file%20after%20an%20Admin%20save%2C%20but%20Admin%20no%20longer%20shows%20or%20accepts%20it.%20This%20is%20non-blocking%2C%20but%20it%20leaves%20a%20misleading%20setting%20that%20users%20cannot%20remove%20through%20Admin%3B%20please%20remove%20the%20retired%20keys%20during%20migration.%0A%0ANote%3A%20If%20this%20suggestion%20doesn't%20match%20your%20team's%20coding%20style%2C%20reply%20to%20this%20and%20let%20me%20know.%20I'll%20remember%20it%20for%20next%20time!%0A%0A---%0A%0AFor%20each%20issue%20above%2C%20determine%20whether%20it%20is%20valid%20and%20should%20be%20fixed.%20If%20so%2C%20fix%20it%20directly.&repo=alishahryar1%2Ffree-claude-code&pr=1891&platform=github"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://greptile-static-assets.s3.amazonaws.com/badges/FixAllInCodexDark.svg?v=7"><source
media="(prefers-color-scheme: light)"
srcset="https://greptile-static-assets.s3.amazonaws.com/badges/FixAllInCodex.svg?v=7"><img
alt="Fix All in Codex"
src="https://greptile-static-assets.s3.amazonaws.com/badges/FixAllInCodex.svg?v=7"
align="right"></picture></a>Findings</h2>

1. <img alt="P2"
src="https://greptile-static-assets.s3.amazonaws.com/badges/p2.svg?v=9"
align="top">&nbsp;**Retired URLs remain saved** <a
href="https://github.com/Alishahryar1/free-claude-code/pull/1891#discussion_r4099738412">▶</a>

<details open><summary>Summary</summary>

The PR moves TokenRouter, NaraRoute, Lightning AI, and Experiential Labs
to fixed catalog endpoints. Users upgrading with custom provider URLs
need saved configuration to reflect the endpoints actually used.
Instead, the old URLs stop affecting routing but remain hidden in
managed configuration after an Admin save. This issue is non-blocking.
</details>

<!-- greptile_confidence_score:4 -->

<sub>Reviews (1) · Last reviewed commit: ["Use fixed endpoints for four
cloud
provi..."](https://github.com/alishahryar1/free-claude-code/commit/a16374276207ec4f93d80d258c5c58e2591a0f6a)</sub>

<!-- /greptile_comment -->
## Why

NVIDIA NIM voice transcription requires a separate installer option even
though it runs in the cloud. The README also mixes setup instructions
with internal implementation details and repetition.

## How

Include the existing Riva and gRPC dependencies in every FCC
installation, remove the obsolete NIM/all-voice installer flags, and
keep local CPU/CUDA Whisper optional. Retain deferred client loading and
bump the patch version to 6.2.62.

Trim implementation details and repeated explanations below Quick Start.
Keep setup requirements, compatibility notes, and complete copyable
voice-note commands, with the product overview unchanged.


<!-- greptile_comment -->

<!-- greptile_summary -->

<h2><a
href="https://app.greptile.com/api/retrigger?id=69092352"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://greptile-static-assets.s3.amazonaws.com/badges/RetriggerDark.svg?v=2"><source
media="(prefers-color-scheme: light)"
srcset="https://greptile-static-assets.s3.amazonaws.com/badges/Retrigger.svg?v=2"><img
alt="Retrigger"
src="https://greptile-static-assets.s3.amazonaws.com/badges/Retrigger.svg?v=2"
align="right"></picture></a>Confidence Score: 3/5</h2>

The PR is not ready to merge because previously supported voice
installation and update commands can fail.

<h2><a
href="https://app.greptile.com/api/ide/codex?prompt=IMPORTANT%3A%20Work%20in%20the%20repository%20%22alishahryar1%2Ffree-claude-code%22%20on%20the%20existing%20branch%20%22ali%2Fnim-voice-by-default%22.%20Checkout%20that%20branch%20%E2%80%94%20do%20NOT%20create%20a%20new%20branch%20or%20open%20a%20new%20PR.%20Push%20your%20changes%20to%20%22ali%2Fnim-voice-by-default%22.%0A%0A%23%23%23%20Issue%201%0Ascripts%2Finstall.sh%3A1257-1262%0AUsers%20who%20previously%20installed%20both%20voice%20backends%20may%20run%20%60fcc-update%20--voice-all%60%20again%20to%20preserve%20local%20Whisper.%20The%20update%20wrapper%20forwards%20that%20flag%2C%20but%20the%20installer%20now%20rejects%20it%20before%20installing%20anything.%20The%20Windows%20%60-VoiceAll%60%20update%20fails%20the%20same%20way.%20Accepting%20these%20former%20flags%20as%20aliases%20would%20let%20existing%20update%20commands%20continue%20to%20work.%0A%0ANote%3A%20If%20this%20suggestion%20doesn't%20match%20your%20team's%20coding%20style%2C%20reply%20to%20this%20and%20let%20me%20know.%20I'll%20remember%20it%20for%20next%20time!%0A%0A%23%23%23%20Issue%202%0Apyproject.toml%3A58-59%0AAn%20existing%20workflow%20that%20runs%20%60uv%20sync%20--extra%20voice%60%20now%20selects%20an%20extra%20that%20the%20package%20no%20longer%20provides%2C%20so%20the%20sync%20fails.%20Moving%20the%20NIM%20dependencies%20into%20the%20base%20package%20does%20not%20keep%20that%20command%20working.%20Preserve%20the%20selector%20as%20a%20compatibility%20alias%20or%20provide%20a%20migration%20path%20for%20those%20workflows.%0A%0A%23%23%23%20Issue%203%0AREADME.md%3A139-140%0AThe%20OpenCode%20upgrade%20instructions%20no%20longer%20tell%20users%20that%20a%20customized%20old%20RTK%20plugin%20needs%20manual%20migration.%20The%20installer%20rejects%20an%20unrecognized%20or%20modified%20plugin%20before%20upgrading%2C%20so%20affected%20users%20following%20these%20instructions%20will%20hit%20an%20avoidable%20stop%20without%20knowing%20the%20prerequisite.%0A%0A---%0A%0AFor%20each%20issue%20above%2C%20determine%20whether%20it%20is%20valid%20and%20should%20be%20fixed.%20If%20so%2C%20fix%20it%20directly.&repo=alishahryar1%2Ffree-claude-code&pr=1893&platform=github"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://greptile-static-assets.s3.amazonaws.com/badges/FixAllInCodexDark.svg?v=7"><source
media="(prefers-color-scheme: light)"
srcset="https://greptile-static-assets.s3.amazonaws.com/badges/FixAllInCodex.svg?v=7"><img
alt="Fix All in Codex"
src="https://greptile-static-assets.s3.amazonaws.com/badges/FixAllInCodex.svg?v=7"
align="right"></picture></a>Findings</h2>

1. <img alt="P1"
src="https://greptile-static-assets.s3.amazonaws.com/badges/p1.svg?v=9"
align="top">&nbsp;**Existing updates reject voice flags** <a
href="https://github.com/Alishahryar1/free-claude-code/pull/1893#discussion_r4100061771">▶</a>
2. <img alt="P1"
src="https://greptile-static-assets.s3.amazonaws.com/badges/p1.svg?v=9"
align="top">&nbsp;**Existing voice syncs fail** <a
href="https://github.com/Alishahryar1/free-claude-code/pull/1893#discussion_r4100061776">▶</a>
3. <img alt="P2"
src="https://greptile-static-assets.s3.amazonaws.com/badges/p2.svg?v=9"
align="top">&nbsp;**RTK migration warning removed** <a
href="https://github.com/Alishahryar1/free-claude-code/pull/1893#discussion_r4100061781">▶</a>

<details open><summary>Summary</summary>

This PR makes NVIDIA NIM transcription dependencies part of the standard
installation, retains local Whisper as an optional extra, removes the
NIM/all-voice installer flags, and shortens setup documentation.
- Existing update commands using the retired all-voice flags will fail.
- Removing the `voice` extra breaks workflows that still select it.
- The OpenCode upgrade instructions omit a prerequisite for customized
RTK plugins.
</details>

<details open><summary>Diagram</summary>

```mermaid
%%{init: {'theme': 'neutral'}}%%
flowchart LR
  A[Installation or update] --> B{Voice selection}
  B -->|No flag| C[Base package with NIM dependencies]
  B -->|Local flag| D[Base package plus voice_local]
  B -->|Former all-voice flag| E[Installer rejects option]
  F[uv sync --extra voice] --> G[Removed extra selector]
```
</details>

<!-- greptile_confidence_score:3 -->

<sub>Reviews (1) · Last reviewed commit: ["Remove em dashes and
semicolons from
REA..."](https://github.com/alishahryar1/free-claude-code/commit/f8d5b6fcb2954d0f528345038b88a8d32f918a2b)</sub>

<!-- /greptile_comment -->
@pull pull Bot locked and limited conversation to collaborators Sep 25, 2026
@pull pull Bot added the ⤵️ pull label Sep 25, 2026
@pull
pull Bot merged commit 5e0c179 into Co-Contribute-OpenSource:main Sep 25, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant