Commit Graph

50 Commits

Author SHA1 Message Date
ddidderr eedfc0105d feat(tauri): persist unpack logs and clean sidecar output
Unpack logs lived only in memory, so closing the app dropped history.
Unrar progress also flooded stdout with carriage-return redraws, which
made the log viewer noisy and hard to search.

Persist the last twenty entries to unpack-logs.json under the app data
directory, load them on startup, and rewrite stdout/stderr through a
small terminal-sequence cleaner (CR/LF, backspace, control chars) before
storage and display. Sort the unpack-logs window newest-first by finish
or start time.

Test plan:
- cargo test -p lanspread-tauri-deno-ts -- terminal_log unpack_log
- Run an unpack, restart the app, open unpack logs: prior entries remain
- Confirm progress lines collapse to final text instead of spam

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-21 21:32:28 +02:00
ddidderr c795e9de02 deps: deno and cargo update 2026-05-17 23:16:42 +02:00
ddidderr d891a14a46 deps: cargo update 2026-05-17 14:53:23 +02:00
ddidderr dc9e13e6a1 feat(peer-cli): add JSONL peer test harness
Agents need a way to exercise multiple peers without launching the Tauri GUI.
Add `lanspread-peer-cli` as a workspace crate that starts the core peer runtime,
reads JSON commands from stdin, and writes result, event, and error records as
JSONL on stdout.

The harness supports status, peer listing, game listing, direct connect,
set-game-dir, download, install, uninstall, wait-peers, and shutdown commands.
It can seed tiny fixture archives that use a fixture unpacker, or delegate real
archives to an external `unrar` program when one is supplied.

Add a Dockerfile, `.dockerignore`, and `just` recipes for building the binary,
building the image, and running named harness containers with state and games
mounted under `target/peer-cli/`. The documentation now lists the crate and the
new test harness commands in the project map, with a crate-local README for the
JSONL protocol.

This commit depends on the non-GUI peer hooks introduced in the previous commit:
startup options, local-ready events, direct connects, snapshots, and explicit
post-download install policy. It does not add old-peer compatibility paths.

Test Plan:
- `git diff --check`
- `just fmt`
- `just clippy`
- `just test`
- `just peer-cli-build`
- Not run: `just peer-cli-image` requires a Docker daemon and base image access.

Depends-on: e711cf3454
Refs: crates/lanspread-peer-cli/README.md
2026-05-16 18:33:18 +02:00
ddidderr 95e70ef520 fix(ui): reconcile active operations from local scans
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
2026-05-16 09:01:17 +02:00
ddidderr 6c8a2bb9f0 feat(peer): add transactional local game operations
Implement the peer-owned state model from PLAN.md. A root-level version.ini
is now the download completion sentinel, local/ as a directory is the install
predicate, and exact root-level version.ini detection prevents nested files
from becoming sentinels by accident.

Add the peer operation table that gates downloads, installs, updates, and
uninstalls by game ID. Serving paths now reject non-catalog games, active
operations, missing sentinels, and any request that points under local/.
Remote aggregation treats LocalOnly peers as non-downloadable so they do not
contribute peer counts, candidate source selection, or latest-version checks.

Move install-side filesystem mutation into lanspread-peer::install. The new
module writes atomic .lanspread.json intents, uses .local.installing and
.local.backup with .lanspread_owned markers, and performs startup recovery
from recorded intent plus filesystem state. Downloads now buffer version.ini
chunks in memory and commit the sentinel last through .version.ini.tmp.

Replace the fixed 15-second monitor with notify-backed non-recursive watches,
per-ID rescan gating, and a 300-second fallback scan. The optimized rescan
path updates one cached library-index entry and active operation IDs preserve
their previous summary during scans.

Test Plan:
- just fmt
- just clippy
- just test
- just build

Refs: PLAN.md
2026-05-15 18:18:55 +02:00
ddidderr 5ec47d6c47 deps: upgrade Rust dependencies 2026-05-15 11:10:53 +02:00
ddidderr 2bbd2ac869 refactor(peer): adopt structured concurrency with supervised shutdown
Replace the detached tokio::spawn pattern in the peer runtime with a
supervised model built on tokio_util's CancellationToken and TaskTracker.
Long-lived services and child tasks now have an explicit parent, a
cancellation path, and a join point. Tauri can request a clean shutdown
on app exit instead of leaking work into process termination.

Background
~~~~~~~~~~

start_peer() previously returned only a command sender. The four startup
services (QUIC server, mDNS discovery, peer liveness, local library
monitor) and their child tasks (ping workers, handshake jobs, download
workers, announcement fan-outs, connection/stream handlers) were spawned
with raw tokio::spawn and detached. Closing the command channel sent
Goodbye notifications but did not stop those services. The mDNS blocking
worker had no cancellation path at all. Active downloads were stored as
JoinHandle<()> and force-aborted, which could interrupt file writes
mid-chunk.

Supervisor
~~~~~~~~~~

The runtime now owns a CancellationToken and a TaskTracker, threaded
through Ctx and PeerCtx. Each long-lived service is spawned through a
small supervisor (spawn_supervised_service) that wraps the service in
catch_unwind and enforces an explicit SupervisionPolicy:

  QuicServer:    Required     (fatal; cancels the runtime if it dies)
  Discovery:     Restart(5s)  (matches the prior self-restart loop)
  Liveness:      Restart(5s)
  LocalMonitor:  BestEffort   (logs and exits, no restart)

A Required failure emits a new RuntimeFailed { component, error } event
to the UI and cancels the runtime; the command loop and goodbye
notifications still run to completion. The Tauri layer forwards the
event as "peer-runtime-failed" so a future UI can surface it.

mDNS cancellation
~~~~~~~~~~~~~~~~~

MdnsBrowser previously blocked on receiver.recv() forever. It now
exposes next_service_timeout(Duration) returning an MdnsServicePoll
enum (Service/Timeout/Closed) via recv_timeout(). The discovery worker
polls at 250ms and checks the shutdown flag between ticks, so
cancellation reaches the blocking thread within one poll interval
instead of waiting for the next mDNS event.

Downloads
~~~~~~~~~

active_downloads is now HashMap<String, CancellationToken>. Each
download gets a child token of the runtime shutdown, checked at chunk
and peer-attempt boundaries (never inside file writes). When all peers
with a game disappear, liveness cancels the token and emits
DownloadGameFilesAllPeersGone; the download exits Ok(()) without
emitting a duplicate Failed event.

DownloadStateGuard (context.rs) is held inside the download task and
clears downloading_games + active_downloads on Drop, covering the happy
path, error returns, cancellation, and task abort. Drop falls back to
spawning the cleanup if write-lock contention prevents try_write.

Public API and Tauri integration
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

start_peer() now returns PeerRuntimeHandle exposing:

  fn sender(&self) -> UnboundedSender<PeerCommand>
  fn shutdown(&self)
  async fn wait_stopped(&mut self)

The Tauri layer stores the handle in managed state and switches its
main loop from .run(ctx) to .build(ctx).run(|h, e| ...). On
RunEvent::Exit it calls handle.shutdown() and blocks up to 2s on
wait_stopped(), giving services time to cancel and Goodbye packets time
to flush over a healthy LAN while staying short enough not to delay
process exit noticeably on a dead network.

The command loop distinguishes graceful shutdown from unexpected
channel closure: if recv() returns None and shutdown.is_cancelled() is
set, the loop returns Ok(()) silently. Only an unexpected close (no
cancellation observed) still emits RuntimeFailed. This avoids a
spurious failure event on every normal app close.

User-visible behavior changes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- Closing the app no longer leaks services into process termination;
  Goodbye notifications are reliably attempted before exit.
- Downloads cancel cleanly (between chunks) instead of force-aborting
  mid-write.
- A new "peer-runtime-failed" Tauri event fires when a Required service
  cannot recover. No frontend handler exists yet — that is a follow-up.

Tradeoffs
~~~~~~~~~

- Workspace tokio-util now requires the "rt" feature for TaskTracker.
- The mDNS worker still runs in spawn_blocking and may stay parked
  briefly between 250ms polls — acceptable for a desktop app.
- The 2s shutdown timeout on app exit is a deliberate compromise.

Tests
~~~~~

New unit tests:
  - DownloadStateGuard clears tracking on completion, cancellation, and
    parent-task abort (context.rs).
  - Required failure cancels the runtime and emits RuntimeFailed
    (startup.rs).
  - Restart policy restarts until shutdown is requested (startup.rs).
  - PeerRuntimeHandle.shutdown() observable via wait_stopped()
    (startup.rs).
  - Peers-gone cancellation emits only PeersGone, no duplicate Failed
    (services/liveness.rs).

Test plan
~~~~~~~~~

  cargo test --workspace
  cargo clippy --workspace --all-targets

Manual smoke test on two peers on the same LAN:
  1. Start a download, verify chunks transfer.
  2. Close the receiving app mid-download — verify the sending peer
     logs a Goodbye, not a connection-reset error.
  3. Stop the sending peer mid-download — verify the receiver emits
     DownloadGameFilesAllPeersGone, not Failed.

Follow-ups
~~~~~~~~~~

- Frontend handler for "peer-runtime-failed".
- Consider exposing the runtime handle's stopped watch to the frontend
  for a reconnecting indicator on Required failures.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 07:53:51 +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 b60dcef471 ChatGPT Codex 5.2 xhigh refactored > 45min 2026-01-13 18:59:12 +01:00
