Skip to content

fix(mobile): 修复远程消息文件在工作目录不可用时无法预览 - #3418

Closed
DavidShenXD wants to merge 1 commit into
mainfrom
cindy/tranquil-morse
Closed

fix(mobile): 修复远程消息文件在工作目录不可用时无法预览#3418
DavidShenXD wants to merge 1 commit into
mainfrom
cindy/tranquil-morse

Conversation

@DavidShenXD

Copy link
Copy Markdown
Collaborator

这次改了什么

摘要

修复手机端查看 PC B 消息文件时,远程工作目录探测超时会在读取目标文件前直接失败的问题。

  • 图片、PDF、音视频、文本和普通文档仍优先使用现有 workdir 相对路径能力,保留同目录翻页、120 秒两段式导出和 mtime 缓存。
  • 仅当导出任务创建前明确返回 REMOTE_WORKDIR_UNAVAILABLE 时,对消息最初点名的本地设备文件回退到既有受控绝对路径取件;分享复用相同规则。
  • 文本预览在同一错误码下回退既有 text-file:read-preview 能力。
  • SSH workdir 外路径在展示、预览、打开和分享各层 fail-closed,避免把 SSH 路径误交给 Desktop 本机读取。
  • 不新增 device-link channel、wire protocol、原生依赖或媒体持久化规则。

变更类型

  • feat 新功能
  • fix 缺陷修复
  • refactor / perf 重构或性能优化
  • docs / test / chore 文档、测试或工程维护
  • 其他:

范围

  • 关联 Issue / 需求:PC A 与手机远程访问 PC B 时,消息内图片和文档应具备一致的受控查看能力。
  • 本 PR 包含:Mobile 消息文件打开、预览、分享的 workdir 故障回退;SSH workdir 外路径安全收口;相关单测。
  • 明确不包含:不自动持久化 Agent 工具输出;不把 PDF、docx、zip 等文档写入 cindy-media;不修改 Desktop、服务端或跨端协议。
  • 用户可见变化:工作目录探测不可用时,手机仍可取回消息明确引用的普通图片和文档;SSH workdir 外路径不再显示为可操作文件。
  • 是否存在 breaking change:无。

UI 变化

涉及交互行为,不涉及视觉、布局或文案:保留现有文件 chip、Quick Look 与系统分享界面,只修正取件来源选择和 SSH 不安全路径的点亮门禁。

  • 引用的设计规范:docs/design-rules/DESIGN.md §14.5 文件路径 chip 的可信点亮与交互边界;本 PR 继续要求路径经远端 stat 判定,并对不可安全取回的 SSH workdir 外目标保持纯文本。

怎么验证的

自动验证

pnpm test:unit:related
结果:通过(apps/mobile related unit tests)

pnpm --filter mobile run --if-present typecheck
结果:通过

pnpm check:dco
结果:通过(1 个 commit 已签名)

另执行回退、路径分流、文件预览接线相关定向测试,共 120 项通过。

手工验证

未执行 Mobile 实机复测。

未执行的验证

未启动本 worktree 的 Metro,也没有可核验的 __DEV__ build label,因此未声明 Mobile 实机验证;完整单测由 GitHub CI 执行。

风险

风险分类

  • 无已知风险
  • SQLite / migration
  • system prompt
  • 协议兼容
  • 权限 / 安全 / 用户数据
  • 存量插件兼容(批准状态 / 指纹 / manifest 校验 / 安装布局 / 包格式)
  • 原生层 / fingerprint / OTA
  • 跨平台差异
  • 其他:workdir 故障态的大文件回退仍受既有单文件取件 30 秒上限约束。

影响与回滚

  • 影响范围:仅 Mobile 远程任务中的消息文件预览与分享分流;正常 workdir 路径继续使用原两段式导出。Windows / POSIX 绝对路径沿用既有编码;SSH workdir 内继续走可信相对路径。
  • 回滚 / 降级方式:可直接回滚本 commit;无 schema、migration、wire protocol、原生 fingerprint 或持久化数据变化。

提交前检查

  • 已 review 完整 diff
  • 每个 commit 都带 DCO 签名(git commit -s,见 DCO
  • UI 改动已在「UI 变化」注明引用的设计规范章节(不涉及 UI 则跳过)
  • 未提交凭证、令牌或授权文件
  • 已补充必要文档
  • 已确认测试结果或说明未执行原因

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