MooTool

Handy tool set for developers

View on GitHub

源码基线与参考地图

1. 本次事实范围

编写日期:2026-09-08;仓库 HEAD:9fdd13087c9c4da6f01872e3215e66053010cb59。本次读取当前工作树源码,未启动 Electron/Java 做实时视觉验收,未创建 Compose 工程。仓库存在其他产品及根发布文档的未提交修改,本次不修改它们。

项目 当前观察 证据(相对仓库根)
Electron 版本 1.1.4 next/package.json
Java 版本 Maven 1.8.6;UI 为 v1.8.6 pom.xmlsrc/main/java/com/luoboduner/moo/tool/ui/UiConsts.java
Compose 状态 编写文档前为空目录 next-compose/
导航 26 入口:1 首页 + 25 工具;6 个功能分组 next/src/app/toolRegistry.ts
沉浸布局 mootool 首页外全部工具 next/src/features/workbench/immersiveTools.ts
主窗口 默认 bounds 1440×920,最小 1080×720 next/electron/main/index.ts
视觉默认 modern、system、blue、UI 13、编辑器 14、统一背景 next/src/shared/contracts/settings.ts
导航默认 classic、展开、显示分隔线;最近使用默认不显示 同上;next/src/app/appStore.ts
导航宽度参照 展开 248,隐藏标题 84;CSS 后续覆盖也影响视觉 next/src/shared/styles/global.css
设置 主工作区内 SettingsPage,11 类;schemaVersion 12 Workbench.tsxSettingsWindow.tsxsettings.ts
文本编辑 CodeMirror 公共组件;随手记支持列编辑 next/src/shared/components/TextCodeEditor.tsx
历史 通用历史按 func_type 各保留最多 200 条 next/electron/main/historyRepository.ts
代码运行限制 源码 1 MiB、输出 2 MiB next/electron/main/runtimeExecutionService.ts
HTTP 限制 响应上限 10 MiB next/electron/main/networkService.ts

当前注册表里的 in-progress/parity-review/complete 是 Electron 作者的状态,不是 Compose 完成证据。README 中的“原型”和旧迁移计划中的“24 工具”也不能替代当前源码。

2. 证据优先级与差异处理

  1. 用户当前目标与明确决定。
  2. 本产品已记录的设计决定及对应验收。
  3. 冻结版本的 Electron 实际运行、源码和有效测试,互相矛盾时先复现。
  4. Java 对应功能、工具类及测试,补充 JVM 算法和 Electron 未明确部分。
  5. 同设置/尺寸的截图;旧迁移清单、README、旧截图仅辅助。

优先对齐 入口 → 面板关系 → 操作顺序 → 参数/默认值 → 输出语义 → 键盘与状态 → 视觉细节。Java 与 Electron 冲突时,默认选择 Electron 用户工作流;JVM 算法可选择更正确的 Java 行为,但要保留源样本、写出差异,不能声称两边完全兼容。

开发开始时将 commit、相关工作树 diff、OS/架构、窗口尺寸、主题、语言、字体和 DPI 保存到 docs/evidence/<日期>/environment.md。后续只吸收有意选择的变化,不随参考版本更新而自动改写冻结基线。

3. 关键阅读路径

范围 Electron Java 补充
壳、导航、会话 next/src/app/features/workbench/shared/contracts/app.ts ui/form/MainWindow.javaui/startup/util/FuncGroupUtil.java
UI 与主题 next/src/shared/styles/global.cssshared/components/ ui/UiConsts.javautil/EditorFontUtil.java
设置 next/src/features/settings/shared/contracts/settings.ts util/ConfigBaseUtil.java;按页面追踪具体设置读写
文档编辑 TextCodeEditor.tsxfindReplace.tscodeEditorViewState.ts util/TextAreaUtil.javautil/UndoUtil.javaui/form/func/QuickNoteForm.java
Vault / Git next/electron/main/*VaultRepository.tsvaultGitService.tsvaultGitCheckpointScheduler.ts util/QuickNote*util/JsonBeauty*util/Vault*
网络、系统、进程 networkService.tssystemService.tsruntimeExecutionService.ts service/util/EnvironmentVariableService.javautil/HostFileUtil.java
历史、集合、图片 historyRepository.tsfavoriteRepository.tsp5Repository.tsimageRepository.ts domain/dao/util/SqliteUtil.java
备份与更新 backupService.tslegacyMigrationService.tsupdate*.ts util/UpdateDownloadManager.javautil/DownloadLinkSelector.java
回归 next/src/**/*.test.tsnext/tests/electron/ src/test/ 中相关工具测试

上表 Java 简写从 src/main/java/com/luoboduner/moo/tool/ 开始;Electron 未带目录的 service 文件从 next/electron/main/ 开始。各工具精确入口见 功能规格这些路径仅用于阅读,不能直接写入 Compose 的 sourceSets/resources/classpath。

4. 已识别的规格陷阱

5. 官方技术资料与核验日期

以下资料于 2026-09-08 查询。库版本和 API 会变化;P0 要保存实际锁定组合,不能把本文当作编译通过的模板。

官方资料 本项目采用的信息
Compose 兼容与版本 当前页列出 1.12.0;Desktop 走 JVM、打包 JDK 至少 17;Compose compiler 插件与 Kotlin 插件同版本。当前平台表仅列 macOS 13 arm64,Intel 不能直接承诺
1.12.0 发布说明 SwingPanel.background 弃用;部分 Material3/导航组件仍为预发布,不应看到 Compose 稳定就假定所有关联库稳定
Gradle/Kotlin 兼容 用受支持组合锁定 Gradle、Kotlin 与 JVM target
原生安装包 jpackage/jlink、自带 runtime、各 OS 本机打包、JDK 模块和平台包版本约束
Swing 互操作 可封装 Swing 编辑器;默认叠层有限制,experimental blending 不能作为未经验证的生产前提
桌面 UI 测试 JUnit + Compose 测试 API;KMP desktop source set 可运行 desktopTest
桌面可访问性 macOS 支持、Windows 经 Java Access Bridge,页面目前将 Linux 列为不支持;需按平台如实验收
RSyntaxTextArea 成熟 Swing 语法高亮/折叠组件候选;列编辑需本项目实验确认,不假定自带完整多光标
Protobuf DynamicMessage 可以根据 Descriptor 处理动态类型,但不会自行把 .proto 源文本编译为 Descriptor
Cursor Rules 项目规则使用 .cursor/rules/*.mdc 与 frontmatter;本产品采用简短入口规则,详细规范保存在普通文档中

UI Token、性能目标、架构分层和分阶段安排是本项目建议值,非上述官网承诺。