Skip to content

πŸ› [fix] visual: Chrome cleanup works on Python 3.9 - #29

Merged
EricTechPro merged 3 commits into
mainfrom
codex/visual-python39-cleanup
Oct 4, 2026
Merged

EricTechPro merged 3 commits into
mainfrom
codex/visual-python39-cleanup

Conversation

@EricTechPro

@EricTechPro EricTechPro commented Oct 4, 2026 •

Copy link
Copy Markdown
Owner

Red check

  • Reproduced the CI boardChildren=[] failure locally by immediately advancing the virtual-time probe: the board row failed physical hit testing at x=-218, while standalone programmatic navigation still passed.
  • The fixed probe starts immediately and awaits observable readiness; all original physical-click, child-column, and normal-motion navigation assertions remain.

Note

⏳ In review · Python 3.9 compatibility fix

Problem

  • Chrome rendering raises TypeError on macOS system Python 3.9 because TemporaryDirectory(ignore_cleanup_errors=True) requires Python 3.10.
  • Late Chrome profile writes must still preserve completed DOM output.

Solution

  • Create the Chrome profile with mkdtemp and clean it in finally with three short rmtree attempts, preserving completed DOM output on Python 3.9.
  • Keep the cleanup-race and launch-error regressions; document Python 3.9+ and exercise 3.9 in CI smoke and full Linux/macOS safety suites.
  • Fix the headless family test race: renderTree initially scrolls to the final browser column, and virtual time advances fixed timers before inherited smooth scrolling completes. The observed board row was offscreen (x=-218, scrollLeft=224), so its click never reached the row.
  • Run physical family assertions in the existing real-time CDP harness: virtual-time DOM readiness alone also missed Linux’s initial sidebar paint. Await columns/ghost removal, loaded fonts, actual hit testing, and hash plus aria-current navigation. Position physical clicks with instant scrolling, retain every click/navigation assertion, and replace elapsed delays with bounded monotonic readiness polling and rectangle/target/scroll/font/hash timeout diagnostics.

Acceptance criteria

  • Cleanup regression fails before the fix on Python 3.9.6 and passes after it.
  • Full offline suite passes on Python 3.9.6.
  • CI covers Python 3.9.

Iteration history

Lane Done Time Details
πŸ”¨ builder βœ… Oct 3 Python 3.9 red β†’ green cleanup regression

Risk

🟒 Low · profile cleanup is bounded and cannot replace Chrome output or a launch error.

- Retry best-effort profile cleanup with Python 3.9-compatible APIs.
- Keep the cleanup-race regression and cover Python 3.9 in CI.
@qodo-code-review

Copy link
Copy Markdown

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more β†’

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account β†’

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us β†’

EricTechPro and others added 2 commits October 3, 2026 22:42
The virtual-time family probe hit an offscreen board row while inherited smooth scrolling was pending. Await boot, fonts, and completed navigation; reveal physical click targets instantly and retain all assertions.

Co-Authored-By: Codex <noreply@openai.com>
DOM and fonts can be ready before the sidebar physical layout is painted under virtual time. Reuse the CDP harness for every physical family assertion, wait for actual hit and completed sidebar widths, and include monotonic deadline diagnostics.

Co-Authored-By: Codex <noreply@openai.com>
@EricTechPro
EricTechPro merged commit 5f1c524 into main Oct 4, 2026
13 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.

1 participant