[Bug]: SSH-style `host:path` references in chat never become file chips
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 2/5
- 预计耗时
- 1-3 小时
- 新手友好度
- 72/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 活跃
- 技术栈
- typescript
- 领域
- frontend
调研方向
从 packages/client-runtime/src/markdownLinks.ts 中的 parseMarkdownFileLink 开始,检查在进行路径检查之前如何应用 EXTERNAL_SCHEME_PATTERN。复现 issue 中的 host:path 和 bare-path 示例,然后验证所选择的行为:支持时,host:path 引用应转换为 file chips;否则应继续明确记录为超出范围,同时不能使 bare paths 发生回归。
由索引模型根据 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
- In any thread, have the agent (or yourself) write an SSH-style
host:pathreference in inline code, e.g.`devbox:~/notes/handoff.md`or`devbox:/home/me/notes/handoff.md`. - In the same message, include a plain path such as
`~/notes/handoff.md`for comparison.
Expected behavior
Either the host:path reference renders as a file chip (ideally resolved against the matching SSH environment when the host matches one), or this is documented as intentionally out of scope.
This may well be intended behavior; filing so maintainers can decide. The reverse direction already exists: #11229 makes "Copy full path" on a remote file chip produce host:path, so a chip copied from one thread and pasted into another currently doesn't round-trip back into a chip.
Actual behavior
The host:path reference stays as plain inline code. The bare ~/… path in the same message becomes a chip.
Cause (from reading main): parseMarkdownFileLink in packages/client-runtime/src/markdownLinks.ts rejects anything matching EXTERNAL_SCHEME_PATTERN (/^([A-Za-z][A-Za-z0-9+.-]*):(.*)$/). A hostname like devbox or devbox-doggo is a valid URL scheme under that pattern, so devbox:~/… is treated as an external URL (like mailto:) and dropped before any path checks run.
Impact
Minor bug or occasional failure
Version or commit
main @ c57a04b722
Environment
Linux server (remote environment), web/desktop client; agent output from Claude Code. Applies to any provider since detection is client-side.
Workaround
Write the path without the host prefix (~/… or an absolute path); it then resolves against the thread's environment.
Related: #11229 (copies host:path), #8251 (chips for files outside the project root fail to open).
🤖 Generated with Claude Code
- 主要语言
- TypeScript
- 星标
- 24.8k
- 派生
- 6.4k
- 平均合并
- 5 小时 30 分钟
- 30 天内合并 PR
- 215
环境准备
在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
pingdotgg/t3code 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 65/100
维护者通常 1 天内回复
-
[Bug]: Diff panel hides the current branch name and the arrow overlaps the base ref when the panel is narrow可能已有人在做 关联的 PR 仍在进行中或已合并。 未关闭accepted bug via-triage
难度 2/5 1-3 小时 新手友好度 72/100
pingdotgg/t3code#19048 · 1 条评论 ·
维护者通常 1 天内回复
-
[Bug] Windows repository cloning fails while creating an existing drive root可能已有人在做 @pujitha24 于 3 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 73/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 70/100
维护者通常 1 天内回复
-
[Bug]: iOS still shows "Failed to connect. Retrying" on every resume (follow-up to #5695)可能已有人在做 @otavio 于 2 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复
相似的 Issue
-
enhancement good first issue help wanted
难度 2/5 1-3 小时 新手友好度 78/100
OWASP/cve-lite-cli#1335 ·
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 66/100
code-yeongyu/senpi#3353 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复
-
Channels status: needs triage
难度 2/5 1-3 小时 新手友好度 70/100
mastra-ai/mastra#27093 · 1 条评论 ·
维护者通常 1 天内回复
-
enhancement needs-triage ui
难度 2/5 1-3 小时 新手友好度 86/100
维护者通常 1 天内回复