Isolate credentials and cached state across ABS+ servers #8
No reviewers
Labels
No labels
accessibility
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
backmeupplz/absplus!8
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/33-server-isolation"
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?
Summary
Agentboard: https://agentboard.icefish-betta.ts.net/#33
Verification
Head:
f3ed7100e2(includes main1013039)Compatibility
Review verdict
REQUEST CHANGES
Head SHA:
f3f54aa240PR: https://github.com/backmeupplz/absplus/pull/8
Independent Astra review 3b510567-9386-44a0-85fa-0d5c6788c21b settled; parent independently confirms both source findings and one native integration failure. Latest main6650ef7221fa8a49a7a12839faf64cbb144f2f7a merged conflict-free and pushed, but cannot pass release gate.
P1 Android persistent artwork binding: app/src/main/java/com/borodutch/absplus/Ui.kt:38 uses item-only ImageView.tag; Main.kt:922 and1063 skip Covers.load when item matches. Download bar/mini-player survive logout/login in the same Activity without clearing drawable/tag. A loads book artwork; B on another host/account plays/downloads same item ID; A artwork remains without a B lookup, even if B denies the cover. Fix ownership-aware view binding or reset persistent drawable/tag on session replacement; add Activity-level same-ID account/host-switch regression through updateDl/updatePlayer, not only direct Covers.load tests.
P2 iOS stale general JSON after reauthentication: ios/ABSPlus/Abs.swift:122 chooses stable mediaScope for general JSON, while resetSession:367-368 ignores cleanup failures and cached:438-440 reads leftover files. Reauthenticate same host/immutable account after retaining/recreating old /api/me cache: previous progress/bookmarks can repopulate reset state via setMe. General JSON must use persisted per-login identity (Tok.id), with stable media scope retained only for allowlisted retained metadata/audio. Add leftover-cache same-account reauthentication regression; preserve same-account retained media recovery and process-restart semantics.
P1 merge-gate fixture integration: app/src/test/java/com/borodutch/absplus/LibraryRecoveryTest.kt:106-109 manually seeds acct:fixture with only a/r, lacking server/id/mediaIdentity. All nine new #31 tests fail against intentional Abs.token host validation; production login binding must not be weakened. Extend disposable HTTP fixture to authenticate through Abs.login and retain all membership/navigation assertions. Local integrated-head testDebugUnitTest assembleDebug assembleRelease --offline --no-daemon --max-workers=2 exits1: 43 tests, 9 failures (all LibraryRecoveryTest), 34 passed. Evidence /tmp/abs33-b93c-android.log and worktree app/build/test-results/testDebugUnitTest.
No fixes made in this review phase. Security findings are source-traced, not observed real credential leaks or newly executed reproductions. No real credentials or personal libraries used. Worktree worktrees/absplus-33-review-b93c is clean; HEAD is published. #34 release owner notified; preserve its prior release order and reintegrate newer main before final review. No merge, signing, store publication or installed-device claim.