Skip to content

feat(shared): workspace 引擎自 mjbase workspace 模块移交入仓 - #28

Merged
luiox merged 1 commit into
mainfrom
feat/absorb-workspace-engine
Oct 29, 2026
Merged

luiox merged 1 commit into
mainfrom
feat/absorb-workspace-engine

Conversation

@luiox

@luiox luiox commented Oct 29, 2026

Copy link
Copy Markdown
Owner

背景

mjbase 侧裁决:workspace 模块整体退役——WorkspaceBase 把可编辑资源容器的形态绑死在 class/JAR 视图上,下游要挂 dex/apk 等其他容器形态时无法自定义;「资源容器 + 分析项目」的正确分层不属于基座,下游自理。本 PR 先行把引擎整体移交进 mjt,后续 mjbase PR 删模块。

内容

  • 引擎整体搬迁:mjbase src/mjbase/workspace/ 12 个源文件(约 9k 行)→ mjt/src/workspace/,5 个测试文件 → mjt/test/workspace/(40 例),正文零改动。
  • 命名空间迁属:mjbase::workspace → mjt::workspace(避免与 mjbase 侧未删副本的链接符号冲突)。兄弟域(model/jasm/project/spi/hierarchy/mapping/analysis/asm_remapper)原以相对形引用,经空 namespace 前置 + 显式别名保持正文原形可解析。
  • 消费面更新:mjbase::workspace:: 限定名全量换 mjt::workspace::(mcp tool 14 文件、shared 3 文件、pysdk bind_core、2 个 mcp 测试)。
  • 构建接线:mjt_shared 收编引擎源;mjt_pysdk/mjt_pysdk_unittest 按既有直编 shared 源形态补 workspace 源;新增 mjt_workspace_unittest 靶。

验证

  • mjt_workspace_unittest 40/40(随迁套件,仅改 include 形态与 test::setup("mjt"))
  • mjt_mcp_unittest 116 + 1 skip(基线持平,delete-then-rebuild 后复跑)
  • mjt_pysdk_unittest 44/44(基线持平)
  • mjt-mcp 产品靶构建通过

合入顺序

本 PR 先合;mjbase 侧删模块 PR 在其后(两仓 CI 互相独立,顺序仅保证中间态无双重定义)。

- 12 个引擎源文件落 mjt/src/workspace,命名空间 mjbase::workspace →
  mjt::workspace;兄弟域(model/jasm/project/spi/hierarchy/mapping/
  analysis/asm_remapper)经空 namespace 前置 + 显式别名保持正文相对
  引用形零改动
- 消费面限定名全量换 mjt::workspace:::mcp tool 全套、shared
  (jar_workspace/jar_remapper/status_convert)、pysdk bind_core
- mjt_shared 收编引擎源;mjt_pysdk/mjt_pysdk_unittest 按既有直编形态
  补 workspace 源;新增 mjt_workspace_unittest(40 例)随迁
@luiox
luiox merged commit 418b445 into main Oct 29, 2026
3 checks passed
@luiox
luiox deleted the feat/absorb-workspace-engine branch October 29, 2026 12:13
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