Repository navigation
fix(tests): name the Windows home and wait on pipes without select (#692, classes 6-7) - #913
Conversation
Codex Review Summary: ✅ CompletedThis 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. |
|
Claude finished @cdeust's task in 1m 39s —— View job PR #913 review (1 of 3)
Result: no Blockers, 3 Notes, Verdict: approve. The Note that matters most: the consolidate-background test copies the real I did not run the tests here; the review comes from reading the code. |
Review 1 of 3: PR #913 (#692 classes 6-7)Five reviews ran: code quality, test coverage, security, performance and documentation accuracy. None found a Blocker. I checked the security reviewer's one finding against the code myself and rated it a Note below. What I traced:
Notes, no action before merge
Verdict: approve |
|
This is not caused by the PR. The diff touches neither I re-ran the failed jobs once ( Generated by Claude Code |
|
CI autopilot : branche en retard de 18 commits sur J'ai rebasé la branche sur Il faut qu'un humain rebase la branche sur Generated by Claude Code |
, classes 6-7) Class 7: Path.home() reads USERPROFILE on Windows (ntpath.expanduser ignores HOME). The hermetic hook env, the wiki composition-root sandbox, scripts/measure_pipeline_hook.py and the response-budget fixture named HOME only, so a hook subprocess failed at import with "Could not determine home directory" (run 38008915302) or kept the real home. Class 6: select.select accepts sockets only on Windows (WinError 10038 on a pipe); the shared-host-store test now bounds its pipe I/O with a thread. The worker-log test is skipped where capture_peer reports no capture worker (ADR-0486), as the product does. The two fork tests of class 6 are left to #908 (#801). Refs #692 Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_018kyZYsedbXNGvqZhXsrjpM
b394376 to
c7e57d3
Compare
|
Claude finished @cdeust's task in 49s —— View job PR #913 review (2 of 3)
What changed since review 1. The PR is still one commit. c7e57d3 sits on Not verified here:
Notes, no action before merge (carried over from review 1, still open)
Verdict: approve |
Summary
Slice of #692 for failure classes 7 and 6 (Windows full suite, run 38008915302). Refs #692 (not a close: class 5 and the class 9 singles remain).
Root cause, class 7.
Path.home()readsUSERPROFILEon Windows;ntpath.expanduserignoresHOME. Four environments namedHOMEonly:tests_py/_hermetic_hook_env.py(home stayed the realUSERPROFILE);_isolated_envintest_consolidate_background_wiki_composition_root.pyand the identical allowlist inscripts/measure_pipeline_hook.py: the hook died at import withRuntimeError: Could not determine home directory(consolidate_background.py:34);test_response_budget_measurementsfixture, whose env is cleared and then reachesPath.home()invalidate_environment.All four now pass
USERPROFILEnext toHOME.Root cause, class 6.
select.selectaccepts sockets only on Windows, so a pipe raisesWinError 10038intest_shared_host_store. Its pipe I/O is now bounded by a thread waiting on a queue, under the samePROTOCOL_TIMEOUT.test_capture_worker_loggingexercises the log of the capture worker, which exists only wherecapture_peer.is_supported()is true (Linux/macOS, ADR-0486). Elsewherecapture_dispatchspools. The test class is skipped on that same predicate. The twomultiprocessing.get_context("fork")tests of class 6 are left to #908 (#801), which already rewrites them.Type of change
scripts/measure_pipeline_hook.py, plus test environments)Test plan
pytest tests_py/infrastructure/test_shared_host_store.py tests_py/hooks/test_capture_worker_logging.py tests_py/scripts/test_response_budget_measurements.py tests_py/hooks/test_consolidate_background_wiki_composition_root.py tests_py/test_hermetic_hook_env.py tests_py/hooks/test_entry.py tests_py/hooks/test_team_project_scope.py tests_py/hooks/test_hook_output_cp1252.py: 58 passed, 1 skipped (Linux, Python 3.11, SQLite,uv.lockwithout torch because the torch download host is blocked in this environment).pytest tests_py/hooks/test_pipeline_lazy_imports.py tests_py/hooks/test_consolidate_background_wiki_composition_root.py: 17 passed.ntpath.expanduser("~")under the old allowlist (HOMEonly) returns~(pathlib then raises), and under the new one it returns theUSERPROFILEvalue.ruff check/ruff format --check(0.17.3) on the changed files: clean. Onmainthe whole repository already reports 8 E501 errors in files this PR does not touch.python scripts/check_craftsmanship.py: OK.Not verified: nothing ran on real Windows. Confirming the classes requires the Windows re-measure from #692.
Audit notes
~/state), class 9.Reviewer checklist
Generated by Claude Code