Skip to content

fix(server): load remote images through session media - #4441

Open
kimi-agent-bot wants to merge 76 commits into
MoonshotAI:mainfrom
kimi-agent-bot:feat/web-remote-image-media
Open

kimi-agent-bot wants to merge 76 commits into
MoonshotAI:mainfrom
kimi-agent-bot:feat/web-remote-image-media

Conversation

@kimi-agent-bot

@kimi-agent-bot kimi-agent-bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Collaborator

Requirement or Bug

修复 Web 会话中远程 HTTP(S) 图片偶现无法显示的问题,同时覆盖非回环 CSP、HTTPS 混合内容和远程浏览器无法访问 daemon 内网地址的场景。

Bug Reproduction Steps

  1. 在回复正文中放入一张位于 daemon 内网的 HTTP 图片。
  2. 非回环页面的 img-src 'self' data: blob: 会阻止该外部图片源;官方 Remote Control 的 HTTPS 页面还存在混合内容限制。
  3. 远程浏览器即使放开 CSP,也可能无法路由到该内网地址,图片始终无法显示。

Root Cause

直接让浏览器加载远程 URL 同时受 CSP、页面协议和网络可达性约束,逐主机配置无法成为通用方案。本次由 daemon 获取并校验图片,再写入目标会话的媒体存储;前端只使用同源媒体,因此三类限制在同一资源模型下解决,不是继续放宽 img-src。

Code Changes

Markdown renderer 解析远程图片目标
  → image node 自动调用 resolver
  → POST /api/v1/sessions/{session_id}/media {url}
  → 协议、目标地址、重定向、超时和响应大小校验
  → 写入该 session 的 ISessionMediaStore
  → 既有 GET /sessions/{session_id}/media/{file_id} 返回同源内容
  • 新增远程媒体创建路由,复用既有 session media 存储和下载路径。
  • 允许明确需要的 RFC1918 私网图片,阻断回环、链路本地、组播及常见云元数据入口;每次重定向都重新校验。
  • 代理按当前 URL 的实际协议覆盖和 NO_PROXY 决定;代理请求只连接已验证 IP,HTTP Host 与 HTTPS SNI 保留原域名。未配置可用代理、代理 URL 无效或命中 NO_PROXY 时固定 DNS,异常凭证按无效配置处理。
  • DNS、重定向和正文读取共享 10 秒总预算;响应限制 10 MiB,最多 3 次重定向。
  • 不转发 Cookie 或 Authorization,不信任 Content-Type,拒绝 HTML、SVG 和非支持格式。
  • 以 URL 和实际图片字节生成确定性 fileId;同内容去重,内容变化生成新媒体记录,重复创建的 created_at 保留首次写入时间。
  • 业务错误沿用 HTTP 200 和标准错误信封,与现有 JSON API 约定一致。
  • 补充 undici 显式依赖、API surface 快照及中英文 server-api.md 参考;文档明确 Web Markdown 渲染会自动调用该端点,可能访问 daemon 可达的内网地址。
  • 从 kimi-code-app b9b570d4 构建并同步 dist-web,使打包后的 kimi web 包含 renderer 自动加载、合法 Markdown 目标、raw HTML <img src> 属性解析与 parser token 上下文过滤、resolver 换代重取、重复图片缓存以及共享后台请求预算。dist 构建的 kc 基线为 979304401。

Behavior Changes and Affected Users

