Conversation
…#30230) macOS ships a default RLIMIT_NOFILE soft limit of 256. Hermes gateways with multiple MCP subprocesses + per-profile instances routinely exceed this and crash session save / kanban dispatch with OSError [Errno 24]. Bump the soft limit toward 4096 (capped at the hard limit) at module init alongside _ensure_ssl_certs. Windows / sandboxed environments gracefully no-op. This is the smallest mitigation that addresses the root cap; it complements the per-shutdown auxiliary-client reap landed in NousResearch#14210, which only delays the symptom. Tests pin the in-test replica against the production source so the helper can't silently drift.
The test_wait_for_process_kills_subprocess_on_keyboardinterrupt test has internal time budget ~50s (5s subprocess discovery + 15s worker join + 30s pgid-exit poll), which exceeds the global --timeout=30 in pyproject.toml. Without a per-test timeout override, pytest-timeout's 30s signal cap kills the test inside _wait_for_pgid_exit's sleep(0.1) poll loop, producing a useless traceback. Adding @pytest.mark.timeout(120) gives the test its full budget plus generous CI scheduling headroom.
…bda arity Dockerfile: - Replace web/ COPY with apps/dashboard + apps/shared (dashboard moved to apps/) - Update npm install && npm run build paths from web/ → apps/dashboard/ - Fix stale comment referencing /opt/hermes/web Tests: - Fix _session_info monkeypatch lambdas to accept 2 args (agent, session=None) matching the real signature in tui_gateway/server.py: _session_info(agent, session) Fixes TypeError in test_review_summary_callback.py on bb/gui branch.
talwayh1
left a comment
There was a problem hiding this comment.
CI Lint note: The Windows footgun checker (Lint workflow, run 26384980417) flagged 11 bare os.geteuid()/os.getuid() calls in hermes_cli/gateway.py. These are all in systemd/POSIX-only helpers (lines ~1859, 1916, 1998, 2053, 2106, 2574) that are never invoked on Windows. On main they already have # windows-footgun: ok annotations — the bb/gui branch just needs those same annotations added at the shifted line numbers. Consider adding them in this PR to keep the Lint workflow green.
|
Closing this PR — we don't accept commits authored under fabricated maintainer/CI identities. Specifically:
If you've identified a real test breakage or flake on For reference, the |
What
Fixes CI failures on the
bb/guibranch caused by the dashboard migration fromweb/toapps/dashboard/.Root Cause
The
bb/guibranch moved the browser dashboard fromweb/toapps/dashboard/, deletingweb/package.jsonandweb/package-lock.json. The Dockerfile was not updated and still referenced the old paths, causing:COPY web/package.json→ file not found_session_infomonkeypatch lambdas intest_review_summary_callback.pytook 1 arg but real function takes(agent, session=None)Changes
Dockerfile
COPY web/package.json web/package-lock.json web/withCOPY apps/dashboard/package.json apps/dashboard/package-lock.json apps/dashboard/+COPY apps/shared/package.json apps/shared/npm installpath:cd web→cd apps/dashboardnpm run buildpath:cd web && npm run build→cd apps/dashboard && npm run build/opt/hermes/webTests
_session_infolambdas to accept(agent, _session=None)matching real signature intui_gateway/server.py:1501Other CI Failures (not addressed — pre-existing or already fixed)
fix-lockfiles exited without reporting stale status) — not fixable from codeVerification