Skip to content

fix(ios): results say they need an installer's review, never that one is coming - #199

Merged
SamGu-NRX merged 3 commits into
codex/public-assembly-20260930from
fix/result-installer-review
Oct 2, 2026
Merged

SamGu-NRX merged 3 commits into
codex/public-assembly-20260930from
fix/result-installer-review

Conversation

@SamGu-NRX

@SamGu-NRX SamGu-NRX commented Oct 2, 2026 •

Copy link
Copy Markdown
Owner

Stacked on #191 (codex/public-assembly-20260930, 0b35f65). This PR adds three commits: 8c47d67, c73aa46 and 94f18ff.

What changed

The app shows the server's answer and contacts nobody. Nothing sends a scan to an installer or queues a review. Yet the result screen and the scan's skip hints promised an installer's action, so a homeowner could reasonably wait for a call that never comes:

  • the headline "An installer will confirm";
  • "An installer will check this" on unsure checks and on "Still needed" views the phone can't capture;
  • the footnotes "An installer confirms this on site." and "…so an installer reviews every result for now.";
  • "The spot an installer will check" in the AR view;
  • "An installer will look at it instead" (or "read the meter", "check it") in the skip hints on the walk, the gap request, the meter close-up and the spot check.

The app now says what the result needs, not what someone will do:

Where Before After
Result headline, when a person has to settle it An installer will confirm Needs an installer's review
Unsure check, and an uncapturable "Still needed" view An installer will check this Needs an installer to check
Result footnote, on every result An installer confirms this on site. Before any battery goes in, an installer has to confirm where it goes on site.
Result footnote, rules not approved …so an installer reviews every result for now. …so every result needs an installer's review for now.
AR view title The spot an installer will check The spot an installer needs to check
Skip hints An installer will look at it instead. An installer would need to look at it instead.

The other three headlines ("A battery fits here", "One more look", "Not on this wall") are unchanged. An unsure check still shows a person or a camera icon depending on whether a photo can settle it. Only the words changed; the layout didn't need to (ScanCopy.swift).

FullFlowUITests.testFullFlowFromReplay ends on the bundled sample, a manual review under unapproved rules. It now checks the rendered headline and both installer footnotes word for word (FullFlowUITests.swift). Against a real server, whose answer can be any decision, it skips them. The new InstallerReviewUITests holds the demo's review sample still, checks the footnote, and opens Details. It checks that the window check, which needs a person, reads "Needs an installer to check", and that the ground check, which needs a photo, still reads "One more photo would settle this" (InstallerReviewUITests.swift).

UI changes

The result screen for the sample result (a spot a person has to settle), iPhone 17 Simulator, default text size, from FullFlowUITests.testFullFlowFromReplay. Before is the app code at 0b35f65, captured at b926c92 with the same app source; after is this PR. Only the headline changes.

Before After
Result headline reads "An installer will confirm" Result headline reads "Needs an installer's review"

The AR view's new title and the changed hints aren't captured: the sample result shows "Example spot, not your result" in AR, and the hints are VoiceOver text.

Verification

  • Local, under the shared Mac's queue, on the same app source:
    • At 47888d70, 648 package tests in 92 suites passed, and the app built for testing (job app-review-batch). That count included a source-scanning test since replaced by the UI assertions.
    • On the iPhone 17 Simulator, testFullFlowFromReplay, testSomethingThereChecksTheWallAgain and testRejectedUploadGoesBackToReview passed, 3 of 3 (job app-review-ui). They cover the result, the spot check's "Something's there" path and the refused upload. The after capture comes from this run, at 8c47d67. It was taken before c73aa46 reworded the footnote, which is below the captured area.
  • Hosted run 37058434128 at 94f18ff passed: 644 tests in 91 suites, and 47 UI tests with 1 skip and 0 failures, including testFullFlowFromReplay and InstallerReviewUITests. The earlier run 37052663637 at c73aa46 failed only InstallerReviewUITests: it expected the installer headline on the demo's review sample, whose headline is "One more look". 94f18ff drops that check; testFullFlowFromReplay keeps covering the headline on the bundled installer sample.
  • A fresh Sol review found no remaining promise in the app's strings, accessibility text or share flow.
  • No UI test pinned the old wording.

