Skip to content

Extract download destination preferences behind StorageService - #63

Draft
ghbarker wants to merge 1 commit into
varunsalian:webdav-syncfrom
ghbarker:codex/upstream-download-destination-prefs
Draft

ghbarker wants to merge 1 commit into
varunsalian:webdav-syncfrom
ghbarker:codex/upstream-download-destination-prefs

Conversation

@ghbarker

@ghbarker ghbarker commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

Move download-destination persistence into DownloadDestinationPrefs, retaining all seven StorageService APIs. The three existing keys, captured preference instance, URI-before-display-name ordering, and partial-failure behavior remain unchanged. OS folder grants stay with their existing callers.

Based independently on webdav-sync at 077f2e79. This does not depend on the catalog preference extraction and does not rearrange settings or retire callers.

Validation with Flutter 3.44.8 / Dart 3.12.2: 30 public-API tests pass before and after extraction; the final run including existing profile-isolation coverage passes 34 tests. Final changed-file analysis reports no issues. Tests cover held operations, profile changes, false writes, exceptions and partial persistence. Two broader profile source-guard failures reproduce on clean upstream. Native folder-picker and SAF grant behavior were not changed or device-tested.

Independent review found no actionable issues. Across this extraction and the separate catalog-search extraction, all 12 deliberate behavioral mutations were caught; restored suites passed again.

Combined validation with the other ten proposed slices: 304 focused/integration tests passed and an Android release build succeeded with Flutter 3.44.8 / Dart 3.12.2 / JDK 17. The test and build source trees match. The existing Windows Spotlight golden is excluded from that selection. A separate clean upstream full-suite run has 6,044 passes, 12 skips, 55 failing user tests and one failing teardown hook; this is not a full-suite or GitHub CI pass. Physical-device validation of the upstream ports remains outstanding.

Move the unchanged three destination keys and seven method bodies into DownloadDestinationPrefs. Keep public forwarding APIs, captured ProfilePreferences, raw strings, and URI-before-name write/remove order. Add production-path tests for defaults, failure ordering and profile/generation ownership.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant