Skip to content

[Bug]: some CLI tests fail on Windows workstations with a long TEMP path or a running local proxy #7810

Closed

Description

@lidge-jun

Client or integration

Other

Area

Platform (Windows / macOS / Linux)

Summary

Several tests pass on GitHub-hosted Windows runners but fail on a Windows developer workstation:

  • tests/cli/cli-help.test.ts "recover-history repairs one explicitly selected ocx1-compacted thread" exits 1 when %TMP% is long (about 70 characters); the nested fixture paths then exceed the Windows path limit. It passes with a short TMP.
  • tests/cli/sibling-home-client-sync.test.ts "a lone custom-home start still syncs Grok and prunes its own Claude roster" times out at 30 s (child exits 143), and tests/codex-integration/catalog-auto-review-row.test.ts "convergence keeps the reviewer across two catalog/cache writes" fails after about 5 s, on a machine that is also running its own opencodex proxy.

This makes the full local suite (and the local preflight in scripts/release.ts) fail on such machines. Expected: tests are independent of the host temp path length and of a proxy already running on the host.

Reproduction

  1. On Windows, set TMP/TEMP to a deeply nested directory.
  2. Run bun test --isolate tests/cli/cli-help.test.ts with the pinned Bun 1.4.4.
  3. Observe the recover-history case fail; it passes with TMP=C:\\t.

Version

2.93.0

Operating system

Windows 11

Provider and model

No response

Logs or error output

n/a

Screenshots and supporting files

No response

Redacted configuration

n/a

Checks

  • I searched existing issues and documentation.
  • I removed secrets, tokens, account details, request credentials, and personal data.

Activity

  1. added
    platformOS/service/tray/ACL (Windows-heavy, not Windows-only)
    on Oct 27, 2026
  2. lidge-jun commented on Oct 27, 2026

    @lidge-jun
    OwnerAuthor

    The long-TEMP failure in the first bullet was a product bug, not fixture nesting. Recovery's backup and atomic-repair filenames could exceed MAX_PATH, and icacls cannot harden ordinary paths past that limit. On the same 261-character file, icacls exited 3 with the ordinary spelling and 0 with the extended \\?\ spelling. The fix landed on dev in #7823 (95cfa30ec72f201818b1c80ff9b03fe70c7a8a0e).

    The second bullet is still open: sibling-home-client-sync "a lone custom-home start ..." and catalog-auto-review-row "convergence keeps the reviewer ..." failing on a workstation that runs its own opencodex proxy. Both failures reproduced on such a host, but no leak from the host (default port, real home directories, runtime records or environment) has been proven yet, so this issue stays open for that part.

  3. lidge-jun commented on Oct 28, 2026

    @lidge-jun
    OwnerAuthor

    Fully fixed on dev. The long-TEMP recovery failure landed in #7823 (95cfa30). The two cases that failed on a workstation running its own proxy landed in #7852 (fb22d05): fixture children were resolving the client lifecycle lock through the Windows Known Folder API, which ignores HOME and LOCALAPPDATA, so they hit the account-wide runtime directory and its slow required ACL calls. Fixture children now get a private, ownership-checked known-folder namespace. Verified locally on Windows 11 with Bun 1.4.4 while a local opencodex proxy was running: sibling-home-client-sync 33 pass / 1 skip (FIFO, not applicable on Windows) / 0 fail, and catalog-auto-review-row passing.

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

    bugSomething isn't workingplatformOS/service/tray/ACL (Windows-heavy, not Windows-only)

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions