95e70ef520
Local operation spinners were driven by begin, finish, and failure event history. If one of those lifecycle events was missed, the Tauri bridge could keep a stale active operation and the React state would keep showing an in-progress spinner until restart. Peer local scan updates now carry an authoritative active-operation snapshot. The peer still suppresses active game roots from peer-facing library deltas, but it emits LocalGamesUpdated to the UI even when no library delta changed so the snapshot can clear stale state after rollback or completion. The Tauri bridge replaces its active-operation map from that snapshot, emits it with the games-list payload, and the React merge uses it to restore download, install, update, and uninstall spinners from current peer state rather than event history alone. This also enables the Tauri lib unit-test target so the reconciliation helper can stay covered by the workspace test recipe. Test Plan: - git diff --check - just fmt - just clippy - just test Follow-up-Plan: FOLLOW_UP_2.md
50 lines
1.4 KiB
TOML
50 lines
1.4 KiB
TOML
[package]
|
|
name = "lanspread-tauri-deno-ts"
|
|
version = "0.1.0"
|
|
description = "A Tauri App"
|
|
authors = ["you"]
|
|
edition = "2024"
|
|
|
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
|
|
[lib]
|
|
# The `_lib` suffix may seem redundant but it is necessary
|
|
# to make the lib name unique and wouldn't conflict with the bin name.
|
|
# This seems to be only an issue on Windows, see https://github.com/rust-lang/cargo/issues/8519
|
|
name = "lanspread_tauri_deno_ts_lib"
|
|
crate-type = ["staticlib", "cdylib", "rlib"]
|
|
test = true
|
|
doctest = false
|
|
|
|
[lints.clippy]
|
|
pedantic = { level = "warn", priority = -1 }
|
|
todo = "warn"
|
|
unwrap_used = "warn"
|
|
needless_pass_by_value = "allow"
|
|
|
|
[build-dependencies]
|
|
tauri-build = { version = "2", features = [] }
|
|
|
|
[dependencies]
|
|
# local
|
|
lanspread-peer = { path = "../../lanspread-peer" }
|
|
lanspread-db = { path = "../../lanspread-db" }
|
|
lanspread-compat = { path = "../../lanspread-compat" }
|
|
|
|
# external
|
|
base64 = { workspace = true }
|
|
eyre = { workspace = true }
|
|
log = { workspace = true }
|
|
mimalloc = { workspace = true }
|
|
serde = { workspace = true }
|
|
tauri = { workspace = true }
|
|
tauri-plugin-log = { workspace = true }
|
|
tauri-plugin-shell = { workspace = true }
|
|
tauri-plugin-dialog = { workspace = true }
|
|
tauri-plugin-store = { workspace = true }
|
|
tokio = { workspace = true }
|
|
walkdir = { workspace = true }
|
|
|
|
[target.'cfg(windows)'.dependencies]
|
|
windows = { workspace = true }
|