Risk

  • The server's own text still reaches the screen unchanged: its summary sentence and each check's reason. If the server says an installer will do something, the app shows it.
  • The skip hints and the AR title are checked by review only. XCUITest exposes no accessibility hint, and the sample result shows "Example spot" in AR.
  • The product docs under docs/app-review describe earlier builds and still quote the old headline. They are point-in-time reviews and aren't updated here.

Checklist

  • The scope is focused; related changes belong together
  • I explained what changed and why
  • Before/after captures are inline under UI changes
  • N/A video: no motion changes.

🤖 Generated with Claude Code

…oming

The app shows the server's answer and contacts nobody, yet the result and the
scan's skip hints promised an installer's action: "An installer will confirm",
"An installer will check this", "An installer confirms this on site", "an
installer reviews every result for now", "The spot an installer will check" and
"An installer will look at it instead". Nothing sends a scan to an installer or
queues a review.

The result now says what it needs:
- The headline for a result a person has to settle reads "Needs an installer's
  review"; the other three answers are unchanged.
- An unsure check that no photo can settle, and a "Still needed" view the phone
  can't capture, read "Needs an installer to check" (one constant).
- The footnotes read "An installer has to confirm the spot on site before a
  battery goes in." and "The placement rules aren't final yet, so every result
  needs an installer's review for now."
- The AR view says "The spot an installer needs to check".
- Skip hints on the walk, the gap request, the close-up and the spot check say
  an installer "would need to" look, read or check instead.
- The offline sample's summary says the spot "needs an installer's review".

FullFlowUITests.testFullFlowFromReplay, which ends on the bundled sample (a
manual review under unapproved rules), now asserts the rendered headline and
both installer footnotes word for word. It skips them against a real server,
whose answer can be any decision. The server's own summary and reasons aren't
covered.

Co-Authored-By: Claude Code <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: 89ca4ad4-0f52-48b3-b30f-7bb342fd9281

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Autopilot is currently an internal CodeRabbit preview.


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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-02T19:03:16.156874Z 8c47d67 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@github-actions github-actions Bot added the size:M 30-99 effective changed lines. label Oct 2, 2026
@codemetrics-ai

codemetrics-ai Bot commented Oct 2, 2026

Copy link
Copy Markdown

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 BaseScanning to your team's repositories.

@greptile-apps

greptile-apps Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

RetriggerConfidence Score: 5/5

[Medium risk] Updates user-facing text about installer review results.

The PR appears safe to merge; no outstanding finding or new actionable issue remains.

Summary

The PR replaces wording that implied an installer had been contacted with wording that says a result needs review.

  • Updates result copy, AR text, skip hints, and the offline demo summary.
  • Adds UI checks for installer-review copy and preserves the distinction between checks needing a person and checks needing another photo.

Reviews (3) · Last reviewed commit: "ios: the frozen review-sample test drops..."

Comment thread ios/HouseScanUITests/FullFlowUITests.swift

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8c47d6789d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread ios/HouseScan/UI/Copy/ScanCopy.swift Outdated
…n Details (#199)

"An installer has to confirm the spot on site before a battery goes in." shows
on every result, including "Not on this wall" and "We couldn't measure your
wall", which have no spot (Codex review on #199). It now reads "Before any
battery goes in, an installer has to confirm where it goes on site."

InstallerReviewUITests holds the demo's review sample still, opens Details and
checks that the window check, which needs a person, reads "Needs an installer
to check" while the ground check, which needs a photo, keeps "One more photo
would settle this" (Greptile review on #199). XCUITest can't read accessibility
hints, so the skip hints remain checked by review only.

Co-Authored-By: Claude Code <noreply@anthropic.com>
@SamGu-NRX

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

The demo's review sample still offers a view to capture, so its headline is "One
more look", not the installer answer (hosted run 37052663637). The installer
headline stays checked on the bundled sample in testFullFlowFromReplay, which
passed in that run. This test keeps the footnote and the two unsure notes.

Co-Authored-By: Claude Code <noreply@anthropic.com>
@SamGu-NRX

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@SamGu-NRX
SamGu-NRX merged commit 8fc2158 into codex/public-assembly-20260930 Oct 2, 2026
6 checks passed
@SamGu-NRX
SamGu-NRX deleted the fix/result-installer-review branch October 15, 2026 11:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M 30-99 effective changed lines.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant