Repository navigation
ios: beta gets the legend fix and the walk's in-motion audit, report-only - #172
Conversation
…alled Simulator CI run 36307476187 on b90fb8e: testFullFlowFromLidarReplay failed contrast on the walk for a node with no element. Its recording shows the map's legend with three entries (the end preview, hidden sections, Depth-checked) squeezed into one row and laid over each other, and a leaving entry fading over the one taking its place: the walk's controls animation (controlsKey) reached into the map. The legend now takes one row only when every entry fits on a line and stacks otherwise, and its entries change without animating. A new audited state, wallWalk-fullLegend, shows all three at once. testWholeFlowThroughTheButtons missed meter.candidate.0. The picker was never refused: the app's log shows its main thread took no work for 14.6 s while the Simulator's push daemon spun in a reconnect loop, and the close-up script resumed where it stopped. The picker would have come about 17.3 s after the close-up opened, against a 15 s wait; the wait is now 30 s. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> (cherry picked from commit 1faa79b)
The walk's audit in motion caught real bugs that only show mid-transition: the map legend's entries drawn over each other (1faa79b), the two reply titles half-drawn over each other (b1a2444) and the translucent reply fill (397b6d6). Auditing only the held walk would have hidden them. The walk is now audited on its first appearance as well, report-only: findings are attached as audit-wallWalk-moving and printed, as with HOUSESCAN_AUDIT_REPORT_ONLY, and the strict audit stays on the held walk. Also: LaunchOptions documents <phase>.held, and the LiDAR test's comment no longer times the walk. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> (cherry picked from commit 32f6e71)
… a held screen A test audits a held screen only once <phase>.held appears, and the walk's map check after it can wait 90 s; the two-minute gate could expire first on a slow runner and let the app leave mid-audit (Greptile on #169). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits. |
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Note Review skipped Codemetrics is installed on this repository, but it hasn't been added to your team yet. To enable AI code reviews for this repo, go to your dashboard and add house-scanning-master to your team's repositories. |
|
| HStack(spacing: 12) { | ||
| legendEntries | ||
| Spacer(minLength: 0) | ||
| depthLabel | ||
| } | ||
| VStack(alignment: .leading, spacing: 6) { legendEntries; depthLabel } |
There was a problem hiding this comment.
Crowded legend stays inline When the end preview, hidden sections, and depth label appear together on a narrow screen, the first layout can shrink its spacer and wrap its text while still fitting.
ViewThatFits can then keep the entries in one HStack instead of stacking them, leaving the legend overlap this change aims to fix. Make the inline layout require enough width for its entries before selecting it.
Prompt To Fix With AI
This is a comment left during a code review.
Path: ios/HouseScan/UI/Camera/WallTape.swift
Line: 108-113
Comment:
**Crowded legend stays inline** When the end preview, hidden sections, and depth label appear together on a narrow screen, the first layout can shrink its spacer and wrap its text while still fitting. `ViewThatFits` can then keep the entries in one HStack instead of stacking them, leaving the legend overlap this change aims to fix. Make the inline layout require enough width for its entries before selecting it.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
There was a problem hiding this comment.
AX sizes stack, but a narrow default-size footer still chooses a shrinkable HStack that wraps entries instead of failing ViewThatFits. Require inline entries to keep ideal horizontal sizes so the stacked candidate wins when crowded. Verify end preview, hidden/skipped entries and depth label together. Evidence on alpha: ios/HouseScan/UI/Camera/WallTape.swift:108; ios/HouseScan/UI/Camera/WallTape.swift:110. This remains open in the triage for #237.
There was a problem hiding this comment.
You're right: the inline candidate must advertise its ideal width to ViewThatFits; otherwise the proposed width lets the Text children wrap and the HStack is still considered a fit. Applying fixedSize to the whole candidate makes the crowded default-size case select the VStack instead:
| HStack(spacing: 12) { | |
| legendEntries | |
| Spacer(minLength: 0) | |
| depthLabel | |
| } | |
| VStack(alignment: .leading, spacing: 6) { legendEntries; depthLabel } | |
| HStack(spacing: 12) { | |
| legendEntries | |
| Spacer(minLength: 0) | |
| depthLabel | |
| } | |
| .fixedSize(horizontal: true, vertical: false) |
This preserves the one-row layout when the end-preview, hidden/skipped, and depth-label entries all fit, while forcing the stacked candidate when their ideal widths do not.
Ship beta to main: the wall map legend fix and the walk's in-motion audit (#172)
#169 brought the settled-walk audit to beta. Beta didn't have Sam's legend fix yet, so that left the wall map's overlapping legend both unfixed and undetected. This fixes the legend and keeps the walk's in-motion audit, in report-only mode.
Commits
wallWalk-fullLegendand raises the picker wait intestWholeFlowThroughTheButtonsto 30 s. Conflicts resolved by hand:WallTape.swift: Sam's layout, keeping beta'sendLeavesOut(_:seen:)call.ScreenStatesUITests.swift: beta's aim states and its list-valuedexpectations, pluswallWalk-fullLegendand its expectation.audit-wallWalk-movingand printed asAUDITlines, as withHOUSESCAN_AUDIT_REPORT_ONLY. That audit caught real bugs that only show mid-transition (1faa79b, b1a2444, 397b6d6), and the frozen every-state audit can't see them.<phase>.heldappears, and the walk's map check after the audit can wait up to 90 s. At two minutes, a slow runner could let the app leave mid-audit. This answers Greptile's P2 on ios: bring the t3/ios-mvf UI test flake fixes to beta #169.Not ported: b1a2444
On
t3/ios-mvf, the card's reply was one button whose title could change inside the card's animation, so "Can't get there" and "Can't see past it" cross-faded over each other. Beta's card already gives the whole card a new identity per step (.id(replyTask), from the card-replies work), and the reply's title is chosen by the same step. A new title always comes with a new card that swaps in at once, so the port isn't needed.Testing
In progress on the Mac mini; results follow in a comment.
🤖 Generated with Claude Code