Repository navigation
ios: result rule lines say at least / at most (B-14, #36) - #37
Conversation
"Measured 3 ft. The rule is 20 ft" read the cable run's maximum as a minimum. The server sends each check's comparison (at_least / at_most); the result row now carries it and the measurement line reads "The rule is at least 3 ft" or "at most 20 ft". A check without a comparison keeps the bare distance. The wording lives in the app (ScanCopy), not HouseScanKit, so the check is a UI-test assertion on the demo result's window row; the kit already tests decoding `comparison` (PlacementResultTests). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
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. |
The window-row assertion read "at least 3 ft" from the VoiceOver value. The B-16 fix (#34) spells lengths out there ("3 feet"), so the test would fail once both land. It now checks "The rule is at least 3". Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Current head |
Field test run 2's working-space line read "Measured 1 ft 3 in. The rule is 0 in" for a spot 1 ft 3 in inside the meter's working space: the server's measured_ft was -1.25 and Distance.feetAndInches drops the sign. A measurement below zero now reads "Overlaps by 1 ft 3 in", and a minimum of 0 reads "The rule is no overlap". Less than half an inch of overlap still reads "Measured 0 in". The app target has no unit-test bundle (adding one means regenerating the project with XcodeGen), so the check is a screen state: -uiDemoOverlap puts run 2's line in the sample result, and result-overlap asserts the row's VoiceOver value and runs the accessibility audit on it. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
vendoredCopiesMatchServer compares the kit's copy with origin/t3/server, which gained the `battery` object type at 074bf1d (#27). Every iOS run from then on fails in HouseScanKit (run 36275541111 on this PR). The copy is byte for byte from 074bf1d, and its recorded hash and the provenance follow; the other two vendored files are unchanged there. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Read-only follow-up on current head |
|
Current head |
|
Review gate remains open at |
…-fixes Co-authored-by: Cursor <cursoragent@cursor.com> # Conflicts: # ios/HouseScan/UI/Copy/ScanCopy.swift # ios/HouseScanKit/Tests/HouseScanKitTests/JSONSchemaValidatorTests.swift
|
I merged the current The schema test conflict was comment wrapping only. The base already has the same vendored schemas from t3/server 074bf1d, so I took its copy. The previous iOS failure was XCTest failing to terminate the app before |
|
I checked the |
|
Current-head iOS CI passed at |
|
@AidenJohnston Follow-up after merge at |
|
@AidenJohnston Rechecked the follow-up in integration |
Brings in PRs #37, #41, #47, #48 and #51, 8604928 (result schema from t3/server 9e42970) and d0ff1be (the walk asks for the wall to 4.5 ft). Resolved: - Server requests: S3's plan(for:leftEnd:rightEnd:limitEnds:) with the item first carried into the walk's s (walkRequest), in the three call sites. - AR result: S3's in-scene result with occlusion (#41), drawn along the answer's wall (ResultPresentation.wall, else the walk's); publishWall redraws it after refreshing the result's wall. The auto-merge had put that redraw inside WallFrame's static geometry helper. - JSONSchemaValidatorTests: S3's text; the hashes match the vendored files. - Wall height: a 3D-map wall cell counts as covered once Map3DCoverage.wallHeight reaches wallWalkHeight, as S3's camera cells now do; the exported out_ft under map3d is still Map3DCoverage.wallHeight. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Fixes #36 (B-14 in the verification bug triage).
Fixes #40.
#40, an overlap read as clearance. "Measured 1 ft 3 in. The rule is 0 in" was a spot 1 ft 3 in inside the meter's working space (
measured_ft-1.25);Distance.feetAndInchesdrops the sign. A measurement below zero now reads "Overlaps by 1 ft 3 in", and a minimum of 0 reads "The rule is no overlap". Separate commit. The app target has no unit-test bundle, so the check is a new screen state:-uiDemoOverlapputs run 2's line in the sample result, andresult-overlapasserts the row's VoiceOver value (and runs the accessibility audit on it).Before: "Measured 3 ft. The rule is 20 ft, and the measurement can be off by about 4 in." The 20 ft is the cable run's maximum, but the line reads like a minimum that 3 ft fails.
After: "Measured 3 ft. The rule is at most 20 ft, …" and, for clearances, "The rule is at least 3 ft, …". A check the server sends without
comparisonkeeps the bare distance.Change. One commit:
CheckRowgets acomparison(RuleComparison.atLeast/.atMost), filled from the server'schecks[].comparison, which HouseScanKit already decodes (ScanEngine+Export.swift).ScanCopy.measurementwords the limit from it (ScanCopy.ruleLimit)..atLeast.Tests. The wording lives in the app, not in HouseScanKit, so there's no new package test; the kit already covers decoding
comparison(PlacementResultTests).ScreenStatesUITests.testWholeFlowThroughTheButtonsnow asserts that the result's window row reads "The rule is at least 3" (the unit is left off, since VoiceOver spells it out once #34 lands).Not in this PR.
review_threshold_ft(the 15 ft review line on the cable run) is still ignored; #36 lists it as a follow-up. The rest of the triage recheck at49a676e:🤖 Generated with Claude Code