Commit Graph

85 Commits

Author SHA1 Message Date
ddidderr 84665cacf0 deno update --latest 2026-05-08 12:13:41 +02:00
ddidderr 87d00e7df6 refactor(peer): make startup directory-driven
Peer startup used to bootstrap itself by spawning the runtime and immediately
sending a SetGameDir command back through its own control channel. The Tauri
integration then polled shared state until a directory appeared and waited two
seconds before asking peers for games. That made startup ordering implicit and
left a race-prone sleep in the UI bridge.

Install the initial game directory directly into the peer context instead. The
runtime now attempts the initial local-library scan before starting discovery,
then launches the server, discovery, liveness, and local monitor services from
that initialized context. Later directory changes still use SetGameDir, so the
existing UI command surface stays intact.

Use PathBuf and Path references across peer filesystem boundaries so directory
state is represented as a path rather than an optional string. The Tauri layer
now validates a selected game directory before storing it, loads the bundled
catalog on first use, and starts or updates the peer runtime from one helper.
Peer event fan-out is split into named handlers so the Tauri setup closure only
wires state and starts the event loop.

Shutdown goodbye notifications are still best-effort, but they are now awaited
with a short timeout instead of being spawned and forgotten. The tradeoff is a
small bounded wait during peer runtime shutdown in exchange for clearer task
ownership.

Test Plan:
- cargo test -p lanspread-peer
- cargo clippy
- cargo clippy --benches
- cargo clippy --tests
- cargo +nightly fmt
- git diff --check

Refs: none
2026-05-02 17:09:00 +02:00
ddidderr 5480d1bdd4 refactor: extract bundled game database loading
Move the required game.db resource resolution and ETI catalog loading out of
Tauri setup into small helpers. The setup closure now describes the startup
flow instead of carrying resource-resolution and conversion details inline.

This keeps the existing fail-fast behavior for a missing or unreadable bundled
catalog, while giving the required resource path and in-memory GameDB conversion
clear names. There is no intended user-visible behavior change.

Test Plan:
- cargo clippy
- cargo clippy --benches
- cargo clippy --tests
- cargo +nightly fmt

Refs: none
2026-05-02 16:34:19 +02:00
ddidderr 3fb516af2b refactor(tauri): use default managed runtime state
LanSpreadState now owns its empty initialization through Default. This keeps
the root runtime state construction in one place instead of building each
Arc<RwLock<_>> value inline before registering it with Tauri.

The setup hook now retrieves peer_game_db from the managed state and clones the
Arc before spawning async peer initialization. That preserves the existing
lifetime boundary while removing the separate outer peer_game_db binding.

There is no user-visible behavior change. The peer database, game list,
download tracking, games folder, and peer control channel still start empty and
are populated through the same setup and command paths.

Test Plan:
- cargo clippy
- cargo clippy --benches
- cargo clippy --tests
- cargo +nightly fmt

Refs: none
2026-05-02 15:48:11 +02:00
ddidderr 047cb72905 deno update --latest 2026-05-02 15:33:14 +02:00
ddidderr b4585b663a ChatGPT Codex 5.5 xhigh refactored even more 2026-05-02 15:31:37 +02:00
ddidderr 86d0f93ede asd 2026-02-26 20:12:25 +01:00
ddidderr 4318927060 deps: deno update --latest 2026-01-14 08:57:30 +01:00
ddidderr 0ba4ff3acb deno update, cargo update 2026-01-03 22:20:59 +01:00
ddidderr 68594740a5 Tauri app identifier 2025-11-18 19:52:04 +01:00
ddidderr 04fe2bfcbe clippy 2025-11-18 19:26:05 +01:00
ddidderr 25bac734e2 unsafe 2025-11-14 11:32:56 +01:00
ddidderr 293ede96ed ugly 2025-11-14 11:28:55 +01:00
ddidderr 75be55d255 remember game dir 2025-11-14 10:44:02 +01:00
ddidderr 67f99f4a0a dont do heavy size calc 2025-11-14 10:28:55 +01:00
ddidderr ec2a2ef44d windows paths 2025-11-14 10:11:11 +01:00
ddidderr cc42bc6f4b Reapply "build system windows"
This reverts commit d9dc040927.
2025-11-14 09:33:38 +01:00
ddidderr d9dc040927 Revert "build system windows"
This reverts commit da758d770a.
2025-11-14 09:32:22 +01:00
ddidderr da758d770a build system windows 2025-11-14 09:30:47 +01:00
ddidderr 5fc6505474 update 2025-11-14 09:28:47 +01:00
ddidderr 833c8afedf game thumbnails 2025-11-14 09:03:05 +01:00
ddidderr 567d293455 game sizes? 2025-11-14 08:12:09 +01:00
ddidderr 6eec74f0f6 unavailable games red button 2025-11-14 02:24:18 +01:00
ddidderr 2952b596e2 peers gone... 2025-11-14 02:16:53 +01:00
ddidderr da8457edfc wip 2025-11-14 01:44:39 +01:00
ddidderr 8432030292 detect if a game is deleted, added, modified locally 2025-11-14 01:12:01 +01:00
ddidderr b9e3e760d9 peer count in UI 2025-11-14 00:03:32 +01:00
ddidderr e19eda7919 installed + downloaded 2025-11-13 23:26:07 +01:00
ddidderr d785fcc93a Play game: first start done marker, local dir check 2025-11-13 21:53:00 +01:00
ddidderr 8fe68f9574 wip 2025-11-13 21:43:20 +01:00
ddidderr 4d38f6640a peer count fix 2025-11-13 21:09:52 +01:00
ddidderr f223418d22 ui fix peer filtering 2025-11-13 19:45:54 +01:00
ddidderr b8d6d29ae0 available as default game filter 2025-11-13 19:39:07 +01:00
ddidderr 2d7f7513ad peer count for all games 2025-11-13 19:38:21 +01:00
ddidderr d96d191c13 wip 2025-11-13 19:25:45 +01:00
ddidderr 16aeade138 ui 2025-11-13 09:22:05 +01:00
ddidderr f37d93c417 wip 2025-11-13 00:47:16 +01:00
ddidderr 9141954d9b runtime fixes by codex 2025-11-12 23:42:34 +01:00
ddidderr 5e340df9d8 wip 2025-11-12 23:19:23 +01:00
ddidderr b66a2764fe ui 2025-11-12 23:08:08 +01:00
ddidderr ae19d94fb2 wip 2025-11-12 23:05:50 +01:00
ddidderr 0f4e40383b load game.db 2025-11-12 22:56:59 +01:00
ddidderr a8235fe52a dont wait for server 2025-11-12 20:28:26 +01:00
ddidderr bcda99d3a8 unused peerconnection removed 2025-11-11 21:44:18 +01:00
ddidderr 81abf4801d clippy 2025-11-11 21:38:08 +01:00
ddidderr 37fe40bb88 clippy 2025-11-11 21:36:57 +01:00
ddidderr 9c1b94fa6a wip 2025-11-11 21:30:26 +01:00
ddidderr 50cd15867b mdns 2025-11-08 20:47:02 +01:00
ddidderr b5aa11c46b wip 2025-11-08 19:29:39 +01:00
ddidderr 5710d87295 wip 2025-11-08 18:40:19 +01:00