Repository navigation
experiments: meter close-up reading, tap-to-confirm and two retake checks - #16
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
|
Warning Review limit reachedNext included review available in 59 minutes. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: ⛔ Files ignored due to path filters (4)
📒 Files selected for processing (31)
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 |
|
Deployment failed for project house-scanning-web with the following error: Learn More: https://vercel.com/sam-gus-projects-7a4b6082?upgradeToPro=build-rate-limit |
c5cb30d to
944cbe1
Compare
|
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 to your team's repositories. |
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Before this merges, please cut its write-up to the experiment format in #33 ( |
SamGu-NRX
left a comment
There was a problem hiding this comment.
Main-track review findings at the pinned head. Fixes belong to the branch writer; no source changes made by this caretaker.
|
@codex review |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b199613b43
ℹ️ 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".
… scanner and OCR input The README becomes a front door in the experiments/README.md format. Method and trust go to METHODS.md, the app spec to PORTING.md, and the iPhone check to FIELD_TEST.md; each results file names the command that made it. Review fixes: - Each photo's sweep rows are written to one file by an atomic rename; resume skips only complete, current photos, and the analysis refuses missing or incomplete levels, naming the photos. - The leak scanner exempts decimals only in named measurement columns, so an identifier printed with dots is scanned. - Checks are computed on the decoded JPEG that Vision reads. Read results are unchanged; the focus threshold moves from 6.63 to 6.68. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
The write-up now follows the experiment format from #33, in 5b78ded (after merging
The same commit fixes the caretaker's three review findings (see those threads). The only number that moved is the focus threshold, from 6.63 to 6.68. The line in |
SamGu-NRX
left a comment
There was a problem hiding this comment.
Repair verification found four remaining reproducibility/privacy-check defects. The committed threshold data independently reproduces 6.68; these findings concern fresh-run and completeness behavior, not a demonstrated change to those committed read outcomes.
…tory, full CSV leak scan Second-review fixes: - degrade.expected_levels gives the exact (family, level) set each photo takes, from the same rule apply() uses to skip a level. Resume and the analysis both require exactly that set under the current label, so an empty, partial or scale- and edge-less file is swept again, not accepted or skipped forever. - The sweep creates its directory before saving the first work JPEG, so a fresh data directory runs. - The leak scanner scans cells beyond the header and files with an empty first line; only named measurement columns stay exempt. The committed sweep passes the exact check for all 71 photos and the analysis output is unchanged, so no re-sweep was needed. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…off PRs, harden the sweep cache Codex review fixes: - A manifest note held a four-digit utility plate number: note scrubbing and the leak scanner both started at five digits. Both now start at four, and the scanner catches the old note in every earlier commit. - Pull-request code no longer receives METER_HMAC_KEY. The keyed leak check runs after merge and on demand; pull requests get lint and tests. - make sweep fails when either shard fails. - Sweep rows carry a digest of the measurement code, so a code change forces a re-sweep. The re-sweep reproduced all 3,309 rows exactly. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
A manual dispatch could target any branch and run that branch's scanner with METER_HMAC_KEY. The keyed job now requires refs/heads/main for both push and dispatch. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
@codex review |
|
Independent verification at 51a5804: the keyed workflow now runs only on main, and PR CI correctly skips it. CI run 36294891886 passes the unit checks. The preceding code repair at e93e7ab passed 62 tests; a separate local scanner check found no known transcribed identifier in 42 files. All 3,309 sweep outcomes were unchanged after excluding the new code-digest metadata. The fitted blur cutoff remains 6.68 and is not a field-accuracy guarantee. The historical disclosure remains open, and the physical-meter split is being corrected separately. No merge-readiness claim. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 51a5804a08
ℹ️ 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".
Photos of one meter now share a side, keyed by the labelled number's HMAC digest. A meter with any odd-numbered photo, which the rules saw, goes wholly to the design side; photos with no labelled number are never held out. One meter crossed the old photo split. Held out now: top three 27/32 = 84% (was 28/33 = 85%), first 20/32 (21/33), barcode precision 5/7 (6/8). Both criteria still fail. The frozen design-half record and the retake thresholds are unchanged. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…fe field-test files, end-to-end ranking Codex review 5328852981 fixes: - A person's corrected meter number now joins identifier_digests.txt, so the leak check recognizes it. - The field test keeps its working images in a private temporary folder, so it never overwrites, deletes or rescores a file in the photo folder. - The held-out ranking headline counts photos Vision did not read as misses: top three 27/34 = 79% and first 20/34 = 59%. The rates over read photos (27/32, 20/32) stay in results/locate.md as conditional figures. As the manager authorized, docs/00-overview.md and docs/how-it-works.html now say about 4 in 5 held-out photos (27 of 34) instead of 85%. Other verified findings are follow-ups in #103. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c863299fd5
ℹ️ 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".
…s corrections, no tied barcode promotion Codex review 5329005766 fixes: - leakcheck scans non-CSV files whole with normalize()'s separator rules, so an identifier written as 123/4567 or across a line break is caught. - Keep after a correction confirms the corrected number, and labels.build() uses a kept correction as the human-confirmed label. - A read inside two same-length barcode payloads is not promoted, so the ranking no longer depends on set order. The full re-sweep reproduced all 3,309 rows; no result changed. - The how-it-works chart description now says 27 of 34 (79 percent). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a4d9ed5210
ℹ️ 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".
…t unread photos in rule precision Codex review 5329524921 fixes: - leakcheck scans every tracked file from the repository root, not only this folder, and the keyed job runs on every push to main. - Rule precision and recall count every agreed photo, so a wrong pick on a photo Vision did not read is a false positive. Held out, the tallest-line rule moves from 10/32 to 10/34 and the standalone rule from 22/32 to 22/33. No number quoted in the README, METHODS or docs changes; the re-sweep reproduced all 3,309 rows. - commons find creates the data directory before writing candidates. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c8c666a9cc
ℹ️ 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".
|
… keep corrections across rebuilds, digest sweep inputs, measure field photos unrecompressed - labels.scrub replaces every digit the leak check could count toward an identifier, with separators dropped as normalize() drops them, so "12/345" and "12:345" no longer survive. - The review page starts from ingested answers and shows a correction in place of the readers' number; ingest merges instead of replacing, so Keep in a new browser confirms the correction. - Sweep rows carry a digest of the photo bytes, number box and degradation levels; a changed box forces a new sweep even when the same levels run. - The field-test command measures each photo's own decoded pixels and hands Vision a lossless PNG, never a JPEG re-encode. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…asurement unchanged All 3,309 rows reproduce; only the code and input digest columns differ. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
What changed
The app photographs the electric meter so Base can read its meter number and class label, and a homeowner must not be asked for photos again. This PR adds
experiments/meter-closeup/. It measures, on 80 openly licensed meter photos, what the phone can decide on its own, and gives the iOS owner a spec to port. Each question's pass criteria were committed before its run.Answers
a77876c) before the rest were scored. The held-out set is split by physical meter, so it holds only meters the rules never saw. On those 34 photos, no rule reaches the 95% precision needed to fill the number in unasked; the best is right on 5 of 7. The top three candidates held the number on 27 of 34 (79%), counting the two photos Vision could not read as misses; over the 32 it read, 27 of 32 (84%). The earlier write-up reported 28 of 33 (85%): it dropped the unread photos and let one meter sit on both sides. Neither verdict changed. The app shows three candidates, a barcode match first, plus "none of these".Layout, per
experiments/README.mdThe README is now a front door of about 200 words.
METHODS.mdsays how each number was made and how far to trust it.PORTING.mdis the spec for the iOS owner, andFIELD_TEST.mdchecks both thresholds on an iPhone. Each file inresults/opens with the command that generated it.Review fixes
degrade.expected_levelsgives the exact levels each photo takes, from the same rule that skips a level in the sweep. Resume skips only a photo whose file holds exactly those levels under the current label, andmake q2refuses to run, naming any photo that falls short. The sweep also creates its directory before its first save, so a fresh data directory runs.leakcheck.py. Tests plant a synthetic dotted identifier in an ordinary column, in a surplus cell and after an empty first line, and each is caught. No real identifier was found.Keeping meter numbers out of the repository
manifest.csvstores meter numbers as HMAC-SHA256 digests, keyed outside git and in theMETER_HMAC_KEYrepository secret, so they cannot be reversed by trying every number.make leakcheckscans every tracked file in the repository for any identifier a reader transcribed, from four digits up. Pull-request code never receives the key: the keyed check runs in CI only onmain, after merge or when dispatched frommain, and the branch writer runs it locally before review. This branch's earlier history was rewritten to remove example meter numbers and unkeyed digests. Since then,mainhas been merged in, not rebased.Verification
make check: ruff clean; 84 unit tests pass. They include a rebuild, Keep and ingest round trip for a corrected label; a changed number box forcing a new sweep; field-test checks on unrecompressed pixels; note scrubbing across every separator; a fresh-directory run of the realsweep_image, checked against the expected levels; empty, partial and interrupted sweep files; and dotted identifiers in ordinary, surplus and headerless cells.make leakcheck, run locally at the head: "no transcribed identifier in 108 files across the repository".make sweepandmake q2reran all 3,309 degraded reads on the JPEG-consistent code. All 71 photos pass the exact completeness check, andmake q2output is unchanged by the later fixes.make q1andmake q45regenerated the other tables.Risk
Checklist
🤖 Generated with Claude Code