Older builds could persist the old default streamingInsert=false into preferences.json, which is indistinguishable from a user opt-out if the value is treated as an ordinary bool. Add a one-time migration marker, persist normalized legacy prefs on load, and keep later user opt-outs durable after migration.
Constraint: issue #440 requests streaming input/output defaults on for fresh installs and updates, plus release notes for the behavior change.
Rejected: treating any stored false as manual opt-out | old default writes would keep update users off forever.
Rejected: overriding every false forever | would erase a user's post-migration manual opt-out.
Confidence: high
Scope-risk: moderate
Directive: Keep UserPreferencesWire serde defaults and migration markers aligned with persisted UserPreferences fields.
Tested: cargo test --manifest-path src-tauri/Cargo.toml --lib streaming_insert -- --nocapture
Tested: cargo test --manifest-path src-tauri/Cargo.toml --lib legacy_streaming_insert_false_is_migrated_and_marker_is_persisted -- --nocapture
Tested: npm run build
Tested: cargo test --manifest-path openless-all/app/src-tauri/Cargo.toml --lib
Tested: git diff --check
Not-tested: cargo fmt --check fails on pre-existing unrelated formatting drift in volcengine.rs and commands.rs.