HERMES_CRON_SESSION leak fixes in test runner scripts

NousResearch/hermes-agent · cluster 22400 · cron

Data as of

Nothing open on GitHub. Fix merged in #22767. Check it covers your case.

The short answer

0open issues
0open PRs
8items grouped
Known?
Yes. 8 related items grouped here, 1 issue already closed.
Fix event
A fix was merged to main in PR #22767. Check it covers your case. No release data is tracked.
Tracker
The maintainers' tracker marks this resolved, deciding PR #22767. That is separate from the fix event.
Still open
Nothing open on GitHub.

These issues and pull requests address a variable leak where HERMES_CRON_SESSION bleeds into pytest when tests run under cron. Several fixes also adjust pytest-split installation to work with uv-based environments.

Open issues0

No open issues.

Open PRs0

No open pull requests.

Fixes on record

Merged to main. A stamp counts the issues a fix is linked to.

  • #22767 fix(tests): harden run_tests.sh (uv-aware bootstrap + scrub HERMES_CRON_SESSION)

    merged to main

    files: pyproject.toml, scripts/run_tests.sh

    Show the diff
    • pyproject.toml
      @@ -54,7 +54,7 @@ dependencies = [
       modal = ["modal>=1.0.0,<2"]
       daytona = ["daytona>=0.148.0,<1"]
       vercel = ["vercel>=0.5.7,<0.6.0"]
      -dev = ["debugpy>=1.8.0,<2", "pytest>=9.0.2,<10", "pytest-asyncio>=1.3.0,<2", "pytest-xdist>=3.0,<4", "mcp>=1.2.0,<2", "ty>=0.0.1a29,<0.0.22", "ruff"]
      +dev = ["debugpy>=1.8.0,<2", "pytest>=9.0.2,<10", "pytest-asyncio>=1.3.0,<2", "pytest-xdist>=3.0,<4", "pytest-split>=0.9,<1", "mcp>=1.2.0,<2", "ty>=0.0.1a29,<0.0.22", "ruff"]
       messaging = ["python-telegram-bot[webhooks]>=22.6,<23", "discord.py[voice]>=2.7.1,<3", "aiohttp>=3.13.3,<4", "slack-bolt>=1.18.0,<2", "slack-sdk>=3.27.0,<4", "qrcode>=7.0,<8"]
       cron = []  # croniter is now a core dependency; this extra kept for back-compat
       slack = ["slack-bolt>=1.18.0,<2", "slack-sdk>=3.27.0,<4"]
    • scripts/run_tests.sh
      @@ -44,7 +44,15 @@ PYTHON="$VENV/bin/python"
       # ── Ensure pytest-split is installed (required for shard-equivalent runs) ──
       if ! "$PYTHON" -c "import pytest_split" 2>/dev/null; then
         echo "→ installing pytest-split into $VENV"
      -  "$PYTHON" -m pip install --quiet "pytest-split>=0.9,<1"
      +  if command -v uv >/dev/null 2>&1; then
      +    uv pip install --python "$PYTHON" --quiet "pytest-split>=0.9,<1"
      +  elif "$PYTHON" -m pip --version >/dev/null 2>&1; then
      +    "$PYTHON" -m pip install --quiet "pytest-split>=0.9,<1"
      +  else
      +    echo "error: neither uv nor pip is available in $VENV — pytest-split is missing" >&2
      +    echo "  fix: run  uv pip install -e \".[dev]\"  from $REPO_ROOT" >&2
      +    exit 1
      +  fi
       fi
       
       # ── Hermetic environment ────────────────────────────────────────────────────
      @@ -67,6 +75,7 @@ unset HERMES_YOLO_MODE HERMES_INTERACTIVE HERMES_QUIET HERMES_TOOL_PROGRESS \
             HERMES_TOOL_PROGRESS_MODE HERMES_MAX_ITERATIONS HERMES_SESSION_PLATFORM \
             HERMES_SESSION_CHAT_ID HERMES_SESSION_CHAT_NAME HERMES_SESSION_THREAD_ID \
             HERMES_SESSION_SOURCE HERMES_SESSION_KEY HERMES_GATEWAY_SESSION \
      +      HERMES_CRON_SESSION \
             HERMES_PLATFORM HERMES_INFERENCE_PROVIDER HERMES_MANAGED HERMES_DEV \
             HERMES_CONTAINER HERMES_EPHEMERAL_SYSTEM_PROMPT HERMES_TIMEZONE \
             HERMES_REDACT_SECRETS HERMES_BACKGROUND_NOTIFICATIONS HERMES_EXEC_ASK \

6 PRs closed without merging

From the close comments: done elsewhere 2 · duplicate 2 · superseded by another PR 2

  • #22421 fix(scripts): unset HERMES_CRON_SESSION and use uv for pytest-split install · done elsewhere → f00dc6d, #22767, #22400, #22401
  • #22441 fix(tests): scrub HERMES_CRON_SESSION in canonical test runner · duplicate → #22767
  • #22503 fix(scripts): support uv venv for pytest-split + unset HERMES_CRON_SESSION · done elsewhere → #22767
  • #22519 fix(test-runner): scrub HERMES_CRON_SESSION in run_tests.sh (#22400) · duplicate → #22441, #22400
  • #22725 fix(scripts): scrub HERMES_CRON_SESSION in run_tests.sh · superseded by another PR → #22767, #22401
Show 1 more
  • #22730 fix(scripts): declare pytest-split in dev deps and unset HERMES_CRON_SESSION · superseded by another PR → #22767, #22401
Closed issues · 1
  • Closed#22400scripts/run_tests.sh leaks HERMES_CRON_SESSION into pytest under cron
How this cluster was grouped
  • Link evidence (structural links throughout): every member is connected by structural evidence: shared changed files, or a closing/superseded reference.
  • Pairwise link density 0.25: the share of item pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36. 1.00 means every pair is linked.

Pick up a Lab task

Check whether a fix covers the open issues here, with your own agent. Bring back evidence for maintainers.

Open the Lab

At a glance

Subsystem
cron
Merged PRs
#22767
Closed issues
1
Attempts
6 PRs closed without merging
Fix link checked
9 May 2026

For your agent

The same facts, typed.