Skip to content

test: round-4 closeout — Windows correctness salvage + runner-docs truth-up - #74614

Merged
teknium1 merged 2 commits into
mainfrom
salvage/test-stability-round4
Jul 30, 2026
Merged

test: round-4 closeout — Windows correctness salvage + runner-docs truth-up#74614
teknium1 merged 2 commits into
mainfrom
salvage/test-stability-round4

Conversation

@teknium1

Copy link
Copy Markdown
Contributor

Summary

Final round of the test-stability campaign: salvages the four real Windows product fixes from #57016 and lands the docs trio (#38295/#51354/#54956) that truthed-up every stale test-runner reference repo-wide. With this, the open test-stability backlog is zero (two macOS-only PRs remain open pending Mac verification).

Changes

  • fix(windows): native Windows correctness fixes + green CLI test suite #57016 (@lEWFkRAD) — Windows correctness, verified absent from main: drive-letter file:///C:/ URI handling in cli.py; \/ HERMES_HOME normalization before profile matching (gateway/status.py + hermes_cli/gateway.py); banner cprint NoConsole fallback; posixpath.join for WSL /mnt/c/… browser paths. Plus symlink _can_symlink skip-guards and USERPROFILE-aware tests. Dropped: its CLI conftest fixture + AppSession monkeypatch (already solved on main via test(cli): fix order-dependent test_resume_quiet_stderr flake at the source #68872).
  • Docs trio (@konsisumer author; co-authored @TutkuEroglu, @waroffchange) — purged every stale xdist/-n auto/_enforce_test_timeout/"4 workers" reference across AGENTS.md, CONTRIBUTING.md, skill references and zh-Hans copies (including two stale spots none of the three PRs had found); replacements verified against the actual current runner (per-file subprocess isolation, auto-scaled workers, FLAKY-retry policy, env -i).

Validation

Gate Result
Full suite (CI-parity) 2,466 files, 22,820 passed, 0 failed, 0 flaky
Windows-fix touched files browser_connect 10 · file_drop 22 · worktree 43+6 · gateway status 51 · banner 3 — green
Stale-ref greps 0 hits repo-wide (incl. zh-Hans)

Note for Windows dogfooding: the four product fixes are path/URI logic verified by cross-platform tests on Linux CI; a real-Windows sanity pass on hermes startup banner + gateway status is a worthwhile spot-check.

Infographic

round 4 infographic

lEWFkRAD and others added 2 commits July 29, 2026 21:42
…ner, and WSL browser paths

Salvaged from #57016 by @lEWFkRAD:
- cli.py: handle file:///C:/... drive-letter URIs on nt (strip the
  leading slash urlparse leaves); join Termux example paths with literal
  forward slashes so hints stay POSIX on Windows.
- gateway/status.py + hermes_cli/gateway.py: normalize backslashes to
  forward slashes before the HERMES_HOME substring match so separator
  style cannot defeat profile ownership detection.
- hermes_cli/banner.py: cprint degrades to plain print when
  prompt_toolkit has no console (NoConsoleScreenBufferError on
  redirected/absent Windows stdout).
- hermes_cli/browser_connect.py: posixpath.join for WSL /mnt/c/... bases
  (os.path.join would emit backslashes on nt).
- Test hardening: symlink skip-guards, USERPROFILE alongside HOME for
  ntpath.expanduser, SIGKILL absence skipif fixed via monkeypatch,
  drive-letter URI / separator-normalization / banner-fallback coverage.

Dropped from the original PR: tests/cli/conftest.py fixture and the
AppSession _output monkeypatch — main's merged tests/cli/conftest.py
already handles that prompt_toolkit pollution.
…repo-wide

The test runner moved to per-file subprocess isolation via
scripts/run_tests_parallel.py (hermetic `env -i`, worker count auto-scaled
from CPU count, FLAKY-retry policy) — no pytest-xdist, no SIGALRM per-test
timeout fixture. Docs still described the old runner in many places:

- AGENTS.md: "-n auto xdist workers, in-tree subprocess-isolation plugin"
  clause replaced with the current per-file-subprocess description; the
  `::test_x` single-test example now shows file + -k (runner is
  file-granular).
- CONTRIBUTING.md: "hermetic env, 4 xdist workers" comment corrected;
  `tests/conftest.py::_enforce_test_timeout` reference redirected to the
  win32 timeout-method shim in `tests/conftest.py::pytest_configure`.
- skills/autonomous-ai-agents/hermes-agent/references/contributor-guide.md
  and windows-quirks.md: same corrections (the bundled skill mirrors the
  contributor docs); Windows workaround no longer installs pytest-xdist
  or passes -n 0.
- website/docs + zh-Hans i18n mirrors: same fixes in adding-providers.md
  and the bundled-skill doc pages.
- skills/software-development/python-debugpy/SKILL.md (+ zh-Hans mirror):
  "-p no:xdist"/"-n 0" pdb advice rewritten for the captured per-file
  subprocess runner.
- skills/creative/comfyui/tests/README.md: parent-repo "-n auto by
  default" rationale updated to past tense.

Combined salvage of PR #38295 (konsisumer), PR #51354 (TutkuEroglu,
redirected to the current conftest truth and the relocated
references/contributor-guide.md), and PR #54956 (waroffchange).

Co-authored-by: TutkuEroglu <rrandqua@gmail.com>
Co-authored-by: waroffchange <116298975+waroffchange@users.noreply.github.com>
@teknium1 teknium1 added the ci-reviewed applied to manually approve dangerous changes label Jul 30, 2026
@alt-glitch alt-glitch added type/bug Something isn't working P2 Medium — degraded but workaround exists comp/cli CLI entry point, hermes_cli/, setup wizard comp/gateway Gateway runner, session dispatch, delivery platform/windows Native Windows-specific behavior or breakage sweeper:risk-platform-windows Sweeper risk: may break or behave differently on native Windows labels Jul 30, 2026
@github-actions

Copy link
Copy Markdown
Contributor

૮ >ﻌ< ა ci review

ran on 953ff9c

ℹ️ Info

Desktop E2E visual evidence · View test artifacts · View job

1 visual diff.

inline evidence is publishing...

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

Labels

ci-reviewed applied to manually approve dangerous changes comp/cli CLI entry point, hermes_cli/, setup wizard comp/gateway Gateway runner, session dispatch, delivery P2 Medium — degraded but workaround exists platform/windows Native Windows-specific behavior or breakage sweeper:risk-platform-windows Sweeper risk: may break or behave differently on native Windows type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants