Skip to content

简化配置方式并添加 Claude 4.6 模型支持 - #2

Merged
Yoahoug merged 2 commits into
mainfrom
feature/simplify-config-and-add-4.6-models
Feb 21, 2026
Merged

Yoahoug merged 2 commits into
mainfrom
feature/simplify-config-and-add-4.6-models

Conversation

@Yoahoug

@Yoahoug Yoahoug commented Feb 20, 2026

Copy link
Copy Markdown
Owner

主要改动:

  1. 简化配置方式

    • 新增根目录 .env.example 统一配置模板
    • docker-compose.yml 改为从根目录 .env 读取配置
    • 用户只需配置一个文件:ADMIN_PASSWORD 和 INTERNAL_API_KEY
    • 移除 kiro-gateway 单独配置的需求(账号凭证由 kiro-go 通过 HTTP 头转发)
  2. 添加 Claude 4.6 模型支持

    • kiro-gateway/kiro/config.py: 在 FALLBACK_MODELS 中添加 claude-sonnet-4.6 和 claude-opus-4.6
    • 修复用户报告的 504 错误(模型不在缓存列表中)
  3. 更新文档

    • README.md: 简化为"三步启动",添加 4.6 模型说明,更新配置说明
    • 新增 CLAUDE.md: 为 Claude Code 提供项目架构和开发指南
    • kiro-gateway/.env.example: 添加警告说明(kiro-stack 用户无需配置此文件)
  4. 其他优化

    • .gitignore: 添加根目录 .env 文件忽略规则
    • 统一环境变量命名:INTERNAL_API_KEY(替代分散的 API_KEY 配置)

修复问题:

  • 修复 claude-sonnet-4.6 请求 504 超时错误
  • 解决用户困惑:为什么 gateway 还需要配置 .env(现在不需要了)

主要改动:

1. 简化配置方式
   - 新增根目录 .env.example 统一配置模板
   - docker-compose.yml 改为从根目录 .env 读取配置
   - 用户只需配置一个文件:ADMIN_PASSWORD 和 INTERNAL_API_KEY
   - 移除 kiro-gateway 单独配置的需求(账号凭证由 kiro-go 通过 HTTP 头转发)

2. 添加 Claude 4.6 模型支持
   - kiro-gateway/kiro/config.py: 在 FALLBACK_MODELS 中添加 claude-sonnet-4.6 和 claude-opus-4.6
   - 修复用户报告的 504 错误(模型不在缓存列表中)

3. 更新文档
   - README.md: 简化为"三步启动",添加 4.6 模型说明,更新配置说明
   - 新增 CLAUDE.md: 为 Claude Code 提供项目架构和开发指南
   - kiro-gateway/.env.example: 添加警告说明(kiro-stack 用户无需配置此文件)

4. 其他优化
   - .gitignore: 添加根目录 .env 文件忽略规则
   - 统一环境变量命名:INTERNAL_API_KEY(替代分散的 API_KEY 配置)

修复问题:
- 修复 claude-sonnet-4.6 请求 504 超时错误
- 解决用户困惑:为什么 gateway 还需要配置 .env(现在不需要了)
@Yoahoug

Yoahoug commented Feb 20, 2026

Copy link
Copy Markdown
Owner Author

@copilot 进行审查

Copilot AI commented Feb 20, 2026

Copy link
Copy Markdown

@Yoahoug I've opened a new pull request, #3, to work on those changes. Once the pull request is ready, I'll request review from you.

- docker-compose.yml: kiro-gateway 新增 SKIP_STARTUP_CREDENTIAL_CHECK=true
  解决集成部署时 gateway 因找不到本地凭证而无法启动的问题
  (凭证由 kiro-go 通过 X-Kiro-* 请求头动态传入,无需启动时校验)

- kiro-gateway/main.py: validate_configuration() 识别 SKIP_STARTUP_CREDENTIAL_CHECK
  为 true 时跳过凭证校验,记录 INFO 日志说明原因

- kiro-gateway/kiro/http_client.py: 429 错误日志附带响应体
  便于区分真正的限流与模型无权限(Kiro API 对两者均返回 429)

- README.md:
   新增 feature 分支改动说明
   新增 claude-sonnet-4.6/opus-4.6 无法使用的原因说明(账号权限问题,非代码 Bug)
Copilot AI review requested due to automatic review settings February 21, 2026 04:10
@Yoahoug
Yoahoug merged commit 0fa29f3 into main Feb 21, 2026
2 checks passed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

该 PR 旨在简化 kiro-stack 的整体配置/启动方式(统一用根目录 .env 驱动 Compose 注入配置),并在 kiro-gateway 中补齐 Claude 4.6 系列模型的 fallback 支持,从而避免模型列表缓存缺失导致的 504/不可用问题。

Changes:

  • 新增根目录 .env.example,并调整 docker-compose.yml 从根目录 .env 注入 ADMIN_PASSWORD 与 INTERNAL_API_KEY 等变量
  • kiro-gateway:增加集成模式启动开关 SKIP_STARTUP_CREDENTIAL_CHECK,并在 FALLBACK_MODELS 中加入 Claude 4.6 模型
  • 文档与示例更新:README 三步启动、模型说明、并新增 CLAUDE.md

Reviewed changes

