Title: Error classifier misclassifies HTTP 404 "Not Found" as "CLI_NOT_FOUND"

オープン 初心者向け
#651 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
75/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
静か
技術スタック
typescript
領域
api

調査の方向性

まず classifyError を見つけ、そのエラーパターンと関連するテストを読みます。ベース URL に /v1 がない状態で OpenAI-Compatible プロバイダーの接続失敗を再現し、HTTP 404 が ENDPOINT_NOT_FOUND として分類される一方で、本来の CLI-not-found 分類が変更されないことを確認します。

索引モデルが issue の本文から書いたものです。

説明

bug
CodePilot 版本 / Version

0.57.0

操作系统与架构 / OS & arch

Macos 26.5

Runtime

Codex

Provider / Model

自定义第三方本地模型

是否可复现 / Reproducible?

每次都能复现 / always

复现步骤 / Steps to reproduce

问题: classifyError 中 CLI_NOT_FOUND 的 patterns 包含 "not found",且排在数组第一位。当 OpenAI-Compatible provider 的 base_url 配错(少了 /v1),服务端返回 HTTP 404 "Not Found" 时,被误分类成 "Claude Code CLI not found",而不是 ENDPOINT_NOT_FOUND。

复现: 添加 OpenAI-Compatible provider,base_url 填 http://localhost:18818(不带 /v1),点测试连接 → 报 "Claude Code CLI not found"。

建议修复: 把 CLI_NOT_FOUND 的 "not found" 模式收窄,比如改成 "command not found" 或 "binary not found",避免吃掉 HTTP 404 的 "Not Found"。或者调整匹配顺序,让 ENDPOINT_NOT_FOUND 排在 CLI_NOT_FOUND 前面。

期望 vs 实际 / Expected vs actual

问题: classifyError 中 CLI_NOT_FOUND 的 patterns 包含 "not found",且排在数组第一位。当 OpenAI-Compatible provider 的 base_url 配错(少了 /v1),服务端返回 HTTP 404 "Not Found" 时,被误分类成 "Claude Code CLI not found",而不是 ENDPOINT_NOT_FOUND。

复现: 添加 OpenAI-Compatible provider,base_url 填 http://localhost:18818(不带 /v1),点测试连接 → 报 "Claude Code CLI not found"。

建议修复: 把 CLI_NOT_FOUND 的 "not found" 模式收窄,比如改成 "command not found" 或 "binary not found",避免吃掉 HTTP 404 的 "Not Found"。或者调整匹配顺序,让 ENDPOINT_NOT_FOUND 排在 CLI_NOT_FOUND 前面。

日志 / 截图 / session id

No response

影响面 / Impact
  • 涉及文件写入或可能误改/丢失数据 / involves file write or possible data loss
  • 导致崩溃、闪退或对话被自动中断 / causes crash / quit / auto-interrupt
主要言語
TypeScript
スター
6.5k
フォーク
697
PR マージ指標
30日以内にマージされた PR はありません

環境構築

  • Dockerfile・Docker Compose ファイルなし
  • プルリクエストのテンプレートあり
  • コントリビューションガイドなし

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

op7418/CodePilot のほかの issue

op7418/CodePilot の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。