ddidderr 0ba4ff3acb deno update, cargo update 2026-01-03 22:20:59 +01:00
ddidderr f9923bd61e feat: Implement length-delimited framing for QUIC stream communication using tokio-util and futures. 2025-11-18 20:39:38 +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 651e3db988 mdns fix: use heuristic to find suitable interface and use IP of that interface to anounce service 2025-11-13 20:35:29 +01:00
ddidderr cc2c4ea8f3 wip 2025-11-12 23:30:08 +01:00
ddidderr 0f4e40383b load game.db 2025-11-12 22:56:59 +01:00
ddidderr 379a1bbfe9 cargo update 2025-11-12 22:30:15 +01:00
ddidderr f2808192f7 wip 2025-11-12 22:22:33 +01:00
ddidderr 9c1b94fa6a wip 2025-11-11 21:30:26 +01:00
ddidderr 82842c15c3 wip 2025-11-08 20:56:35 +01:00
ddidderr 50cd15867b mdns 2025-11-08 20:47:02 +01:00
ddidderr 403168a00a [deps] cargo update 2025-11-08 08:58:45 +01:00
ddidderr 3b6fc80578 [deps] cargo update 2025-08-27 19:55:56 +02:00
ddidderr 8c6fd139c8 [deps] cargo update 2025-08-20 08:54:56 +02:00
ddidderr 66572e16ce [deps] cargo update
Updating anyhow         v1.0.98  -> v1.0.99
Updating async-trait    v0.1.88  -> v0.1.89
Updating bitflags       v2.9.1   -> v2.9.2
Updating brotli         v8.0.1   -> v8.0.2
Updating cc             v1.2.32  -> v1.2.33
Updating clap_builder   v4.5.43  -> v4.5.44
Updating clap_derive    v4.5.41  -> v4.5.45
Updating clap           v4.5.43  -> v4.5.45
Updating dlopen2        v0.7.0   -> v0.8.0
Updating glob           v0.3.2   -> v0.3.3
Updating libc           v0.2.174 -> v0.2.175
Updating objc2          v0.6.1   -> v0.6.2
Updating proc-macro2    v1.0.96  -> v1.0.101
Updating reqwest        v0.12.22 -> v0.12.23
Updating serde-untagged v0.1.7   -> v0.1.8
Updating syn            v2.0.104 -> v2.0.106
Updating tao            v0.34.0  -> v0.34.1
Updating thiserror-impl v2.0.12  -> v2.0.15
Updating thiserror      v2.0.12  -> v2.0.15
Updating uuid           v1.17.0  -> v1.18.0
2025-08-17 16:37:01 +02:00
ddidderr 32c7659702 [deps] upgrade 2025-08-12 08:37:25 +02:00
ddidderr 1b90a9baf3 [deps] cargo update 2025-07-11 18:21:12 +02:00
ddidderr b8329bd0b1 [feat] use mimalloc 2025-07-11 13:13:14 +02:00
ddidderr 24e6c8c0b5 [deps] cargo update 2025-07-11 13:12:07 +02:00
ddidderr f16d8b1dca [deps] cargo update
Adding   match_token         v0.1.0
Removing itoa                v0.4.8
Removing thin-slice          v0.1.1
Updating brotli-decompressor v4.0.3  -> v5.0.0
Updating brotli              v7.0.0  -> v8.0.1
Updating bumpalo             v3.18.1 -> v3.19.0
Updating cssparser           v0.27.2 -> v0.29.6
Updating html5ever           v0.26.0 -> v0.29.1
Updating kuchikiki           v0.8.2  -> v0.8.8-speedreader
Updating libredox            v0.1.3  -> v0.1.4
Updating markup5ever         v0.11.0 -> v0.14.1
Updating mdns-sd             v0.13.9 -> v0.13.10
Updating num_enum_derive     v0.7.3  -> v0.7.4
Updating num_enum            v0.7.3  -> v0.7.4
Updating phf_codegen         v0.10.0 -> v0.11.3
Updating phf_macros          v0.8.0  -> v0.10.0
Updating selectors           v0.22.0 -> v0.24.0
Updating servo_arc           v0.1.1  -> v0.2.0
Updating tao                 v0.33.0 -> v0.34.0
Updating tauri-build         v2.2.0  -> v2.3.0
Updating tauri-codegen       v2.2.0  -> v2.3.0
Updating tauri-macros        v2.2.0  -> v2.3.0
Updating tauri-plugin-dialog v2.2.2  -> v2.3.0
Updating tauri-plugin-fs     v2.3.0  -> v2.4.0
Updating tauri-plugin-log    v2.5.0  -> v2.6.0
Updating tauri-plugin-shell  v2.2.2  -> v2.3.0
Updating tauri-plugin-store  v2.2.1  -> v2.3.0
Updating tauri-plugin        v2.2.0  -> v2.3.0
Updating tauri-runtime       v2.6.0  -> v2.7.0
Updating tauri-runtime-wry   v2.6.0  -> v2.7.0
Updating tauri-utils         v2.4.0  -> v2.5.0
Updating tauri               v2.5.1  -> v2.6.0
Updating webview2-com-sys    v0.37.0 -> v0.38.0
Updating webview2-com        v0.37.0 -> v0.38.0
Updating wry                 v0.51.2 -> v0.52.0
2025-06-25 20:42:40 +02:00
ddidderr 7566c2908f [deps] cargo update
Adding   dispatch2                v0.3.0
Adding   getrandom                v0.2.16
Adding   getrandom                v0.3.3
Adding   icu_locale_core          v2.0.0
Adding   iri-string               v0.7.8
Adding   once_cell_polyfill       v1.70.1
Adding   potential_utf            v0.1.2
Adding   ref-cast-impl            v1.0.24
Adding   ref-cast                 v1.0.24
Adding   schemars                 v0.9.0
Adding   sigchld                  v0.2.3
Adding   signal-hook              v0.3.18
Adding   toml_write               v0.1.2
Adding   tower-http               v0.6.6
Adding   windows-core             v0.61.2
Adding   windows-future           v0.2.1
Adding   windows-strings          v0.4.2
Adding   windows-targets          v0.53.2
Adding   windows-threading        v0.1.0
Adding   windows                  v0.61.3
Adding   zerocopy-derive          v0.8.26
Adding   zerocopy                 v0.8.26
Adding   zerotrie                 v0.2.2
Removing getrandom                v0.2.15
Removing getrandom                v0.3.2
Removing icu_locid_transform_data v1.5.0
Removing icu_locid_transform      v1.5.0
Removing icu_locid                v1.5.0
Removing icu_provider_macros      v1.5.0
Removing utf16_iter               v1.0.5
Removing windows_aarch64_gnullvm  v0.48.5
Removing windows_aarch64_msvc     v0.48.5
Removing windows-collections      v0.1.1
Removing windows-core             v0.52.0
Removing windows-core             v0.60.1
Removing windows-core             v0.61.0
Removing windows-future           v0.1.1
Removing windows-future           v0.2.0
Removing windows_i686_gnu         v0.48.5
Removing windows_i686_msvc        v0.48.5
Removing windows-implement        v0.59.0
Removing windows-numerics         v0.1.1
Removing windows-registry         v0.4.0
Removing windows-strings          v0.3.1
Removing windows-strings          v0.4.0
Removing windows-targets          v0.48.5
Removing windows-targets          v0.53.0
Removing windows                  v0.60.0
Removing windows                  v0.61.1
Removing windows_x86_64_gnullvm   v0.48.5
Removing windows_x86_64_gnu       v0.48.5
Removing windows_x86_64_msvc      v0.48.5
Removing write16                  v1.0.0
Removing xdg-home                 v1.3.0
Removing zerocopy-derive          v0.7.35
Removing zerocopy-derive          v0.8.24
Removing zerocopy                 v0.7.35
Removing zerocopy                 v0.8.24
Updating adler2                   v2.0.0                         -> v2.0.1
Updating anstream                 v0.6.18                        -> v0.6.19
Updating anstyle-parse            v0.2.6                         -> v0.2.7
Updating anstyle-query            v1.1.2                         -> v1.1.3
Updating anstyle                  v1.0.10                        -> v1.0.11
Updating anstyle-wincon           v3.0.7                         -> v3.0.9
Updating anyhow                   v1.0.97                        -> v1.0.98
Updating autocfg                  v1.4.0                         -> v1.5.0
Updating aws-lc-rs                v1.12.6                        -> v1.13.1
Updating aws-lc-sys               v0.27.1                        -> v0.29.0
Updating backtrace                v0.3.74                        -> v0.3.75
Updating bitflags                 v2.9.0                         -> v2.9.1
Updating block2                   v0.6.0                         -> v0.6.1
Updating borsh-derive             v1.5.6                         -> v1.5.7
Updating borsh                    v1.5.6                         -> v1.5.7
Updating brotli-decompressor      v4.0.2                         -> v4.0.3
Updating bumpalo                  v3.17.0                        -> v3.18.1
Updating bytemuck                 v1.22.0                        -> v1.23.1
Updating camino                   v1.1.9                         -> v1.1.10
Updating cc                       v1.2.17                        -> v1.2.27
Updating cfg-if                   v1.0.0                         -> v1.0.1
Updating chrono                   v0.4.40                        -> v0.4.41
Updating clap_builder             v4.5.32                        -> v4.5.40
Updating clap_derive              v4.5.32                        -> v4.5.40
Updating clap_lex                 v0.7.4                         -> v0.7.5
Updating clap                     v4.5.32                        -> v4.5.40
Updating colorchoice              v1.0.3                         -> v1.0.4
Updating core-foundation          v0.10.0                        -> v0.10.1
Updating crc                      v3.2.1                         -> v3.3.0
Updating crossbeam-channel        v0.5.14                        -> v0.5.15
Updating darling_core             v0.20.10                       -> v0.20.11
Updating darling_macro            v0.20.10                       -> v0.20.11
Updating darling                  v0.20.10                       -> v0.20.11
Updating derive_more              v0.99.19                       -> v0.99.20
Updating dlopen2_derive           v0.4.0                         -> v0.4.1
Updating dpi                      v0.1.1                         -> v0.1.2
Updating embed-resource           v3.0.2                         -> v3.0.4
Updating enumflags2_derive        v0.7.11                        -> v0.7.12
Updating enumflags2               v0.7.11                        -> v0.7.12
Updating errno                    v0.3.10                        -> v0.3.13
Updating event-listener-strategy  v0.5.3                         -> v0.5.4
Updating flate2                   v1.1.0                         -> v1.1.2
Updating gethostname              v1.0.0                         -> v1.0.2
Updating hashbrown                v0.15.2                        -> v0.15.4
Updating hash_hasher              v2.0.3                         -> v2.0.4
Updating hyper-util               v0.1.10                        -> v0.1.14
Updating iana-time-zone           v0.1.61                        -> v0.1.63
Updating icu_collections          v1.5.0                         -> v2.0.0
Updating icu_normalizer_data      v1.5.0                         -> v2.0.0
Updating icu_normalizer           v1.5.0                         -> v2.0.0
Updating icu_properties_data      v1.5.0                         -> v2.0.1
Updating icu_properties           v1.5.1                         -> v2.0.1
Updating icu_provider             v1.5.0                         -> v2.0.0
Updating idna_adapter             v1.2.0                         -> v1.2.1
Updating indexmap                 v2.8.0                         -> v2.9.0
Updating jobserver                v0.1.32                        -> v0.1.33
Updating libc                     v0.2.171                       -> v0.2.174
Updating libloading               v0.8.6                         -> v0.8.8
Updating libm                     v0.2.11                        -> v0.2.15
Updating linux-raw-sys            v0.9.3                         -> v0.9.4
Updating litemap                  v0.7.5                         -> v0.8.0
Updating lock_api                 v0.4.12                        -> v0.4.13
Updating log                      v0.4.26                        -> v0.4.27
Updating mdns-sd                  v0.13.3                        -> v0.13.9
Updating memchr                   v2.7.4                         -> v2.7.5
Updating miniz_oxide              v0.8.5                         -> v0.8.9
Updating mio                      v1.0.3                         -> v1.0.4
Updating nix                      v0.29.0                        -> v0.30.1
Updating objc2-app-kit            v0.3.0                         -> v0.3.1
Updating objc2-cloud-kit          v0.3.0                         -> v0.3.1
Updating objc2-core-data          v0.3.0                         -> v0.3.1
Updating objc2-core-foundation    v0.3.0                         -> v0.3.1
Updating objc2-core-graphics      v0.3.0                         -> v0.3.1
Updating objc2-core-image         v0.3.0                         -> v0.3.1
Updating objc2-foundation         v0.3.0                         -> v0.3.1
Updating objc2-io-surface         v0.3.0                         -> v0.3.1
Updating objc2-quartz-core        v0.3.0                         -> v0.3.1
Updating objc2-ui-kit             v0.3.0                         -> v0.3.1
Updating objc2                    v0.6.0                         -> v0.6.1
Updating objc2-web-kit            v0.3.0                         -> v0.3.1
Updating once_cell                v1.21.1                        -> v1.21.3
Updating os_pipe                  v1.2.1                         -> v1.2.2
Updating parking_lot_core         v0.9.10                        -> v0.9.11
Updating parking_lot              v0.12.3                        -> v0.12.4
Updating plist                    v1.7.0                         -> v1.7.2
Updating prettyplease             v0.2.31                        -> v0.2.35
Updating proc-macro2              v1.0.94                        -> v1.0.95
Updating quick-xml                v0.32.0                        -> v0.37.5
Updating rand                     v0.9.0                         -> v0.9.1
Updating redox_syscall            v0.5.10                        -> v0.5.13
Updating r-efi                    v5.2.0                         -> v5.3.0
Updating reqwest                  v0.12.15                       -> v0.12.20
Updating rustc-demangle           v0.1.24                        -> v0.1.25
Updating rust_decimal             v1.37.0                        -> v1.37.2
Updating rustix                   v1.0.3                         -> v1.0.7
Updating rustls-pki-types         v1.11.0                        -> v1.12.0
Updating rustls                   v0.23.25                       -> v0.23.28
Updating rustls-webpki            v0.103.0                       -> v0.103.3
Updating rustversion              v1.0.20                        -> v1.0.21
Updating s2n-codec                v0.55.0                        -> v0.59.0
Updating s2n-quic-core            v0.55.0                        -> v0.59.0
Updating s2n-quic-crypto          v0.55.0                        -> v0.59.0
Updating s2n-quic-platform        v0.55.0                        -> v0.59.0
Updating s2n-quic-rustls          v0.55.0                        -> v0.59.0
Updating s2n-quic-tls-default     v0.55.0                        -> v0.59.0
Updating s2n-quic-tls             v0.55.0                        -> v0.59.0
Updating s2n-quic-transport       v0.55.0                        -> v0.59.0
Updating s2n-quic                 v1.55.0                        -> v1.59.0
Updating s2n-tls-sys              v0.3.14                        -> v0.3.21
Updating s2n-tls                  v0.3.14                        -> v0.3.21
Updating serde_spanned            v0.6.8                         -> v0.6.9
Updating serde_with_macros        v3.12.0                        -> v3.13.0
Updating serde_with               v3.12.0                        -> v3.13.0
Updating sha2                     v0.10.8                        -> v0.10.9
Updating shared_child             v1.0.1                         -> v1.1.0
Updating signal-hook-registry     v1.4.2                         -> v1.4.5
Updating slab                     v0.4.9                         -> v0.4.10
Updating smallvec                 v1.14.0                        -> v1.15.1
Updating socket2                  v0.5.8                         -> v0.5.10
Updating sqlx-core                v0.8.3                         -> v0.8.6
Updating sqlx-macros-core         v0.8.3                         -> v0.8.6
Updating sqlx-macros              v0.8.3                         -> v0.8.6
Updating sqlx-sqlite              v0.8.3                         -> v0.8.6
Updating sqlx                     v0.8.3                         -> v0.8.6
Updating string_cache             v0.8.8                         -> v0.8.9
Updating synstructure             v0.13.1                        -> v0.13.2
Updating syn                      v2.0.100                       -> v2.0.104
Updating tao                      v0.32.8                        -> v0.33.0
Updating tauri-build              v2.1.0                         -> v2.2.0
Updating tauri-codegen            v2.1.0                         -> v2.2.0
Updating tauri-macros             v2.1.0                         -> v2.2.0
Updating tauri-plugin-dialog      v2.2.0                         -> v2.2.2
Updating tauri-plugin-fs          v2.2.0                         -> v2.3.0
Updating tauri-plugin-log         v2.3.1                         -> v2.5.0
Updating tauri-plugin-shell       v2.2.0                         -> v2.2.2
Updating tauri-plugin-store       v2.2.0                         -> v2.2.1
Updating tauri-plugin             v2.1.0                         -> v2.2.0
Updating tauri-runtime            v2.5.0                         -> v2.6.0
Updating tauri-runtime-wry        v2.5.0                         -> v2.6.0
Updating tauri-utils              v2.3.0                         -> v2.4.0
Updating tauri                    v2.4.0                         -> v2.5.1
Updating tauri-winres             v0.3.0                         -> v0.3.1
Updating tempfile                 v3.19.1                        -> v3.20.0
Updating thread_local             v1.1.8                         -> v1.1.9
Updating time-macros              v0.2.21                        -> v0.2.22
Updating time                     v0.3.40                        -> v0.3.41
Updating tinystr                  v0.7.6                         -> v0.8.1
Updating tokio-util               v0.7.14                        -> v0.7.15
Updating tokio                    v1.44.1                        -> v1.45.1
Updating toml_datetime            v0.6.8                         -> v0.6.11
Updating toml_edit                v0.22.24                       -> v0.22.27
Updating toml                     v0.8.20                        -> v0.8.23
Updating tracing-attributes       v0.1.28                        -> v0.1.30
Updating tracing-core             v0.1.33                        -> v0.1.34
Updating tray-icon                v0.20.0                        -> v0.20.1
Updating uuid                     v1.16.0                        -> v1.17.0
Updating value-bag                v1.10.0                        -> v1.11.1
Updating wasi                     v0.11.0+wasi-snapshot-preview1 -> v0.11.1+wasi-snapshot-preview1
Updating webview2-com-sys         v0.36.0                        -> v0.37.0
Updating webview2-com             v0.36.0                        -> v0.37.0
Updating windows-link             v0.1.1                         -> v0.1.3
Updating windows-result           v0.3.2                         -> v0.3.4
Updating windows-sys              v0.48.0                        -> v0.60.2
Updating winnow                   v0.7.4                         -> v0.7.11
Updating winreg                   v0.52.0                        -> v0.55.0
Updating writeable                v0.5.5                         -> v0.6.1
Updating wry                      v0.50.5                        -> v0.51.2
Updating yoke-derive              v0.7.5                         -> v0.8.0
Updating yoke                     v0.7.5                         -> v0.8.0
Updating zbus_macros              v5.5.0                         -> v5.7.1
Updating zbus                     v5.5.0                         -> v5.7.1
Updating zerovec-derive           v0.10.3                        -> v0.11.1
Updating zerovec                  v0.10.4                        -> v0.11.2
Updating zvariant_derive          v5.4.0                         -> v5.5.3
Updating zvariant                 v5.4.0                         -> v5.5.3
2025-06-21 17:47:45 +02:00
ddidderr bad6baa9de [deps] cargo update 2025-03-22 13:56:12 +01:00
ddidderr d80dece8a7 [deps] cargo update 2025-03-20 23:01:49 +01:00
ddidderr 78f7ff2405 [wip] use windows crate to run as admin 2025-03-20 20:57:32 +01:00
ddidderr 19434cd1b1 [deps] cargo update (and a few unused crates for future stuff) 2025-03-20 19:38:35 +01:00
ddidderr bcf9ad68ad [deps] cargo update 2025-03-02 13:05:35 +01:00
ddidderr d1eb185498 [deps] move all deps into main toml and update 2024-12-03 20:49:13 +01:00
ddidderr 2b64d1e4ba [client][server] file transfer working, ui not ready for it 2024-11-14 23:26:31 +01:00
ddidderr 942eb8003e [improve] set game dir on client -> updates Play/Install button based on games existing 2024-11-14 19:41:55 +01:00
ddidderr a6ed6e04fe [backup] games from server with images 2024-11-13 23:51:28 +01:00
ddidderr 5d45c4ce4b [ui] change framework from Tauri Leptos to Tauri Vanilla (Typescript) and React 2024-11-13 22:15:04 +01:00
ddidderr 1388bc2115 [feat] use eti game.db, commit not working, something is wrong with game.id in the client/frontend 2024-11-12 22:12:49 +01:00
ddidderr 9f8c6d3417 [feat] client robust against server disconnects and better logging on the client 2024-11-10 15:45:55 +01:00
ddidderr 89af1f9176 [omg] GUI, mDNS, list games on client start 2024-11-10 15:11:22 +01:00
ddidderr 9f63ace39c [feat] use clap to pass IP and port 2024-11-08 22:39:02 +01:00
ddidderr 9d8f579a0f [feat][code] proto crate, one stream per request 2024-11-08 22:22:50 +01:00
ddidderr 04a39790b8 [code] restructured into different crates 2024-11-08 10:05:24 +01:00
ddidderr 70e3aaea17 lanspread: Game Distribution on LAN parties (WIP) 2024-09-29 16:16:58 +02:00