Copilot reviewed 8 out of 9 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
kiro-gateway/main.py 增加集成模式下跳过启动凭证校验的开关逻辑
kiro-gateway/kiro/http_client.py 429 重试日志附带响应体片段,便于区分限流/无权限
kiro-gateway/kiro/config.py fallback 模型列表加入 claude-*-4.6
kiro-gateway/.env.example 明确该文件仅用于 gateway 独立部署,kiro-stack 集成部署可忽略
docker-compose.yml 改为通过根目录 .env 插值注入环境变量,并预设集成模式开关
README.md 更新为三步启动流程、补充 4.6 模型说明与排查指引、更新配置说明
CLAUDE.md 新增面向 Claude Code 的仓库架构与开发指引
.gitignore 忽略根目录 .env/.env.local,并标注 gateway .env 已非集成部署必需
.env.example 新增统一配置模板(ADMIN_PASSWORD / INTERNAL_API_KEY 等)

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread kiro-gateway/main.py
Comment on lines +217 to +220
# 集成模式:凭证由 kiro-go 通过 X-Kiro-* 请求头动态传入,无需启动时校验
if os.getenv("SKIP_STARTUP_CREDENTIAL_CHECK", "").lower() in ("true", "1", "yes"):
logger.info("SKIP_STARTUP_CREDENTIAL_CHECK=true,跳过凭证校验(集成模式:凭证由请求头传入)")
return

Copilot AI Feb 21, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SKIP_STARTUP_CREDENTIAL_CHECK 当前通过 return 直接跳过整个 validate_configuration()。现在函数里只做凭证校验所以能工作,但这会让后续如果在该函数里增加其他关键校验时被意外绕过。建议仅条件化跳过“凭证存在性”那一段校验,而不是提前返回整个函数(例如保留其它校验仍然执行)。

Copilot uses AI. Check for mistakes.
Comment thread docker-compose.yml
Comment on lines +7 to +11
environment:
- PROXY_API_KEY=${INTERNAL_API_KEY}
- VPN_PROXY_URL=${VPN_PROXY_URL:-}
- DEBUG_MODE=${DEBUG_MODE:-off}
- SKIP_STARTUP_CREDENTIAL_CHECK=true

Copilot AI Feb 21, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这里依赖 ${INTERNAL_API_KEY} 注入到 gateway 的 PROXY_API_KEY,但如果用户忘了在根目录 .env 里设置该变量,Compose 会把它展开为空字符串,导致 gateway 实际上没有鉴权密钥。建议用 Compose 的必填语法(如 ${INTERNAL_API_KEY:?INTERNAL_API_KEY is required})来让启动时直接报错。

Copilot uses AI. Check for mistakes.
Comment thread docker-compose.yml
Comment on lines 26 to +29
- CONFIG_PATH=/app/data/config.json
- ADMIN_PASSWORD=change_this_password
- ADMIN_PASSWORD=${ADMIN_PASSWORD}
- KIRO_GATEWAY_BASE=http://kiro-gateway:8000
- KIRO_GATEWAY_API_KEY=change_this_api_key
- KIRO_GATEWAY_API_KEY=${INTERNAL_API_KEY}

Copilot AI Feb 21, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

同上:ADMIN_PASSWORD/INTERNAL_API_KEY 如果未在根目录 .env 设置会被展开为空字符串,容器仍会启动但运行时行为异常(管理面板无法登录 / gateway 鉴权失败)。建议对这两项使用必填展开语法,让 docker compose up 在缺失配置时快速失败。

Copilot uses AI. Check for mistakes.
Comment thread README.md
Comment on lines +200 to +202
**新增模型支持:**
- 在 gateway 内置 fallback 模型列表中添加 `claude-sonnet-4.6`、`claude-opus-4.6`、`claude-opus-4.6-1m`

Copilot AI Feb 21, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

README 更新日志里提到 fallback 模型列表新增 claude-opus-4.6-1m,但本次代码改动里 FALLBACK_MODELS 只加入了 claude-sonnet-4.6 和 claude-opus-4.6,没有 claude-opus-4.6-1m。需要在文档与代码之间保持一致:要么补充该模型到 fallback 列表,要么从 README 里移除该条。

Copilot uses AI. Check for mistakes.
Comment on lines +238 to +242
await response.aread()
_body = response.text[:500]
except Exception:
_body = "<无法读取响应体>"
logger.warning(f"Received 429, waiting {delay}s (attempt {attempt + 1}/{MAX_RETRIES}) | body: {_body}")

Copilot AI Feb 21, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

在 429 重试分支里读取响应体后没有显式关闭响应对象;当 stream=True 时如果读取/解码过程中抛异常,连接可能无法及时释放回连接池。建议在读取响应体后(无论成功与否)调用 await response.aclose()(或在 finally 中关闭),并考虑在其它会 continue 重试的分支里同样确保关闭响应。

Copilot uses AI. Check for mistakes.
Comment thread kiro-gateway/main.py
Comment on lines +217 to +220
# 集成模式:凭证由 kiro-go 通过 X-Kiro-* 请求头动态传入,无需启动时校验
if os.getenv("SKIP_STARTUP_CREDENTIAL_CHECK", "").lower() in ("true", "1", "yes"):
logger.info("SKIP_STARTUP_CREDENTIAL_CHECK=true,跳过凭证校验(集成模式:凭证由请求头传入)")
return

Copilot AI Feb 21, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SKIP_STARTUP_CREDENTIAL_CHECK 引入了新的启动分支逻辑,但当前 tests/unit/test_main_cli.py 只覆盖 CLI 相关函数,没有覆盖 validate_configuration() 的行为。建议补充单测:在未配置任何凭证时,设置该环境变量应不退出进程;未设置时应按原逻辑报错退出。

Copilot uses AI. Check for mistakes.
@Yoahoug
Yoahoug deleted the feature/simplify-config-and-add-4.6-models branch February 22, 2026 04:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants