Polish Discover sheets and Library row motion #77
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fm/polish-lane-b"
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?
Outcome
Polish Discover requests, filter chips, and Library rows without changing their logical focus or submission timing.
focusMove; keep existing scale and OK behaviourDiscoverScreen.kt,LibraryScreen.ktDiscoverPolishTest.chipColoursCrossfadeOverFocusMove,LibraryPolishTest.toolbarChipColoursCrossfadeOverFocusMoveDiscoverScreen.kt,DiscoverOverlay.ktDiscoverPolishTest.requestButtonSaysSendingUntilTheServerAnswersDiscoverOverlay.ktDiscoverPolishTest.receiptFadesInOnceAfterSending,reopenedUnconfirmedOutcomeRestsImmediatelyScreenEntry.kt,Motion.ktLibraryPolishTest.backFromTitleKeepsRowsAtRest,HomePolishRowsTest.scrollBackShelfDoesNotReplay,DiscoverPolishTest.scrollBackLaneDoesNotReplayDiscoverOverlay.kt,DiscoverScreen.ktDiscoverPolishTest.requestSheetFadesInAndOutWithoutClickThroughLibraryGridState.kt,LibraryScreen.ktLibraryPolishTest.sortChangeRevealsVisibleRowsTogetherDiscoverOverlay.ktFiles above are under
wolfskin-design/src/main/java/org/justinvisser/wolfskin/design/. The three new regression files are in the matchingsrc/testpackage. Every new motion regression also runs withLocalReducedMotion provides true.Approved decisions
navigation.replace, or a person switch) starts with an empty memory. The approved tab entrance and every first appearance are unchanged.” Skeletons are recorded only when enabled; one saved-visit rule covers Library, Home, and Discover.catalogueKeyfor catalogues, control the revision. Focus stays on the toolbar and the index still resets to zero.ShellSurface.kt:68–74,DiscoverScreen.kt:60,TitleNotice) stay as they are.” Only the Discover call site changes; shared host motion and toast frame strips belong to Lane E.Base and ownership
Target:
fm/tv-round2. Rebased onto the published shared base74b737fb52bfbb2cc7afa0b0288ae59e67232320without rewriting it. The base commit is included until Lane E lands, as required by the lane protocol.Only Lane B's assigned files are edited. The combined revision-7 written spec is owned by Lane C, so no spec, token, or other lane-owned file is changed here.
Verification
App neighbours: 5 passed, 0 failed, 0 skipped across
TitleRequestSafetyTest,LibraryProgressiveSurfaceTest, andDiscoverRefreshMotionTest.Design scope: 114 passed, 0 failed, 0 skipped across the 12 required classes, including all 20 new normal/reduced-motion cases.
Native frame proof
Published native 1920×1080 captures and
samples.csvindexes:/root/.treehouse/firstmate-7bab20/2/firstmate/data/ui-polish-build/lane-b/<idea>/{before,after}/discover-chips,library-toolbar: 16 frames each, including readable incoming/outgoing labels at 96 mssending: 12 frames; after also includes reopening while the server is still pendingreceipt: 15 frames; settled/reopened unconfirmed outcome pairlibrary-back: 15 return frames and 15 genuinely fresh-entry framesrequest-sheet: 12 open frames and 8 close frames, with scrim and high-contrast panel probessort-rating: 15 frames plus unchanged-result before/after pairhome-scroll-back,discover-scroll-back: 15 return frames; Home also records a genuinely new shelf's first appearanceThe Home proof uses actual native lazy-list scroll-out and scroll-back with the queued Compose dispatcher and
requestScrollToItem; the authorized scripted fallback was not used. Frame zero on return is already settled; genuinely new entries still reveal. The inlinerowRevealdocumentation records this saved-visit contract.Only native Robolectric surfaces were exercised. No TV box, ADB, emulator, full suite, APK build, or deployment was used. All Gradle commands went through
docker/gradle.shand its shared lock.CSV
timeMsis relative to each strip's first captured frame; captures advance the manual Compose clock in 16 ms steps. The matching PNGs preserve the complete surface, while the CSV records the sampled coordinates and channels.Final pixel-preservation check
After native image comparison found a one-pixel resting glyph offset, the busy button's inner resting row was constrained to the existing button height. The focused and unfocused glyphs now use the original centering geometry.
49 passed, 0 failed, 0 skipped after that normalization:
All seven settled references are pixel-identical before/after:
st-120,focus-toolbar-chip,st-072,st-074,st-071,st-021, andst-022. The animated receipt's final panel also matchesst-074exactly.Native sample choice: the proposed near-black P06 panel probe differed by one channel level near settling. The regression instead samples a high-contrast interior Request-heading pixel and the scrim, records those coordinates, and keeps the same monotonicity tolerance. The complete native frames remain available for inspecting every pixel.
All baseline, intermediate, and final commands with results
Landed through the round 2 candidate #82 (merged into fm/tv-round2 as
c21d17df). Closing as superseded; nothing from this branch is lost.Pull request closed