Behavior Before After Who relies on the old behavior Escape hatch
远程 HTTP(S) 图片加载 原地址直接进入图片加载路径,受 CSP、混合内容和网络可达性影响 渲染时自动经 daemon 转存并显示 使用内网 Web 和官方 Remote Control 的用户 转存失败保留原始来源及普通图片错误行为
daemon 网络请求 渲染远程图片不会主动经 daemon 取图 渲染即请求,可能访问 daemon 可达的 RFC1918 地址;切换会话会取消客户端读取,media POST 与 blob GET 共享后台预算,最多两个在途请求 会话正文包含远程图片的用户 无独立开关;@qilongyu 已明确选择自动加载方案,保留目标、重定向、超时、大小与格式限制
私网及特殊目标 内网地址能否显示取决于浏览器环境 允许 RFC1918;阻断回环、链路本地、组播及其他高风险目标,重定向逐跳复查 需要 daemon 内网图片的用户 不支持的地址返回 40001,不改为浏览器直连
代理与 DNS 没有该路径 代理连接使用已验证 IP 并保留 Host/SNI;直连、无效代理和 NO_PROXY 固定 DNS 使用 HTTP(S)/SOCKS 代理或直连的部署 不需要
响应格式和大小 没有该校验 仅接受 PNG、JPEG、GIF、WebP、AVIF,且不超过 10 MiB 依赖图片预览的用户 其他类型返回明确错误,不返回 HTML 或 SVG
重复图片与历史重挂 每个组件实例各自请求 并发和完成结果复用,成功结果进入有界历史缓存,created_at 保留首次写入时间 重复图片、长会话和窗口化历史 不需要
既有 session media 下载 按 fileId 下载 不变 既有附件、工具图片和历史会话 不需要

验证:

  • 服务端 5 个聚焦测试文件、64 条用例通过,覆盖代理目标 IP、Host 非默认端口与 IPv6 authority、SNI、异常凭证、同源下载、去重、创建时间保持、HTML、超限、非法目标、重定向循环、API surface 和代理真值表。
  • agent-core-v2 与 kap-server typecheck、变更文件 lint 通过;中英文文档 vitepress build 通过。
  • 前端定向 42 条、app-core + app-markdown 全量 123 文件/1951 条、typecheck 和 lint 通过。
  • b9b570d4 最终 dist 非回环生产页面:Markdown、单引号、等号空白和 &amp; 共 4 张 640×360 图片零点击显示;原 URL 浏览器请求为 0,仅 2 个唯一 URL 经 daemon 转存,重载增量取图 2 次且媒体 ID 稳定,代码示例、引用缩进与转义文本不改写,Console 为空。
  • 同一最终 dist 官方 code-rc.kimi.com 页面:上述指标全部一致,4 张图均为 data: 显示且零点击,代码示例与转义文本保留原文。

Checklist

  • I have read the CONTRIBUTING document.
  • I have linked a related issue, or explained the problem above.
  • I have added tests that prove my feature works.
  • The behavior-change table above is complete, and every removed behavior or flipped default is named in the changeset and either has an escape hatch or was explicitly approved by a maintainer in this PR.
  • Ran gen-changesets skill and included the approved patch changeset.
  • Ran gen-docs workflow and updated the bilingual server-api.md reference.

@changeset-bot

changeset-bot Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: e8ab62a

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@moonshot-ai/kimi-code Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-27T08:21:53.043885Z ab1b924 Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@pkg-pr-new

pkg-pr-new Bot commented Oct 26, 2026 •

Copy link
Copy Markdown
pnpm dlx https://pkg.pr.new/@moonshot-ai/kimi-code@e8ab62a
npx https://pkg.pr.new/@moonshot-ai/kimi-code@e8ab62a

commit: e8ab62a

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 295de97d50

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

@kimi-agent-bot

Copy link
Copy Markdown
Collaborator Author

@codex review
已 resolve 的主题代表我们的判断取舍与当前代码现状,请勿重复提出(其余约定同首轮)。

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5015f346e4

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a61d1f9c07

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

code-app: 3435347eb384f192ffa66ebe6f1558e7c31cb1f0
code-app: 3435347eb384f192ffa66ebe6f1558e7c31cb1f0
code-app: 3435347eb384f192ffa66ebe6f1558e7c31cb1f0
code-app: 3435347eb384f192ffa66ebe6f1558e7c31cb1f0
@kimi-agent-bot

Copy link
Copy Markdown
Collaborator Author

@codex review
已 resolve 的主题代表我们的判断取舍与当前代码现状,请勿重复提出(其余约定同首轮)。

@kimi-agent-bot

Copy link
Copy Markdown
Collaborator Author

@codex review
已 resolve 的主题代表我们的判断取舍与当前代码现状,请勿重复提出(其余约定同首轮)。

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Chef's kiss.

Reviewed commit: f25f5f53f4

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

kimi-agent-bot and others added 12 commits October 27, 2026 06:03
…-media

# Conflicts:
#	apps/kimi-code/dist-web/assets/CodeBlockNode-Dg2zk5_M.js
#	apps/kimi-code/dist-web/assets/CodeBlockNode-FrjIAVsW.js
#	apps/kimi-code/dist-web/assets/CodeBlockNode-x8gR_NJ_.js
#	apps/kimi-code/dist-web/assets/PreCodeBlock-D94rgfjG.js
#	apps/kimi-code/dist-web/assets/PreCodeBlock-DEHd0iRE.js
#	apps/kimi-code/dist-web/assets/PreCodeBlock-aZLOMBKx.js
#	apps/kimi-code/dist-web/assets/Tooltip-4PNR_f15.js
#	apps/kimi-code/dist-web/assets/Tooltip-Ck3rGjEN.js
#	apps/kimi-code/dist-web/assets/Tooltip-DOIl-g3Z.js
#	apps/kimi-code/dist-web/assets/abnfDiagram-VRR7QNED-CotUlgiX.js
#	apps/kimi-code/dist-web/assets/abnfDiagram-VRR7QNED-D8ez8uim.js
#	apps/kimi-code/dist-web/assets/abnfDiagram-VRR7QNED-z_-0ai5E.js
#	apps/kimi-code/dist-web/assets/arc-CRRKlX-p.js
#	apps/kimi-code/dist-web/assets/arc-Kxg5RAqF.js
#	apps/kimi-code/dist-web/assets/arc-yHJSvV1U.js
#	apps/kimi-code/dist-web/assets/architectureDiagram-ZJ3FMSHR-2Xshi7A1.js
#	apps/kimi-code/dist-web/assets/architectureDiagram-ZJ3FMSHR-DYSAHB-D.js
#	apps/kimi-code/dist-web/assets/architectureDiagram-ZJ3FMSHR-ddPbJ_Dn.js
#	apps/kimi-code/dist-web/assets/blockDiagram-677ZJIJ3-BRka2cox.js
#	apps/kimi-code/dist-web/assets/blockDiagram-677ZJIJ3-XV6naLkL.js
#	apps/kimi-code/dist-web/assets/blockDiagram-677ZJIJ3-nbJ7ibuc.js
#	apps/kimi-code/dist-web/assets/c4Diagram-LMCZKHZV-BDG3tEBQ.js
#	apps/kimi-code/dist-web/assets/c4Diagram-LMCZKHZV-CSkBryI0.js
#	apps/kimi-code/dist-web/assets/c4Diagram-LMCZKHZV-Zl3SUqMT.js
#	apps/kimi-code/dist-web/assets/chunk-2Q5K7J3B-BS0wtbmS.js
#	apps/kimi-code/dist-web/assets/chunk-2Q5K7J3B-Bj3vlj3y.js
#	apps/kimi-code/dist-web/assets/chunk-2Q5K7J3B-CQzCXLEo.js
#	apps/kimi-code/dist-web/assets/chunk-32BRIVSS-B8gSFtLK.js
#	apps/kimi-code/dist-web/assets/chunk-32BRIVSS-BTCF-OeH.js
#	apps/kimi-code/dist-web/assets/chunk-32BRIVSS-Bb3U5zL8.js
#	apps/kimi-code/dist-web/assets/chunk-5VM5RSS4-C2_xpzY3.js
#	apps/kimi-code/dist-web/assets/chunk-5VM5RSS4-CnrQ4AgJ.js
#	apps/kimi-code/dist-web/assets/chunk-5VM5RSS4-Hotp8-MV.js
#	apps/kimi-code/dist-web/assets/chunk-EX3LRPZG-4ZFETIzN.js
#	apps/kimi-code/dist-web/assets/chunk-EX3LRPZG-BMjh3OP2.js
#	apps/kimi-code/dist-web/assets/chunk-EX3LRPZG-DF_zG2Y9.js
#	apps/kimi-code/dist-web/assets/chunk-JWPE2WC7-Bgwiccxa.js
#	apps/kimi-code/dist-web/assets/chunk-JWPE2WC7-BjNuQPlQ.js
#	apps/kimi-code/dist-web/assets/chunk-JWPE2WC7-CFaSk12U.js
#	apps/kimi-code/dist-web/assets/chunk-MOJQB5TN-BStXauDi.js
#	apps/kimi-code/dist-web/assets/chunk-MOJQB5TN-CClISXJW.js
#	apps/kimi-code/dist-web/assets/chunk-MOJQB5TN-nz6Iv7r_.js
#	apps/kimi-code/dist-web/assets/chunk-RYQCIY6F-CtJVzlJD.js
#	apps/kimi-code/dist-web/assets/chunk-RYQCIY6F-H_GYUYTT.js
#	apps/kimi-code/dist-web/assets/chunk-RYQCIY6F-MtH8gVIz.js
#	apps/kimi-code/dist-web/assets/chunk-V7JOEXUC-B6kqo8yw.js
#	apps/kimi-code/dist-web/assets/chunk-V7JOEXUC-BaymY5AQ.js
#	apps/kimi-code/dist-web/assets/chunk-V7JOEXUC-DUDFnGWS.js
#	apps/kimi-code/dist-web/assets/chunk-VR4S4FIN-6KTLnXIA.js
#	apps/kimi-code/dist-web/assets/chunk-VR4S4FIN-Cm7c9b3N.js
#	apps/kimi-code/dist-web/assets/chunk-VR4S4FIN-DMqAUMdK.js
#	apps/kimi-code/dist-web/assets/chunk-XXDRQBXY-BRRtW_Of.js
#	apps/kimi-code/dist-web/assets/chunk-XXDRQBXY-C3Eg_yuO.js
#	apps/kimi-code/dist-web/assets/chunk-XXDRQBXY-Vyf77H8-.js
#	apps/kimi-code/dist-web/assets/cose-bilkent-JH36ORCC-BysPcHQG.js
#	apps/kimi-code/dist-web/assets/cose-bilkent-JH36ORCC-CEByoa7c.js
#	apps/kimi-code/dist-web/assets/cose-bilkent-JH36ORCC-D8ns0-Kn.js
#	apps/kimi-code/dist-web/assets/cynefin-VYW2F7L2-Bp-nxK3W.js
#	apps/kimi-code/dist-web/assets/cynefin-VYW2F7L2-CUpZalar.js
#	apps/kimi-code/dist-web/assets/cynefin-VYW2F7L2-rK0CO-KU.js
#	apps/kimi-code/dist-web/assets/cynefinDiagram-TSTJHNR4-BkQYJXmy.js
#	apps/kimi-code/dist-web/assets/cynefinDiagram-TSTJHNR4-DNB4URbz.js
#	apps/kimi-code/dist-web/assets/cynefinDiagram-TSTJHNR4-PvbCPnDc.js
#	apps/kimi-code/dist-web/assets/dagre-VKFMJZFB-Bak3gZ-0.js
#	apps/kimi-code/dist-web/assets/dagre-VKFMJZFB-BzVLGs_J.js
#	apps/kimi-code/dist-web/assets/dagre-VKFMJZFB-D3G9Vr0i.js
#	apps/kimi-code/dist-web/assets/diagram-FQU43EPY-CXQluzPH.js
#	apps/kimi-code/dist-web/assets/diagram-FQU43EPY-D1AImL9B.js
#	apps/kimi-code/dist-web/assets/diagram-FQU43EPY-rDegz4b3.js
#	apps/kimi-code/dist-web/assets/diagram-G47NLZAW-D-K95T9W.js
#	apps/kimi-code/dist-web/assets/diagram-G47NLZAW-D3ClfJKk.js
#	apps/kimi-code/dist-web/assets/diagram-G47NLZAW-gEcij-QO.js
#	apps/kimi-code/dist-web/assets/diagram-NH7WQ7WH-DDebk1_p.js
#	apps/kimi-code/dist-web/assets/diagram-NH7WQ7WH-D_4fbKb7.js
#	apps/kimi-code/dist-web/assets/diagram-NH7WQ7WH-vAxkrrkL.js
#	apps/kimi-code/dist-web/assets/diagram-OA4YK3LP-538HDlwm.js
#	apps/kimi-code/dist-web/assets/diagram-OA4YK3LP-BnCNL17Z.js
#	apps/kimi-code/dist-web/assets/diagram-OA4YK3LP-BsrC9VRN.js
#	apps/kimi-code/dist-web/assets/diagram-WEI45ONY-BMdVxUiC.js
#	apps/kimi-code/dist-web/assets/diagram-WEI45ONY-CSG_MF25.js
#	apps/kimi-code/dist-web/assets/diagram-WEI45ONY-Cq5_ZmJn.js
#	apps/kimi-code/dist-web/assets/ebnfDiagram-CCIWWBDH-Bjmv1ZVB.js
#	apps/kimi-code/dist-web/assets/ebnfDiagram-CCIWWBDH-CfKSmD2e.js
#	apps/kimi-code/dist-web/assets/ebnfDiagram-CCIWWBDH-ydUyyG4g.js
#	apps/kimi-code/dist-web/assets/erDiagram-Q63AITRT-1GF9mnaH.js
#	apps/kimi-code/dist-web/assets/erDiagram-Q63AITRT-B7q8kFgm.js
#	apps/kimi-code/dist-web/assets/erDiagram-Q63AITRT-NbYQo7r5.js
#	apps/kimi-code/dist-web/assets/flowDiagram-23GEKE2U-BwfyZNsI.js
#	apps/kimi-code/dist-web/assets/flowDiagram-23GEKE2U-Cuk5Zydr.js
#	apps/kimi-code/dist-web/assets/flowDiagram-23GEKE2U-Dp3ubqO7.js
#	apps/kimi-code/dist-web/assets/ganttDiagram-NO4QXBWP-6TLLIXAF.js
#	apps/kimi-code/dist-web/assets/ganttDiagram-NO4QXBWP-BRY0H5yQ.js
#	apps/kimi-code/dist-web/assets/ganttDiagram-NO4QXBWP-iqkAOm8t.js
#	apps/kimi-code/dist-web/assets/gitGraphDiagram-IHSO6WYX-D3uFEC45.js
#	apps/kimi-code/dist-web/assets/gitGraphDiagram-IHSO6WYX-kNRoKY5x.js
#	apps/kimi-code/dist-web/assets/gitGraphDiagram-IHSO6WYX-lBCgA8WD.js
#	apps/kimi-code/dist-web/assets/index-8y9QBU_r.js
#	apps/kimi-code/dist-web/assets/index-C9xxDdJ0.js
#	apps/kimi-code/dist-web/assets/index-CM1IMrEN.js
#	apps/kimi-code/dist-web/assets/index-CWMEBP78.js
#	apps/kimi-code/dist-web/assets/index-Cj6xJi2l.css
#	apps/kimi-code/dist-web/assets/index-D7dp20Xg.js
#	apps/kimi-code/dist-web/assets/index-DB5hgseU.js
#	apps/kimi-code/dist-web/assets/index-DLFZel9T.js
#	apps/kimi-code/dist-web/assets/index-Dnz6Zudc.js
#	apps/kimi-code/dist-web/assets/index-Oir-Bw7N.js
#	apps/kimi-code/dist-web/assets/index10-DV07IRf8.js
#	apps/kimi-code/dist-web/assets/index10-DiIUkfno.js
#	apps/kimi-code/dist-web/assets/index10-bV3Rt9BF.js
#	apps/kimi-code/dist-web/assets/index5-C8WgbVEm.js
#	apps/kimi-code/dist-web/assets/index5-CjSUSUGm.js
#	apps/kimi-code/dist-web/assets/index5-DJaRod2m.js
#	apps/kimi-code/dist-web/assets/index6-C48ZivJ7.js
#	apps/kimi-code/dist-web/assets/index6-DF48fEGJ.js
#	apps/kimi-code/dist-web/assets/index6-DNCbjemX.js
#	apps/kimi-code/dist-web/assets/index8-B0-UsTuT.js
#	apps/kimi-code/dist-web/assets/index8-Cv4eRvXY.js
#	apps/kimi-code/dist-web/assets/index8-JPoqVwoP.js
#	apps/kimi-code/dist-web/assets/index9-BIqXoaM4.js
#	apps/kimi-code/dist-web/assets/index9-C7g8huPm.js
#	apps/kimi-code/dist-web/assets/index9-djyIJPZT.js
#	apps/kimi-code/dist-web/assets/infoDiagram-FWYZ7A6U-CM68LLn5.js
#	apps/kimi-code/dist-web/assets/infoDiagram-FWYZ7A6U-CbULgfiG.js
#	apps/kimi-code/dist-web/assets/infoDiagram-FWYZ7A6U-DV6Y-9ht.js
#	apps/kimi-code/dist-web/assets/ishikawaDiagram-FXEZZL3T-CzOmYQGA.js
#	apps/kimi-code/dist-web/assets/ishikawaDiagram-FXEZZL3T-DxjCV1Mg.js
#	apps/kimi-code/dist-web/assets/ishikawaDiagram-FXEZZL3T-HdJO8tF7.js
#	apps/kimi-code/dist-web/assets/journeyDiagram-5HDEW3XC-Bn6UdTtP.js
#	apps/kimi-code/dist-web/assets/journeyDiagram-5HDEW3XC-DCD13lTN.js
#	apps/kimi-code/dist-web/assets/journeyDiagram-5HDEW3XC-DdDQ0_T8.js
#	apps/kimi-code/dist-web/assets/kanban-definition-HUTT4EX6-C694GrZx.js
#	apps/kimi-code/dist-web/assets/kanban-definition-HUTT4EX6-CH__Aque.js
#	apps/kimi-code/dist-web/assets/kanban-definition-HUTT4EX6-D46M2hPT.js
#	apps/kimi-code/dist-web/assets/linear-B5upMr8Z.js
#	apps/kimi-code/dist-web/assets/linear-B6spGXyl.js
#	apps/kimi-code/dist-web/assets/linear-rQmBrEzK.js
#	apps/kimi-code/dist-web/assets/markstream-CKIG7FpF.js
#	apps/kimi-code/dist-web/assets/markstream-CqtaxtIA.js
#	apps/kimi-code/dist-web/assets/markstream-UDoFrbnV.js
#	apps/kimi-code/dist-web/assets/mermaid.core-AN7v7N47.js
#	apps/kimi-code/dist-web/assets/mermaid.core-BtsOPbRA.js
#	apps/kimi-code/dist-web/assets/mermaid.core-DY8EMjrF.js
#	apps/kimi-code/dist-web/assets/mindmap-definition-LN4V7U3C-B25hoRAR.js
#	apps/kimi-code/dist-web/assets/mindmap-definition-LN4V7U3C-BR6flmX-.js
#	apps/kimi-code/dist-web/assets/mindmap-definition-LN4V7U3C-D6hZ84pJ.js
#	apps/kimi-code/dist-web/assets/pegDiagram-2B236MQR-5QUBzIeQ.js
#	apps/kimi-code/dist-web/assets/pegDiagram-2B236MQR-D11k8twc.js
#	apps/kimi-code/dist-web/assets/pegDiagram-2B236MQR-Dqj-SYF9.js
#	apps/kimi-code/dist-web/assets/pieDiagram-ENE6RG2P-20m7Rknt.js
#	apps/kimi-code/dist-web/assets/pieDiagram-ENE6RG2P-Bxrj0TDW.js
#	apps/kimi-code/dist-web/assets/pieDiagram-ENE6RG2P-CwYDxGla.js
#	apps/kimi-code/dist-web/assets/quadrantDiagram-ABIIQ3AL-BPSI_vWW.js
#	apps/kimi-code/dist-web/assets/quadrantDiagram-ABIIQ3AL-CtlNm0IB.js
#	apps/kimi-code/dist-web/assets/quadrantDiagram-ABIIQ3AL-DDv57tFq.js
#	apps/kimi-code/dist-web/assets/railroadDiagram-RFXS5EU6-ABT3be4u.js
#	apps/kimi-code/dist-web/assets/railroadDiagram-RFXS5EU6-CN0M3PBc.js
#	apps/kimi-code/dist-web/assets/railroadDiagram-RFXS5EU6-I9sb5DNu.js
#	apps/kimi-code/dist-web/assets/requirementDiagram-TGXJPOKE-DBTp-jfn.js
#	apps/kimi-code/dist-web/assets/requirementDiagram-TGXJPOKE-DbHli6K8.js
#	apps/kimi-code/dist-web/assets/requirementDiagram-TGXJPOKE-DeasTYe2.js
#	apps/kimi-code/dist-web/assets/sankeyDiagram-HTMAVEWB-2F9dtxKD.js
#	apps/kimi-code/dist-web/assets/sankeyDiagram-HTMAVEWB-BFMFIBNb.js
#	apps/kimi-code/dist-web/assets/sankeyDiagram-HTMAVEWB-CqlcFoHA.js
#	apps/kimi-code/dist-web/assets/sequenceDiagram-DBY2YBRQ-BGEjue4x.js
#	apps/kimi-code/dist-web/assets/sequenceDiagram-DBY2YBRQ-CIkwuMcW.js
#	apps/kimi-code/dist-web/assets/sequenceDiagram-DBY2YBRQ-DVB5lIDi.js
#	apps/kimi-code/dist-web/assets/sizeCapture-X5ZJPWSS-CplFtctO.js
#	apps/kimi-code/dist-web/assets/sizeCapture-X5ZJPWSS-D1OKv4-0.js
#	apps/kimi-code/dist-web/assets/sizeCapture-X5ZJPWSS-TaJA43Gu.js
#	apps/kimi-code/dist-web/assets/stateDiagram-2N3HPSRC-C1Huslxu.js
#	apps/kimi-code/dist-web/assets/stateDiagram-2N3HPSRC-CXBWz54d.js
#	apps/kimi-code/dist-web/assets/stateDiagram-2N3HPSRC-D4HN_SRR.js
#	apps/kimi-code/dist-web/assets/swimlanes-5IMT3BWC-B-JVJz90.js
#	apps/kimi-code/dist-web/assets/swimlanes-5IMT3BWC-Dq3EyHqU.js
#	apps/kimi-code/dist-web/assets/swimlanes-5IMT3BWC-tHqSJXwl.js
#	apps/kimi-code/dist-web/assets/timeline-definition-FHXFAJF6-BOOttnU8.js
#	apps/kimi-code/dist-web/assets/timeline-definition-FHXFAJF6-Cmkj9bPT.js
#	apps/kimi-code/dist-web/assets/timeline-definition-FHXFAJF6-CtfiYMLL.js
#	apps/kimi-code/dist-web/assets/vennDiagram-L72KCM5P-BnRZHHu9.js
#	apps/kimi-code/dist-web/assets/vennDiagram-L72KCM5P-Bur71wRn.js
#	apps/kimi-code/dist-web/assets/vennDiagram-L72KCM5P-xhWsio5M.js
#	apps/kimi-code/dist-web/assets/vue.runtime.esm-bundler-Bvx-UDBM.js
#	apps/kimi-code/dist-web/assets/vue.runtime.esm-bundler-CSen4mnJ.js
#	apps/kimi-code/dist-web/assets/vue.runtime.esm-bundler-DNAYnL9g.js
#	apps/kimi-code/dist-web/assets/wardleyDiagram-EHGQE667-B0DWPfyL.js
#	apps/kimi-code/dist-web/assets/wardleyDiagram-EHGQE667-Cex5DIJb.js
#	apps/kimi-code/dist-web/assets/wardleyDiagram-EHGQE667-Ctr798MD.js
#	apps/kimi-code/dist-web/assets/xychartDiagram-FW5EYKEG-CNK63K_A.js
#	apps/kimi-code/dist-web/assets/xychartDiagram-FW5EYKEG-CO75_OFH.js
#	apps/kimi-code/dist-web/assets/xychartDiagram-FW5EYKEG-Dvaf_OjS.js
#	apps/kimi-code/dist-web/index.html
#	packages/kap-server/test/__snapshots__/apiSurface.snapshot.test.ts.snap
code-app: e48dbf53cc386761584370c2b52829f5d08f2417
code-app: e48dbf53cc386761584370c2b52829f5d08f2417
code-app: e48dbf53cc386761584370c2b52829f5d08f2417
code-app: e48dbf53cc386761584370c2b52829f5d08f2417
code-app: e48dbf53cc386761584370c2b52829f5d08f2417
code-app: e48dbf53cc386761584370c2b52829f5d08f2417
code-app: e48dbf53cc386761584370c2b52829f5d08f2417
code-app: e48dbf53cc386761584370c2b52829f5d08f2417
code-app: e48dbf53cc386761584370c2b52829f5d08f2417
code-app: e48dbf53cc386761584370c2b52829f5d08f2417
@kimi-agent-bot

Copy link
Copy Markdown
Collaborator Author

@codex review
已 resolve 的主题代表我们的判断取舍与当前代码现状,请勿重复提出(其余约定同首轮)。

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c6d1965c0f

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

@kimi-agent-bot

Copy link
Copy Markdown
Collaborator Author

@codex review
已 resolve 的主题代表我们的判断取舍与当前代码现状,请勿重复提出(其余约定同首轮)。

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f29ccfba20

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

@kimi-agent-bot

Copy link
Copy Markdown
Collaborator Author

@codex review
已 resolve 的主题代表我们的判断取舍与当前代码现状,请勿重复提出(其余约定同首轮)。

@chatgpt-codex-connector

Copy link
Copy Markdown

💡 Codex Review

return resolveSocksProxy(env) !== undefined;

P2 Badge 捕获非法 SOCKS 凭据的解码异常

当仅配置 ALL_PROXY=socks5://user:%ZZ@proxy:1080(或其他凭据含非法百分号转义的 SOCKS 变量)时,这个新调用会让 resolveSocksProxy 中的 decodeURIComponent 抛出 URIError,因此 session-media 端点在发起请求前就返回 50001;启动时的 createProxyDispatcher 对同一配置却会捕获异常并按约定回退直连。此前 HTTP %ZZ 修复之外的新证据是 SOCKS-only 分支没有经过 isValidHttpProxyUrl,请在这里同样验证或捕获解码失败并保留固定 DNS 的直连回退。

AGENTS.md reference: AGENTS.md:L127-L129


https://github.com/MoonshotAI/kimi-code/blob/ab1b92427bc8095b191a840e03567c180ac22435/apps/kimi-code/dist-web/assets/index-Cunl79RR.js#L589
P2 Badge 解析合法的 raw HTML 图片属性

在已提交的 Web bundle 中,这个扫描器只识别精确的双引号形式 src="...";当模型输出同样合法且常见的 <img src='https://...'>、src = "..." 或包含 HTML 实体的 URL 时,resolver 不会运行,标签仍直接请求远端。非回环 CSP、HTTPS 混合内容或远程浏览器无法访问 daemon 内网的场景下,这些 raw HTML 图片仍然无法显示;请在 code-app 源码中按 HTML 属性语义解析并重新同步 bundle。

AGENTS.md reference: AGENTS.md:L18-L18

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

This branch has not been deployed

No deployments
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.

1 participant