e711cf3454
The follow-up backlog had drifted into three settled peer/runtime issues: the legacy game-list fallback contradicted the one-wire-version policy, the Tauri shell still re-derived local install state from disk after peer snapshots, and `Availability::Downloading` existed even though active operations are already reported through a separate operation table. Remove the legacy `AnnounceGames` request and fallback service. Discovery now ignores peers that do not advertise the current protocol and a peer id, and library changes are sent through the current delta path only. This keeps the runtime aligned with the documented current-build-only interoperability model. Make peer `LocalGamesUpdated` snapshots authoritative for local fields in the Tauri database. The GUI-side catalog still owns static metadata such as names, sizes, and descriptions, but downloaded, installed, local version, and availability now come from the peer runtime instead of a second whole-library filesystem scan. Snapshot reconciliation also pins the missing-begin and missing-finish lifecycle cases in tests. Collapse availability back to the settled `Ready` and `LocalOnly` states. Aggregation now counts only `Ready` peers as download sources, and the frontend no longer carries a dead `Downloading` enum value. The core peer also exposes the small non-GUI hooks needed by scripted callers: startup options for state and mDNS, a local-ready event, direct connection, peer snapshots, and an explicit post-download install policy. Those hooks reuse the same current protocol path and do not add compatibility shims. Test Plan: - `git diff --check` - `just fmt` - `just clippy` - `just test` Refs: BACKLOG.md, FINDINGS.md, IMPL_DECISIONS.md
26 lines
952 B
Markdown
26 lines
952 B
Markdown
# Backlog
|
|
|
|
Smells and small inconsistencies found during post-PLAN.md review. None of
|
|
these block merging — they are tracked here so they aren't forgotten and so
|
|
they don't reopen as "new findings" the next time someone reads the code.
|
|
|
|
**Rule of engagement:** items in this file get touched only when (a)
|
|
someone hits the symptom in practice, or (b) work in a nearby area makes
|
|
fixing the smell incidental. No batch refactor passes. No "while we're
|
|
here" cleanups that grow beyond the in-scope change.
|
|
|
|
---
|
|
|
|
No open backlog items.
|
|
|
|
## How items leave this file
|
|
|
|
- Closed by fix → delete the entry, mention it in the commit.
|
|
- Closed by decision ("we're not doing this") → delete the entry, no
|
|
commit message ceremony needed.
|
|
- Promoted to active work → move back to `FINDINGS.md` only when there's
|
|
a concrete plan to fix it now.
|
|
|
|
This file does not grow unboundedly. If it does, that's a signal to
|
|
either close items or stop adding to it.
|