[Bug]: Private GitHub images in chat messages show "Image unavailable" (PR panel loads them)
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 2/5
- 预计耗时
- 1-3 小时
- 新手友好度
- 74/100
- Issue 类型
- 缺陷
- 描述清晰度
- 描述清楚
- 活跃度
- 活跃
- 技术栈
- github, react, typescript
- 领域
- frontend
调研方向
阅读 apps/web/src/components/ChatMarkdown.tsx,并比较 PullRequestMarkdown.tsx 如何传递 sourceControlMedia。追踪聊天记录的调用方,确定它如何知道某个线程是否有 cwd。当符合条件的线程能在聊天中显示私有 GitHub 图片,并且相关的聊天渲染行为有测试覆盖时,工作即告完成。
由索引模型根据 Issue 内容生成。
描述
Before submitting
- I searched existing issues and did not find a duplicate.
- I included enough detail to reproduce or investigate the problem.
Area
apps/web
Steps to reproduce
- Open a project whose repository is a private GitHub repo, signed in with
gh(the same setup where the pull request panel already shows that repo's images, after #11706). - Commit an image to the repo, e.g.
docs/shot.png. - Have the agent (or paste as a message) reply with Markdown that embeds it:

(araw.githubusercontent.comorgithub.com/user-attachments/assets/<id>URL behaves the same.) - Open the same pull request's tab, where that body image does render.
Expected behavior
The image renders in the chat transcript, the same way it renders in the pull request panel, since the server already holds the cwd's source control credential and already serves these URLs for the panel.
Actual behavior
The chat transcript shows "Image unavailable". The browser requests the URL without a credential and GitHub answers 404 (verified: same URL is 404 anonymously, 200 with gh auth).
Cause, on main @ 1152e9171a: ChatMarkdown only routes host media through the server when its sourceControlMedia prop is true (apps/web/src/components/ChatMarkdown.tsx, default false, check around line 1419). The only caller that sets it is PullRequestMarkdown.tsx (line 96). The chat transcript never passes it, so the fix from #11706 (and its move into the source control drivers in #23994) covers the pull request tab only.
Impact
Minor bug or occasional failure
Version or commit
Desktop 0.1.3 (Windows); code reading at main @ 1152e9171a
Environment
Windows 11 Pro, T3 Code desktop 0.1.3, Claude and Codex providers, private GitHub repo, gh authenticated with repo scope.
Workaround
Agents copy the image to a local folder and embed the local path in chat, keeping the GitHub URL only for the PR description. It works, but every agent has to remember it, and it is the usual way PR screenshots end up broken in the hand-back message.
Note
This is likely a small change (pass sourceControlMedia for assistant messages in a thread with a cwd), but it does make chat content able to trigger authenticated fetches of the repo's media, so I am filing it for triage first rather than sending a PR. Happy to send one if the direction is wanted.
- 主要语言
- TypeScript
- 星标
- 24.8k
- 派生
- 6.4k
- 平均合并
- 3 小时 21 分钟
- 30 天内合并 PR
- 297
环境准备
在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
pingdotgg/t3code 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
"Open question" banner opens an empty new thread when the child thread runs on a linked environment未关闭
难度 2/5 1-3 小时 新手友好度 74/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 66/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 66/100
pingdotgg/t3code#26989 · 1 个 reaction ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 76/100
维护者通常 1 天内回复
相似的 Issue
-
area:desktop area:ui bug platform:macos
难度 2/5 1-3 小时 新手友好度 67/100
anthropics/claude-code#106183 ·
维护者通常 1 天内回复
-
难度 1/5 1-3 小时 新手友好度 76/100
维护者通常 1 天内回复
-
feature:App-Tour feature:Chat ready Web
难度 2/5 1-3 小时 新手友好度 62/100
digitalfabrik/integreat-app#4523 · 2 个 reaction ·
维护者通常 3 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
Required Lexical field accepts two empty paragraphs可能已有人在做 @lazerg 今天认领。 未关闭Bug
难度 2/5 1-3 小时 新手友好度 76/100
payloadcms/payload#19222 ·
维护者通常 1 天内回复