Skip to content

"Still needed" asks for wall past a limit end (wall to 26 ft 2 in; the wall ends at 19 ft 9 in) #78

Open

Description

@AidenJohnston

The result's "Still needed" list asks the homeowner to film wall past a "Something blocks it" end, where there is no wall.

Seen in. Device field test of TestFlight build 4.1 (beta at 45017ba), iPhone 14 without LiDAR, iOS 26.6.2, 2026-09-26. Run 2 (the indoor mock wall), result screen at 4:59–5:04 in the recording. Report ID A41-2015-10 in run2-2015.md.

What happens. The right end was answered "Something blocks it", so it is a limit end at 19 ft 9 in. "Still needed" then showed:

  • "Show the wall from 10 ft 8 in right of the meter to 26 ft 2 in right of the meter, seen at least 6 ft 6 in up the wall. Part of it is past the right end: point the camera there from the end."
  • "Show the ground in front of the wall from 4 ft 2 in right of the meter to 33 ft 2 in right of the meter, at least 15 ft 4 in out from the wall. Part of it is past the right end: point the camera there from the end."

The ground half is defensible: ground past a limit end can still hold a driveway or a pool, and the contract counts it. There is no wall past a limit end, though, so the last 6 ft 5 in of the wall request can never be met.

Re-running the server at 45017ba on the exported scene gives the same item: band: wall, span_ft 10.64 → 26.14, from gas_clearance, opening_clearance and wall_equipment_above. The spot ends at 19.68 ft. The extra reach is the check radius: the 3 ft clearance plus the wall's error at the spot's far edge (0.3 + 0.16 × 19.68 ≈ 3.45 ft), so 19.68 + 6.45 ≈ 26.1 ft.

Cause.

  • The scene adds an extension piece past each end of the wall chain, as long as the largest clearance plus the battery plus the wall error (scene.py#L720-L748).
  • For a limit end, Scene.coverable stops at the outer piece's end, which is the end of that extension, for every band, including wall (scene.py#L345-L358). Its docstring ("and past a limit end") fits the ground but not the wall.
  • unobserved_wall_lines spans pieces[0].s0 to pieces[-1].s1, extensions included (scene.py#L360-L368).
  • _missing intersects the two within the check radius and turns the result into a wall view (solver.py#L407-L431). _past_end_hint then adds "point the camera there from the end" whatever the band (solver.py#L1299-L1309).

Fix direction.

  • Clip the wall band's coverable region, and unobserved_wall_lines, to the end marks for both end kinds. Keep ground past a limit end.
  • For the ground part past a limit end, say why it is asked for (for example "to check for a driveway or pool past the end").
  • Add a server test: a limit end with the spot near it gives no wall request past s_max.

Related.

Screen recordings are in the comment below.

Activity

  1. added
    bugSomething is broken or behaving incorrectly.
    size:S10-29 effective changed lines.
    on Sep 27, 2026
  2. AidenJohnston commented on Sep 27, 2026

    @AidenJohnston
    CollaboratorAuthor

    Screen recordings from the build 4.1 field test (TestFlight 4.1, iPhone 14 without LiDAR). Click a link to play.

    Times are in each run's recording. Full analyses: PR #60.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething is broken or behaving incorrectly.size:S10-29 effective changed lines.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions