AprilNEA / AprilNEA/OpenLogi

[Feature]: Reconsider the default for automatic device-asset downloads

Open
#1,343 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
21k
Forks
675
Avg merge
2d 5h
Merged PRs (30d)
172

Description

### Problem / motivation

`auto_download_assets` defaults to true (`crates/openlogi-core/src/config/settings.rs:220-231`, `Default` at 463), and release builds ship without bundled art, so first launch fetches device renders on demand (`xtask/src/commands/macos/bundle.rs:74-88`). The fetch races three hosts, including a third-party CDN (`crates/openlogi-assets/src/source.rs:21-34`: assets.openlogi.org, a Cloudflare Pages mirror, cdn.jsdelivr.net), and request paths contain the device model (for example `v1/devices/mx_master_3s/front_core.png`), with the app version in the User-Agent.

Net effect: on a default install, the asset hosts learn the user's IP address and which Logitech models they own. No identifiers, cookies or payloads are sent, and files are SHA-256 checked against the index, but this sits oddly next to the local-first positioning, and the setting is not visible enough for users who care.

### Proposed solution

Any of these would help, in order of preference:

1. A first-run prompt for asset downloads, mirroring the update-check consent dialog.
2. Default `auto_download_assets` to false.
3. At minimum, a short privacy note in the README stating what is fetched, from where, and how to turn it off (`auto_download_assets = false`).

### Alternatives considered

Bundling assets in the installers avoids the network entirely but grows the download; on-demand with a prompt keeps both properties.

**Related areas:** GUI, Auto-update

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading crates/openlogi-core/src/config/settings.rs:220-231 and the Default implementation at 463, then inspect xtask/src/commands/macos/bundle.rs:74-88 and crates/openlogi-assets/src/source.rs:21-34. The proposed approaches need maintainer agreement before work begins; done should mean the selected privacy behavior is implemented and its user-facing implications are verified.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
desktop, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.