Community database in the app: shipped data, predictions, ogc db, opt-in download #47
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "communitydb"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Phases 1 and 2 of the community database design, on top of #43 (
ogc-db-proto; this branch contains its commit, so merge #43 first).Data.
src/communitydb/reads the published snapshot (format ofLevelXStudios/ogc-db's model), checks the minisign signature oflatest.jsonagainst embedded primary/backup keys, the snapshot's length and SHA-256, anti-rollback by serial (a floor that survives a discarded cache), and marks expired data stale. The app shipsdata/communitydb/(serial 1: the nine curated Windows/LZX entries from ogc-db#1);scripts/communitydb-snapshot.shrefreshes it.Db::loadtakes the newer of shipped and cached data.Lookup.
Game::portable_key()for Steam, Epic, GOG and Amazon (Heroic too);Nonefor everything without a store ID. Variant by content platform and size class.App. Cards show the expected saving with "community data" and confidence until the local analysis replaces it; estimates are requested biggest predicted saving first. Predictions never drive
Need::Small, auto-compress, the timer, skip decisions or the dashboard's "worth" total (separate line). Recommendation, poorly compressing types, curated notes (asked before compressing). Settings group "Community database" with the download switch (off by default), status and privacy link.CLI.
ogc db status,ogc db update(asking is consent),ogc db show <game|appid|key> [--json];ogc list --format=jsongainspredicted_savings_bytes,prediction_confidence,prediction_source,prediction_method;ogc analyzeadds a community line.Download. ureq 3 + rustls (webpki-roots), whole files only, new agent per source, constant User-Agent, proxies honoured, size and time limits, at most once a day, Forgejo raw mirror after a failed primary. Disabled until the release keys exist (
data/communitydb/keys/{primary,backup}.pub; the switch is greyed out with an explanation). No sending yet (phase 3).Packaging: the Arch package's source tarball is built with
tar, sincecargo packagecannot take the path dependency.Review: 11 findings from two independent reviews, all handled. Locally: fmt, clippy (both feature sets), all tests incl. 630 GUI tests under Broadway pass. Translations beyond English and German are my own and need a native speaker's look.