Skip to content

Session Handoff [windows]: #2508 Landed and Promoted, the #2488 local_review Cluster Next #2519

Closed

Description

@ptr727

Next steps

Work this lane from the maintainer's Windows host. Take one issue per branch through drive-pr, and run each fix natively before claiming it fixed. Run the suite from Git Bash. From PowerShell the bash-driven modules now skip by design.

  1. Make the Test Suite Pass or Skip Cleanly on Windows #2488, the test_local_review cluster, 15 failures. Done means the module passes or skips cleanly on Windows. The failures fall into four groups:
    • ReceiptCase. Two tests exit 120: Python's shutdown flush fails on a closed pipe on Windows. That is a scripts/local_review.py defect, which the WSL launcher had been masking. A bare python3 inside the bash -c string may also pick a different interpreter from the suite's.
    • BackendCase. Its coderabbit stub is not found on Windows, so the cases fail with 2 != 0 or 2 != 1.
    • DanglingRemoteTrackingCase and its Reftable variant. loose.unlink() raises WinError 5 on git's read-only object file.
    • ContentKeyCase. test_staging_leaves_no_throwaway_paths_behind finds a local-review-objects.* directory left behind.
  2. Make the Test Suite Pass or Skip Cleanly on Windows #2488, the rest, 8 failures across three modules.
    • test_spec_validate, 3. result.stdout is None (a TypeError), and the LoopMarker case fails.
    • test_host_gate, 3. These come from Windows path forms in the remedy assertions.
    • test_docker_lint, 1. It expects src=/tmp/... but gets \tmp\....
    • test_release_guards, 1 test. It fails only under winget's jq 1.8.2, which rejects \S, so decide whether that is a skip or a tool floor.
    • Done means python3 -m unittest discover -s tests exits 0 from Git Bash on this host, which closes Make the Test Suite Pass or Skip Cleanly on Windows #2488.
  3. Make the jq Carriage-Return Test Fail When Its Stub Is Not Reached #2513: give the jq carriage-return test a fixture status other than archived, so the test fails when its stub is not reached. It is small and needs no Windows host.
  4. host-setup: menu.sh and menu.ps1 hub-cache locks do not coordinate across tools #1094: menu.ps1 opens hub.lock with FileShare.None and drops its named Mutex, the shape Lock a Bootstrap Run's Directory, and Remove an Empty Leftover at a Tree's Name #2503 proved. Mind menu.sh's shared reader lock. Done means a cross-tool lock test.
  5. Bootstrap registers its temporary tree as the live Claude Code skills source, then deletes it #1756 and Two concurrent bootstrap runs can remove each other's tree #1764, then the rest of the lane, oldest first. Canonicalize -Dir in bootstrap.ps1 Before Refusing a Drive or Share Root #2495 waits on Re-Triage the Open Hardening Backlog Against the Trust-Boundary and Design Rules #2517, below.

External blockers

Internal dependencies

State

The parked decision queue

The queue holds 1 open decision issue: #2517, the hardening re-triage. It is presented to the maintainer in this session's closing.

What the last round did

What not to repeat

  • Clearing a Windows PATH behavior from one drive. A probe run with its cwd and %TEMP% both on C: showed an in-script PATH='C:\...':$PATH finding its stub, and I reverted a correct fix on that basis. Bash had split the entry at the colon into C and a rooted path, which resolves against the cwd's drive, so from D: the stub was missed. Probe from a second drive.
  • Joining a stub dir onto a Python-built env PATH with :. It finds the stub, but Git Bash converts the inherited PATH by splitting on ;, so the stub fuses with the first inherited entry and that entry is lost. Use os.pathsep.
  • shutil.which("bash", path=dir) on Windows. It looks in the current directory before dir, and PATHEXT admits a bash.cmd. host_capability probes <dir>\bash.exe itself for this reason.
  • A skipTest inside a subTest loop before other cases. Under failfast it stops the loop, so take the skipped case last.
  • git worktree remove while the PowerShell tool's cwd sits inside the worktree. It fails with "Permission denied" after deregistering. Move that cwd out first, then rmdir the leftover directory.

New learnings

Activity

  1. added
    handoffA link in the session handoff chain, one open issue per track
    on Oct 8, 2026
  2. ptr727 commented on Oct 8, 2026

    @ptr727
    OwnerAuthor

    Parked decision queue at close: 1 open decision issue, #2517. It was presented, and the maintainer answered: run the hardening re-triage in an attended session of its own, then approve the whole list at once. #2495 stays parked until then. The answer is recorded on #2517.

  3. ptr727 commented on Oct 8, 2026

    @ptr727
    OwnerAuthor

    Continued in #2531, round 6 on track windows.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    handoffA link in the session handoff chain, one open issue per track

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions