You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
"Looks complete" sends with the window's open/shut answer and the ground type unanswered #65
"Looks complete" is enabled with the two review questions unanswered ("Does this window open?" and "What's on the ground along this wall?"), and the scan is sent without them. Each gap can turn a check the homeowner could have settled in one tap into an unsure one.
Seen in. Device field test of TestFlight build 4.1 (beta at 45017ba), iPhone 14 without LiDAR, iOS 26.6.2. Times are in each run's screen recording.
Run 1 (indoor mock wall), 4:22–4:28: "Does this window open?" left unanswered, then "Looks complete".
Run 3 (a real house), 1:38.5–1:39.5: the ground type left unanswered, then "Looks complete".
Run 2 answered the window question, so it's not every time.
What happens.
Run 1: the window card's "It opens" / "It stays shut" were never tapped. The scan was accepted, and scene.json's window has no operable field (the schema allows one).
Run 3: "What's on the ground along this wall?" (Grass / Mulch / Gravel / Concrete / Driveway / Deck / Not sure) sat above "Anything else near your meter?". Nothing was chosen, "Looks complete" was enabled, and the tester sent it. scene.ground is empty, so the result's "Ground under the battery" check is unsure. The ground there was clearly gravel.
When the rules exempt windows that stay shut, the solver then treats that window's exemption as unknown, and the check comes out unsure (solver.py#L521-L535).
Fix direction.
Either require an answer before "Looks complete" ("Not sure" is one tap and stays available), or scroll to and highlight the unanswered question when "Looks complete" is tapped.
Or pre-select the ground type from the camera, for the homeowner to confirm.
If skipping stays allowed, say in the result what was assumed ("You didn't say whether the window opens, so an installer will check it").
Related.
Filed from the same test: "Can't get there" reads wrong on tilt tasks; testers look for a "that's the ground" answer instead (asking for the ground type on the ground card would settle it earlier).
Should unanswered review questions block sending? (#65)
"Looks complete" sends even when the ground type and a window's open/shut answer are blank. Under the current rules only the ground answer changes the result (unknown ground makes the ground check unsure). The window answer starts to matter once fixed-window exemptions are turned on (openings.exempt_fixed_windows is false in server/rules.yaml on t3/server).
(a) Require answers. "Looks complete" stays disabled until the ground and each window are answered, with "Not sure" one tap away (added to the window question, which today has only "It opens" / "It stays shut").
(b) Soft gate. The first tap scrolls to the first unanswered question and highlights it; a second tap sends. (Recommended.)
(c) Keep it optional and state the assumption on the result ("You didn't say what the ground is, so an installer will check it").
Recommendation: (b), plus "Not sure" on the window question in any case. It keeps the flow moving, including the path where the phone has lost its place (where "Looks complete" must still send), and still catches the skips seen in runs 1 and 3.
What unblocks it: a pick. After that it's view logic in the review screen plus UI test updates; no server change.
Activity
AidenJohnston commentedon Sep 27, 2026
Should unanswered review questions block sending? (#65)
"Looks complete" sends even when the ground type and a window's open/shut answer are blank. Under the current rules only the ground answer changes the result (unknown ground makes the ground check unsure). The window answer starts to matter once fixed-window exemptions are turned on (
openings.exempt_fixed_windowsisfalseinserver/rules.yamlont3/server).Recommendation: (b), plus "Not sure" on the window question in any case. It keeps the flow moving, including the path where the phone has lost its place (where "Looks complete" must still send), and still catches the skips seen in runs 1 and 3.
What unblocks it: a pick. After that it's view logic in the review screen plus UI test updates; no server change.
🤖 Generated with Claude Code
AidenJohnston commentedon Sep 27, 2026
Team decision: soft gate plus 'Not sure', in PR #131.
🤖 Generated with Claude Code
Pin ingest API tests to static bearer auth. (#65)