improve PEER_AUTH_PLAN.md and re-organize files
This commit is contained in:
@@ -1,37 +0,0 @@
|
||||
# Implementation Decisions
|
||||
|
||||
- Added a `just test` recipe so unit tests can be run through the repository's
|
||||
required `just ...` command surface instead of invoking `cargo test`
|
||||
directly.
|
||||
- Renamed the frontend success event to `game-install-finished`; the old
|
||||
unpack name no longer matched the transactional install/update lifecycle.
|
||||
- Implemented watcher rescans by reusing the app-state
|
||||
`local_library/index.json` cache and updating a single game entry in that
|
||||
index. This satisfies the per-ID optimized rescan requirement without adding a
|
||||
second cache format.
|
||||
- Split full startup recovery from ordinary settled refreshes. Startup and real
|
||||
`SetGameDir` changes run recovery plus a scan; install/update/uninstall
|
||||
completion only rescans the affected game after operation tracking has been
|
||||
cleared.
|
||||
- Rejected path-changing `SetGameDir` while operations are active. Same-path
|
||||
refreshes are allowed and deliberately skip full recovery so they cannot sweep
|
||||
download transients for in-flight work.
|
||||
- Kept a separate `active_downloads` cancellation-token map next to the single
|
||||
`active_operations` table. The operation table is the authoritative state for
|
||||
gates; the token map is only cancellation plumbing for in-flight downloads.
|
||||
- Treated a downloaded-but-not-installed game as immediately installable from
|
||||
Tauri by sending `PeerCommand::InstallGame` directly. A not-downloaded game
|
||||
still uses `GetGame`, and the peer auto-installs after the sentinel commit.
|
||||
- Removed the dead internal `PeerCommand::UpdateGame` path. The UI update button
|
||||
now sends `FetchLatestFromPeers`, which skips local manifest serving and asks
|
||||
latest-version peers for fresh file metadata before the normal download and
|
||||
update transaction runs.
|
||||
- Removed the unreachable `Availability::Downloading` protocol value. Active
|
||||
operations are reported separately, and local summaries emit only settled
|
||||
availability.
|
||||
- Threaded availability through the UI-facing `Game` payload so `LocalOnly`
|
||||
rendering follows backend state instead of reverse-engineering it from
|
||||
`installed && !downloaded`.
|
||||
- Removed Tauri's parallel whole-library filesystem scan. The UI database keeps
|
||||
bundled catalog metadata, while peer `LocalLibraryChanged` snapshots now own
|
||||
`downloaded`, `installed`, `local_version`, and `availability`.
|
||||
Reference in New Issue
Block a user