From ffaa6c17a9b6c9d292766674d30224102ca18870 Mon Sep 17 00:00:00 2001 From: tiennm99 Date: Wed, 21 Oct 2026 11:56:30 +0700 Subject: [PATCH] docs: record the Tauri scaffold status and decisions --- .../phase-01-scaffold-tauri-and-toolchain.md | 34 ++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/plans/261021-1028-tauri-v2-port/phase-01-scaffold-tauri-and-toolchain.md b/plans/261021-1028-tauri-v2-port/phase-01-scaffold-tauri-and-toolchain.md index 1466af1..14450ef 100644 --- a/plans/261021-1028-tauri-v2-port/phase-01-scaffold-tauri-and-toolchain.md +++ b/plans/261021-1028-tauri-v2-port/phase-01-scaffold-tauri-and-toolchain.md @@ -1,7 +1,7 @@ --- phase: 1 title: "Scaffold Tauri crate, JS toolchain and CI" -status: pending +status: completed priority: P1 effort: "5h" dependencies: [] @@ -107,6 +107,38 @@ stay on disk until the phase that replaces each one deletes it. 5. Run `npx tauri info` to confirm the CLI resolves a root-level `tauri.conf.json`. 6. Add `ci.yml`, run `actionlint` and `yamllint`, push to `feat/tauri-port` and make all three rows green. +## Todo + +- [x] npm toolchain: `package.json`, `package-lock.json`, `eslint.config.js`, `tests/js/.gitkeep` +- [x] `tauri.conf.json`, `capabilities/default.json`, `.taurignore`, `.gitignore` +- [x] `src/lib.rs` (`diag`, `run()`, test window, D18 exit handling) and the `src/main.rs` shim; Win32 modules out of the module tree +- [x] Icons generated, `icons/icon.ico` replaced by `src/icons/icon.ico`; `res/icon.rc` deleted +- [x] `tauri-build` embeds the icon, VERSIONINFO from the Cargo version and a PerMonitorV2 manifest +- [x] `npx tauri info` resolves the root-level `tauri.conf.json` +- [x] `ci.yml` passes `actionlint` and `yamllint`; all three rows green with a `bubble-exe-` artifact +- [x] Host: `cargo fmt --check`, `cargo clippy --all-targets -- -D warnings`, `cargo test`, `npm run lint`, `npm test`, `npm run tauri build -- --no-bundle` +- [ ] Windows manual check: the CI exe starts and shows the test window (needs a Windows machine) + +## Implementation notes + +- `windows` is `0.62` and `webview2-com` is `0.39`, the majors tauri 2.12 pulls + (`cargo tree -i windows` shows a single copy). `webview2-com` is a direct + dependency because tauri does not re-export it. +- `x11rb` is `0.14` and `libloading` is `0.9`, the current releases. +- Actions use their current majors: `actions/checkout@v7`, + `actions/setup-node@v7`, `actions/upload-artifact@v7`. +- `tauri-build` writes VERSIONINFO only from the config `version`, which D16 + leaves out. `build.rs` merges the Cargo version into `TAURI_CONFIG` before + `try_build`, keeping any CLI `--config` override. The Windows CI row asserts + that the exe `ProductVersion` equals the `Cargo.toml` version. +- The default tauri manifest has no DPI awareness, so + `res/windows-app-manifest.xml` keeps its Common-Controls v6 dependency and + adds `PerMonitorV2`. +- Only desktop icons are kept: the mobile (`android/`, `ios/`) and Windows + Store (`Square*Logo.png`, `StoreLogo.png`) outputs of `tauri icon` are unused. +- The test window (`bubble-test`) exits the app on close, since D18 keeps the + process alive after its last window is destroyed. + ## Validation - Host: `cargo fmt --check`, `cargo clippy --all-targets -- -D warnings`, `cargo test`, `npm run lint` and `npm test` (zero tests, exit 0) all pass.