Files
胡飞 46a5978443 refactor(product-split): main 目录归位 crates/navop_app,包名统一 navop_app
产品装配移出后 main 已只剩库,却仍占着仓库根目录、与 apps/* 并列,看起来像一个
产品。本次把它落回 crate 层:

- git mv main crates/navop_app;package name 由 main 改为 navop_app(与 lib 名
  一致),删掉冗余的 [lib] 块;根 members 同步。
- 三个 app 改为直接相对路径依赖 navop_app = { path = "../../crates/navop_app" },
  不进 workspace.dependencies(Cargo 不允许再关继承来的 default-features)。
- 26 处逃出 crate 根的 include_str! 各加一层 ../(resources/*、core/build.rs、
  apps/* 与 crates/*_view 的 Cargo.toml、app_kit 源码);build.rs 的 icon/manifest
  路径同步。
- env_file.rs 与 i18n_locale_keys_contract 的「工作区根」改为上两级;
  cross-crate 源码断言(core/window_close、db_view、one_ui、windows_rdp_host)指向
  新路径。
- locales/main.yml 保持原名:i18n 命名空间与全仓 t!() key 绑定,改名是另一件事。
- 发布链路同步:release_pr.py(MANIFEST_PATH、lock_app_version、报错文案)、
  beta-release.sh 版本包名集合、release-tag.sh / ci.yml / release.yml /
  .github/RELEASE.md / AGENTS.md / CLAUDE.md 等文档的路径与 -p navop_app。
- 顺带修两处未推送提交遗留的 CI 红线:app_kit::install 的
  expected_binary_name cfg 过宽(macOS dead_code)、测试里多余的
  is_supported_app_bundle import;release PR 测试夹具补齐四个 manifest;
  windows_rdp_host 的 ALLOWED_FILES 断言对齐 release_pr.py 现状。

验证:cargo test -p navop_app(595 lib + 4 集成契约)、-p app_kit(149)、
one-ui/windows_rdp_host 契约、三个 app cargo build、cargo check --all-targets
全通过;script/tests 32 项、release-packaging 与 scripts/ai 的 node 测试全绿。
2026-11-01 00:52:04 +08:00
..