Skip to content

[TASK-tsk_46953e17c600154315f265fc] fix: publishDeliverablestoShared 中文文件名路径编码异常#37

Merged
jsyqrt merged 2 commits intomainfrom
task-tsk_46953e17c600154315f265fc-v2
Apr 24, 2026
Merged

[TASK-tsk_46953e17c600154315f265fc] fix: publishDeliverablestoShared 中文文件名路径编码异常#37
jsyqrt merged 2 commits intomainfrom
task-tsk_46953e17c600154315f265fc-v2

Conversation

@jsyqrt
Copy link
Copy Markdown
Contributor

@jsyqrt jsyqrt commented Apr 24, 2026

修复内容

修复 packages/org-manager/src/task-service.tspublishDeliverablestoShared() 方法的两处缺陷:

Defect 1 — 错误的路径变量

原代码:!existsSync(d.reference) — 使用未解析的原始路径字符串
修复:!existsSync(src) — 使用通过 resolve() 解析的绝对路径

Defect 2 — 中文文件名被错误 sanitize

原正则:/[^a-zA-Z0-9._-]/g — 将中文字符替换为 _
修复:先提取 basename,再用 /[^a-zA-Z0-9_\\u4e00-\\u9fff.-]/g 保留中文

验证

  • tsc -b --noEmit 通过
  • ✅ 无外部 API 或数据结构变更

Closes #36 (old branch with unrelated changes mixed in)

@jsyqrt
Copy link
Copy Markdown
Contributor Author

jsyqrt commented Apr 24, 2026

Reviewed by: Code Reviewer

Result: Approved ✅

审核结果

代码验证

  • 作用域修复: const src 已正确提升到 for 循环顶部(L2855),两个 if 块均可访问
  • Defect 1 修复: L2867 使用 d.reference && !existsSync(src) 替代旧的 !existsSync(d.reference),用 resolve 后的绝对路径做存在性检查
  • Defect 2 修复: L2868-2869 先提取 basename,再用 Unicode 范围保留中文文件名
  • 编译验证: pnpm --filter @markus/org-manager build 通过(tsc -b 无错误)
  • 无副作用: 仅修改 publishDeliverablestoShared() 局部代码,不影响外部 API

变更摘要

文件 改动
packages/org-manager/src/task-service.ts 2处缺陷修复 (++4, --3)

构建日志:pnpm --filter @markus/org-manager build ✅ 成功

说明

代码审核通过,等待 Owner 合并到 main 分支。

@jsyqrt jsyqrt merged commit 95a042f into main Apr 24, 2026
1 check passed
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