release / govulncheck (push) Successful in 23s
release / web (push) Successful in 1m13s
release / go (push) Successful in 1m42s
release / integration (push) Successful in 5m19s
release / android (push) Successful in 6m2s
release / Build signed APK (releases and dev) (push) Successful in 6m15s
release / Attach APK to the Release (tag releases only) (push) Skipped
release / Build + push container image (push) Successful in 16s
release / Verify release artifacts (tag releases only) (push) Skipped
Every flagged comment block in the Android app, its tests and its XML/TOML config, rewritten with the cited issue in view: the constraint is kept, the story behind it dropped, and issue, milestone, rule, phase and drift ids, dates and operator quotes removed. "Mirrors the Flutter client's X" pointers are gone; that client is no longer in the repo. Comments that no longer matched the code, corrected: - SyncController: a 410 resets the cursor and re-pulls; it never dropped the three local caches. - PlayerFactory, PlayerModule, AudioCacheIndexEntity, CacheConfig, CacheSource: there is no eviction worker and no liked-track bucket; SimpleCache evicts by plain LRU over the rolling cap, and the liked cap is stored but unenforced. - CacheSettings, StorageCard: the prefetcher exists (AudioPrefetcher); pin-on-like still does not. - LibraryApi, LibraryRepository, BrowseViewModel: the cache now carries the missing-file mark; the browse indexes stay server-backed for one source of grouping. - OutputRoute: UPnP routes exist; only CAST and SONOS are reserved. - PlayerFactory, RemotePlayerState, OutputPickerController: a failed transport command does not drop the UPnP route. - LibraryScreen: History, Liked and Hidden are real tabs, not placeholders. - AVTransportClient: the extend loop lives in SonosQueueLoader. - "the operator" meaning the listener now says "the user". Verified with a Kotlin lexer comparing every file's non-comment tokens against HEAD: 394 files, 0 differences. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>