Skip to content

fix: qualify Windows observation and bounded polling - #13

Merged
Hmbown merged 3 commits into
mainfrom
fix/win32-native-fixture-origin
Oct 7, 2026
Merged

Hmbown merged 3 commits into
mainfrom
fix/win32-native-fixture-origin

Conversation

@Hmbown

@Hmbown Hmbown commented Oct 7, 2026 •

Copy link
Copy Markdown
Collaborator

Computer Use observations now retain the semantic identity of Windows controls whose UIA bounding rectangles are empty or invalid. Previously an infinity-to-integer conversion could abort the whole observation; unusable bounds now produce null geometry, while valid negative screen coordinates remain supported. Consent and stale-identity checks are unchanged.

Release CI also exposed two fixture races. The polling test counts actual backend observations beyond cache capacity instead of assuming a runner speed. The Windows fixture replaces status receipts atomically and reports callback errors on stderr.

Validation: 438 source tests passed, 0 failed, 19 Windows/platform tests skipped locally; focused portable Windows checks:29passed/16skipped. A slowed polling backend passes, and deliberately cached observations still fail with unknown_state. New real PowerShell cases cover empty, nonfinite, overflow, zero-size and negative-origin rectangles. Hosted Windows acceptance must pass before merge.

No-Issue: bounded CI and Windows observation repairs discovered during Codewhale0.10.1 qualification.

…speed

+
+The cache-retention test expected >24 polls within3seconds; hosted CI
+completed15 under load. Accumulate actual polls across bounded waits and
+also verify more than24 backend observations before targeting the old state.
+The timeout test requires the guaranteed initial observation, not runner speed.
+
+Validation: npm test438passed/0failed/18skipped; focused suite11/0.
+An isolated250ms-per-observation fixture passes; deliberately caching the
+polls fails with unknown_state, preserving the regression assertion.
+No production timeout, cache or consent behavior changed.
+

Signed-off-by: Hunter B <hmbown@gmail.com>
Copilot AI balanced review requested due to automatic review settings October 7, 2026 06:12

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Devin Review

Copilot AI 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.

Copilot review overview

🟢 Approval recommended

The revised tests preserve coverage while removing assumptions about polling throughput.

Review effort: Balanced
Findings: None

What changed in this PR

Makes cache-retention polling tests independent of CI runner speed.

Changes:

  • Accepts the guaranteed initial timeout observation.
  • Accumulates completed polls across bounded waits before validating cache retention.
File Description
tests/​wait-for.test.mjs Makes polling and cache-retention assertions timing-resilient.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Hmbown added 2 commits October 6, 2026 23:21
Move-Item -Force briefly removes the old status file; the real desktop
check hit ENOENT after its initial readiness wait in job112658049540.
Use File.Replace for existing receipts and File.Move for the initial one.
The fixture keeps the prior complete snapshot readable until replacement.

Source-only fixture repair; Windows hosted desktop acceptance is required.
Preceding canonical suite438/0/18skipped and3OS source suites passed;
those passes do not qualify this new Windows fixture. No runtime change.

Signed-off-by: Hunter B <hmbown@gmail.com>
Empty UIA rectangles carry infinity and previously crashed integer conversion
for an entire observation. Preserve those semantic elements with null geometry;
only finite, positive, int32-bounded rectangles become coordinates. Add real
PowerShell coverage for Empty, NaN, infinity, overflow, zero and negative-origin
rectangles through the actual production serialization block.

Correct the fixture File.Replace null string argument and surface timer errors
on stderr instead of opening an unattended WinForms exception dialog.

Validation: portable Windows-focused29passed/0failed/16skipped; full source
438passed/0failed/19skipped. Windows-native fixture/desktop proof requires hosted
CI; local skips are explicit. No consent, input delivery or identity checks relaxed.

Signed-off-by: Hunter B <hmbown@gmail.com>
@Hmbown Hmbown changed the title test: make polling cache proof independent of CI speed fix: qualify Windows observation and bounded polling Oct 7, 2026
@Hmbown
Hmbown merged commit 8955d40 into main Oct 7, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants