Repository navigation
Covered band: dismiss only the proved session notice, and only when it cut the band - #1740
Merged
Merged
Conversation
…e-only message; the cover must be what cut the band
…sses (an allowlist, no questions)
…estion in any script
…cross its edge refuses
…plit fully into notice words
Member
Author
|
Independent adversarial review: five rounds. Round 5 approves with no blockers. Earlier rounds each found a blocker, and each was fixed in turn:
Round 5 findings:
Non-blockers, left for a follow-up:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes the two problems the independent review of #1735 found on the self-repair side of #1724. The coordinator ruled both blockers before any live Windows covered-band repair.
1. The dismiss click is held to the proved dialog (
SelfRepair._dismisses_the_cover, called from_new_click). A click is refused unless all of these hold:Same window.
owned_window_overis asked again at the click point, against the same verified window. It must return the same window (hwndorwindow_id, pluspid) as the cover. A missing id never matches.One click. The bridge is exactly one click, with nothing typed.
The label is "OK".
The dialog is a session notice. Its text (OCR lines inside its rect) passes an allowlist after NFKC:
yoursession,in5minutes) counts only if it splits fully into such words;. , : !and×, so no question in any script;"Discard unsaved changes?", "Log out of the other session?", "Your changes will be deleted", "Update the application now", a dialog in another language, and a dialog whose message wasn't read are all refused.
2. The cover must be what cut the band (
_cover_explains_cut). The window'sregionmust span the band from inside it to the band's right edge, at full height. The share of the band left uncovered must be within 0.1 of the share of the recorded text read. On the lab's Patient Notes notice these are 0.79 and 0.81. A tooltip over a column's ellipsis doesn't count, and a cover with noregionis doubt. macOS now reports its sheet'sregion; Windows reports it since #1739.3. Recheck test. When the dialog hides exactly where two records differ,
test_the_probes_full_identity_check_refuses_what_the_dialog_hidshows that the unchanged identity template refuses the other record, and refuses the still-covered read.A covered-band repair gets one attempt. A retry reopens the app, the dialog is then a new window, and its click is refused. The design note and changelog say so.
Reviews. Four rounds of independent adversarial review, each blocker fixed in turn:
A final review runs on the last commit.
Tests. The covered-band and macOS sheet suites pass, along with the Windows backend and agent suites (304 tests). They include a real-OCR test on a drawn dialog. The wider self-repair, bridge, CLI, desktop, hold, element-identity and replayer suites (289 tests) passed on the first commit; later commits change only the message gate.