Repository navigation
[pull] main from Alishahryar1:main - #238
Merged
Merged
Conversation
## Why Fixes #1853. OpenRouter returns HTTP 404 when no endpoint supports an attached image. Claude interprets that status as a missing or inaccessible model and hides the actual image-support explanation. ## How Recognize OpenRouter's structured image-routing rejection in its provider behavior and translate it into a non-retryable HTTP 400. Tell the user to remove the image or choose an image-capable model, retaining the original upstream diagnostic and request ID. Add regression coverage for classification boundaries and image-bearing Messages/Responses requests. Bump the patch version to 6.2.55. <!-- greptile_comment --> <!-- greptile_summary --> <h2><a href="https://app.greptile.com/api/retrigger?id=67270899"><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: the public Messages and Responses flows correctly translate the targeted image-routing rejection, while unrelated OpenRouter 404 responses remain unchanged. What we checked: - Ran a FastAPI/TestClient probe through the public Messages and Responses endpoints with mocked OpenRouter responses; verified that a normal OpenRouter 404 remains a 404 api_error with diagnostics, request IDs, and forwarded image input, and that the image-routing 404 becomes a non-retryable 400 invalid_request_error on both endpoints; 41 tests passed. <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> - Executed the runtime and test commands: run the image-routing runtime script with and without the image-routing flag, and run the focused pytest suite for OpenRouter image errors and API tests; the authored executable source is uploaded as openrouter-image-routing-runtime.py, and the captured outputs show the commands, working directory, and exit codes. <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> OpenRouter image-support routing rejections now return a clear, non-retryable invalid-request response while preserving upstream diagnostics, request IDs, and image forwarding. Ordinary OpenRouter 404 routing responses retain their existing behavior. The package version is updated to 6.2.55. Merge safety: safe to merge. </details> <sub>Reviews (1) · Last reviewed commit: ["Explain OpenRouter image-routing rejecti..."](https://github.com/alishahryar1/free-claude-code/commit/e1e5fcc478611d0a872178c79a28dcbf70b21d42)</sub> <!-- /greptile_comment -->
## Why Updating FCC currently requires rerunning the installer. A dedicated command should refresh FCC, stay in the foreground, and report the actual result without locking the files it replaces. ## How Add `fcc-update` as uv-owned native shell launchers. A short-lived preparation process verifies the installation and stopped FCC processes, preserves installed voice extras and identifiable backends, then exits before the launcher runs the existing `uv tool install --force --refresh-package free-claude-code` operation. The launcher verifies the resulting version and returns failures to the terminal. Keep updates scoped to FCC. Unknown/custom local-voice backends stop with instructions to use the matching installer. Add installer/uninstaller command verification and separate README Install and Update instructions, with a bootstrap note for older installations. Bump the patch version to 6.2.56. <!-- greptile_comment --> <!-- greptile_summary --> <h2><a href="https://app.greptile.com/api/retrigger?id=67291905"><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. <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%2Ffcc-update%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%2Ffcc-update%22.%0A%0A%23%23%23%20Issue%201%0Ascripts%2Finstall.ps1%3Aundefined-1510%0AThe%20installer%20verifies%20%60fcc-update.cmd%60%2C%20but%20that%20launcher%20unconditionally%20starts%20the%20adjacent%20%60fcc-update-windows.ps1%60.%20If%20the%20companion%20is%20absent%2C%20installation%20still%20reports%20success%20and%20%60fcc-update%60%20later%20fails%20to%20start.%20Verify%20the%20PowerShell%20script%20too%2C%20and%20add%20a%20fixture%20that%20omits%20it.%20This%20is%20non-blocking%2C%20but%20avoiding%20a%20successful%20installation%20that%20produces%20a%20broken%20update%20command%20prevents%20a%20support%20and%20recovery%20cost.%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=1856&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"> **Verify PowerShell companion** <a href="https://github.com/Alishahryar1/free-claude-code/pull/1856#discussion_r4068282206">▶</a> <details open><summary>Summary</summary> Adds and verifies the dedicated `fcc-update` updater flow for uv-managed installations. The Windows installer now confirms that the PowerShell companion is installed next to its command launcher, preventing a successful installation from leaving an unusable update command. </details> <sub>Reviews (3) · Last reviewed commit: ["Decode uv updater output as UTF-8"](https://github.com/alishahryar1/free-claude-code/commit/ef558e85724d8c09e607b237fbfaf9e9862ce99c)</sub> <!-- /greptile_comment -->
## Why `fcc-update` should run the same installer as the README command. The separate updater introduced in #1856 bypasses coding-agent prompts, checks, and setup. ## How Replace the separate updater with native shell and Windows command wrappers that fetch and run the official installer in the foreground. Forward installer options and preserve failure exit codes while allowing the launcher to replace itself. Remove the Python update preparation code and PowerShell companion. Keep package-manager ownership of the launchers, explain installer and voice-option behavior in the README, and bump FCC to 6.2.57.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 : )