Skip to content

fix: zip-slip + i18n 缺口 + updater 结果契约 DRY(审查 8d206ff) - #52

Merged
Tanya7z merged 2 commits into
mainfrom
cursor/bc-ec99cb0f-d167-4c8d-8f37-bfc67fe5f7cb-35e9
Jul 23, 2026
Merged

fix: zip-slip + i18n 缺口 + updater 结果契约 DRY(审查 8d206ff)#52
Tanya7z merged 2 commits into
mainfrom
cursor/bc-ec99cb0f-d167-4c8d-8f37-bfc67fe5f7cb-35e9

Conversation

@cursor

@cursor cursor Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Summary

审查 main@8d206ff(多语言 / updater 进度条 / docs)与遗留 #51(与 updater 改动冲突)。ootb 绿;本 PR 直接修可验证问题并合入 #51 安全修复。

BLOCKER — zip-slip / 静默覆盖(DRY)

  • 新增 bds-tools/src/zipx.tsworld-packs.extractArchiveToTempcheck-update.extractZipToBds 共用安全解压
  • installPackDirectory:残缺 manifest 同名目录也必须 conflict,禁止静默 rm+覆盖

MAJOR — LSP / Demeter

  • listInstalledWorldPacks fallback 与正常路径统一用 enabledMap.has
  • packs doctorlistWorldEnableEntriesreadWorldPackList,不再硬编码 world_*_packs.json

MAJOR — DRY / DIP(本轮 i18n+updater)

  • SFMC_UPDATE_RESULT=*bds-tools/update-resultemitUpdateResult / didUpdateDeploy
  • OSC 剥离 → taskbar.stripTaskbarOsc(与写入侧同一权威)
  • postModuleToggle 成功/失败文案走 t()packs list 头与 on/off 本地化;补全 zh-CN installInbox/scanResult

MINOR

  • resolveSdkPackageRoot 优先 @sfmc-bds/sdk/package.json export
  • cli-pack-manager world-packs 动词合并(OCP/DRY)

取代 冲突中的 #51(同安全修复已 rebase 到当前 main)。

Test plan

  • npm run build --workspaces --if-present
  • cd bds-tools && npm test → 18/18
  • cd sfmc && npm run typecheck
  • SFMC_ROOT=$PWD node tools/check-ootb.mjs → 12/12
Open in Web View Automation 

审查 main@8d206ff(i18n/updater/docs)与遗留 #51:
- BLOCKER(DRY): zipx 安全解压,world-packs/check-update 共用
- BLOCKER: installPackDirectory 残缺 manifest 同名不再静默覆盖
- MAJOR(LSP/Demeter): enabledMap 统一;doctor 经 listWorldEnableEntries
- MAJOR(DRY): SFMC_UPDATE_RESULT / stripTaskbarOsc 抽到 bds-tools 权威模块
- MAJOR(i18n/LSP): postModuleToggle 与 packs list 头/开关走 t();补全 zh-CN 收件箱文案

Co-authored-by: Shiroha <Tanya7z@users.noreply.github.com>
@Tanya7z
Tanya7z marked this pull request as ready for review July 23, 2026 15:58
@cursor

cursor Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor Author

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@Tanya7z
Tanya7z merged commit 471d5c9 into main Jul 23, 2026
1 check failed
@Tanya7z
Tanya7z deleted the cursor/bc-ec99cb0f-d167-4c8d-8f37-bfc67fe5f7cb-35e9 branch July 23, 2026 15:58
cursor Bot pushed a commit that referenced this pull request Jul 23, 2026
审查 main@e95d81e ootb 红(#51+#52 合并残留)后 #54 已修 TS2300;
本补丁收敛遗留 SOLID 债:
- MAJOR(DRY): tools/fetch-module 解压委托 @sfmc-bds/bds-tools/zipx
- MAJOR(LSP): readWorldPackListResult 恢复 doctor parseFail 信号
- MINOR(DRY): cmdUpdate 直接 stripTaskbarOsc,去掉无用 stripOsc 别名

Co-authored-by: Shiroha <Tanya7z@users.noreply.github.com>
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.

2 participants