markdown formatting

This commit is contained in:
2026-08-09 16:16:45 +02:00
parent f4a6259cf3
commit 18dd3b7e07
21 changed files with 1630 additions and 893 deletions
+15 -14
View File
@@ -4,22 +4,23 @@
### Crash-during-download leaves orphan archive files
`crates/lanspread-peer/src/install/transaction.rs:329` `recover_download_transients`
sweeps only `.version.ini.tmp` and `.version.ini.discarded` on startup. The new
cancel-cleanup (`download/storage.rs::discard_cancelled_download`) is only invoked
from the in-flight orchestrator, so a crash mid-download leaves partial `.eti`
archives in the game root. After restart the user sees a game that looks
half-downloaded with no way to clean it up except `RemoveDownloadedGame`. Closing
this would mean calling the same discard pass during recovery for any game root
whose intent is `None` and whose `version.ini` is absent.
`crates/lanspread-peer/src/install/transaction.rs:329`
`recover_download_transients` sweeps only `.version.ini.tmp` and
`.version.ini.discarded` on startup. The new cancel-cleanup
(`download/storage.rs::discard_cancelled_download`) is only invoked from the
in-flight orchestrator, so a crash mid-download leaves partial `.eti` archives
in the game root. After restart the user sees a game that looks half-downloaded
with no way to clean it up except `RemoveDownloadedGame`. Closing this would
mean calling the same discard pass during recovery for any game root whose
intent is `None` and whose `version.ini` is absent.
Not blocking. The cancel-button fix is correct in its scope; this is the symmetric
crash-recovery case.
Not blocking. The cancel-button fix is correct in its scope; this is the
symmetric crash-recovery case.
### `handleErrorEvent` still writes status fields directly
`crates/lanspread-tauri-deno-ts/src/hooks/useGames.ts:80-89` — the error
handler writes `install_status`, `status_message`, `status_level`, and
`crates/lanspread-tauri-deno-ts/src/hooks/useGames.ts:80-89` — the error handler
writes `install_status`, `status_message`, `status_level`, and
`download_progress` from a lifecycle event, which is the same "two sources of
truth" pattern that commit `5df82aa` ("fix(ui): derive operation status from
snapshots") removed everywhere else. That commit explicitly carved out error
@@ -46,8 +47,8 @@ The previous three findings have landed in code and tests:
ordered state transitions. Covered by
`download_handoff_waits_for_readers_and_auto_installs` and the liveness
cancellation tests.
- Library index reads and writes are serialized by `LIBRARY_INDEX_LOCK`.
Covered by `concurrent_rescans_preserve_both_index_updates`.
- Library index reads and writes are serialized by `LIBRARY_INDEX_LOCK`. Covered
by `concurrent_rescans_preserve_both_index_updates`.
Manual install/update/uninstall smoke testing is still a useful release check,
but there are no known blocking findings left in this file.