Skip to content

修复:编辑普通渠道时使用已保存凭据获取模型 - #6

Merged
nanoapple8888 merged 1 commit into
mainfrom
fix/fetch-models-saved-channel-key
Aug 5, 2026
Merged

nanoapple8888 merged 1 commit into
mainfrom
fix/fetch-models-saved-channel-key

Conversation

@nanoapple8888

@nanoapple8888 nanoapple8888 commented Aug 5, 2026

Copy link
Copy Markdown
Owner

提交说明

Important

  • PR 标题、变更说明、验证结果和风险说明统一使用中文。
  • 可以使用 AI 辅助,但必须如实披露,并由提交人复核代码和验证结果。

变更描述

修复编辑已有普通渠道时“获取模型列表”失败的问题。

复现条件:管理员打开普通渠道编辑抽屉并点击获取模型。由于密钥不会回显,前端原先只在高级自定义渠道编辑时发送 channel_id,普通渠道请求因此缺少保存密钥;上游对未认证请求返回 HTML,后端按 JSON 解析后出现 invalid character '<' looking for beginning of value

核心修改:

  • 编辑任何已有渠道时均发送 channel_id
  • 普通渠道根据 channel_id 读取数据库中的已保存渠道配置,复用其密钥、Base URL、请求头和代理。
  • 校验请求渠道类型与保存渠道类型一致。
  • 忽略编辑请求临时提交的密钥和 Base URL,避免保存密钥被误发到其他地址。
  • 新建普通渠道和高级自定义渠道的现有预览行为保持不变。
  • 增加保存凭据复用和渠道类型错配的回归测试。

变更类型

  • Bug 修复:请关联对应 Issue,避免将设计取舍或预期差异直接归类为缺陷
  • 新功能:重大特性建议先通过 Issue 沟通
  • 性能优化或重构
  • 文档或流程更新

关联任务

  • 关联 Issue:无(仓库未启用 Issues)

AI 辅助披露

  • 未使用 AI 辅助
  • 使用了 AI 辅助,工具及范围:Codex;用于根因分析、代码修改、回归测试、静态检查和 PR 文案
  • 我已复核 AI 辅助产生的代码、文档和验证结果

✅ 提交前检查项 / Checklist

  • 中文说明: PR 标题和正文已使用中文,必要的技术标识除外。
  • 非重复提交: 我已搜索现有的 Issues 与 PRs,确认不是重复提交;仓库 Issues 未启用。
  • 缺陷说明: 若标记为 Bug 修复,已说明复现条件、根因和回归验证。
  • 变更理解: 我已理解这些更改的工作原理及可能影响。
  • 范围聚焦: 本 PR 未包含与当前任务无关的改动。
  • 本地验证: 已运行相关测试或手动验证,并在下方记录结果。
  • 安全合规: 代码和日志中没有凭据、令牌或其他敏感信息。

验证结果

  • go test ./controller -run 'TestFetchModelsSavedOrdinaryChannel|TestFetchModelsAdvancedCustom|TestFetchModelsUsesSharedChannelFetchBehavior' -count=1:通过。
  • go test ./controller -count=1:通过。
  • go test ./...:通过。
  • bun run typecheck:通过。
  • bunx oxlint -c .oxlintrc.json src/features/channels/components/drawers/channel-mutate-drawer.tsx:通过。
  • bun run format:check:通过。
  • bun run build:通过。
  • git diff --check:通过。

风险与回滚

风险较低,影响管理员渠道编辑页的模型列表获取逻辑。后端只在请求携带已有普通渠道 ID 时改为读取保存配置,并校验渠道类型;不会修改渠道数据。

若出现回归,可回滚本 PR 的合并提交并重新部署对应品牌。

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.

2 participants