History - #60
History#60
Conversation
|
Local verification passed: pnpm check, 811 core tests, 422 native tests, both platform exports, and all 6 Reassure measurements. History measured exactly 2 renders across 10 runs. The iOS History flow now covers the account-modal snackbar and Undo. Device results and screenshots are pending CI. Product growth is net +545 lines; no native dependency changes. |
|
CI cycle 1 passed every check except the iOS flow. History removal, the account-modal snackbar, Undo restoring the day total, and the no-match filter all passed. The flow then failed at Maestro hideKeyboard against native search. The captured accessibility hierarchy exposes a close control; the follow-up uses it, sets native search to stacked placement, and restores compact chip styling with full touch targets. Targeted tests pass; cycle 2 follows after the full pre-push check. |
|
Cycle 2 passed all non-iOS checks. iOS stopped in the shared sign-in wait before History opened: screen-up-next was reported missing, while the captured screenshot shows the populated Up Next screen. This is a different assertion from the reported up-next-skeleton failure, so the same root cause is not established. Rerunning failed jobs once, without changing shared sign-in code, as the third and final CI cycle. |
|
Final status after three CI cycles: native-ios remains red at the history-jump-sheet visibility assertion. The corrected native search-close step passed. The screenshot shows the month sheet fully rendered with both grids fitting, but the accessibility hierarchy has no sheet controls, so selecting a month was not reached. Cause is not established; no speculative fix or additional rerun was made. Evidence: https://github.com/arun279/cue/actions/runs/35465427814/artifacts/10591272538. All other executed checks passed, including root checks, changed-core coverage, render counts, Android emulator checks, footprint and CodeQL. The PR remains draft. |
A form sheet presented while the account full screen modal is already up never registers in the iOS accessibility tree: the sheet draws, but its container holds no elements, so VoiceOver and the Maestro flow cannot reach a month. The same happens to the episode sheet opened from a History row, so this is the nesting rather than the sheet's contents. The jump now draws inside the History screen as a modal panel over a dimmed backdrop, with an explicit Close where the sheet had a grabber. Picking sets the search params in place, which retires the route, its parameter round trip and the medium it had to carry back.
At the largest accessibility text the six column grids broke year labels
across lines ("202" over "6") and the panel grew past the top of the
screen, taking its Close control with it. The grids now fall to three
columns above a 1.3 text scale, and the panel caps at four fifths of the
window with its heading pinned and its body scrolling.
The leading time column was fixed at 62 pt, which broke "4:14 PM" inside
the meridiem; it now scales with the text. The panel draws on the
overlay token so it reads as raised against the dimmed page on dark.
|
iPhone 17 Pro simulator, iOS 27, signed Release build carrying this branch's JavaScript, against the fake Trakt. Each pair is the same step of the same flow, captured after the animation settled.
|
Account navigation needs an opaque surface so sticky day labels remain visible while scrolling. A default same-day repeat makes the collapse badge testable in the device flow.
The preceding episode flow mutates the fake account even after Undo, which can move a single play ahead of the seeded repeat. Resetting before authentication makes the History assertion independent of suite order.
iOS exposes the repeated-play count in the row label while correctly omitting the decorative badge as a separate accessibility node. The device flow now checks the user-facing count on that row.
Pull request footprint
User-delivered artifact sizes
|














+1127 / -71, net 1056
Product-Growth: Product +626 / -57, net +569; reuses core reads, grouping, removal/Undo and native UI; adds History composition, item collapse, the month panel and account detail routes.
Binary-Size: JavaScript only; no native change
Replaces the account History stub with day-grouped watch history, play totals, title and medium filters, paging with explicit error recovery, and a one-step month panel. Same-item plays collapse per day; removal takes the newest play and states the loaded remainder. Undo waits for that removal and is silent on success.
Reuses the paged core query, local-day grouping, outcome-aware removal hook, account snackbar host, Calendar skeleton, pull-to-refresh, SyncStrip, tokens and native row/menu controls. The item-collapse model adapts the previous web implementation. Existing episode and movie routes are re-exported inside the account stack. The fake history endpoint now applies month bounds before paging; its seed is unchanged.
The History Maestro flow opens the account area from Up Next, checks the first day and row, removes a play, uses Undo above the account modal, checks the restored day total, filters to no match and clears, then chooses a month. It is included in the iOS suite and waits for animation completion before capturing its screenshot.
Validation: root
pnpm checkpassed, including 811 core tests, 422 native tests and both platform exports. Reassure passed all 6 measurements; the History row rendered exactly twice in each of 10 runs. An explicit baseline admits this new scenario while preserving exact base-branch count comparisons; gate tests cover accepted, regressed, missing and unknown scenarios. No simulator or emulator was available locally. Product growth is above the approximate 450-line target. The Calendar skeleton retains its existing poster dimensions, and the visible row overflow needs a narrow-screen visual check.CI status: all executed checks except native-ios passed. The final iOS attempt passed search dismissal, then failed to find history-jump-sheet. Its screenshot shows the fully rendered sheet, while the captured accessibility hierarchy has no sheet controls. This accessibility/visibility issue and month selection remain unresolved. Three CI cycles were used, including one failed-job rerun after a shared sign-in assertion.
Screenshots follow from a simulator and emulator pass