fix(dashboard): reduce idle disk writes - #60885
Conversation
tonydwb
left a comment
There was a problem hiding this comment.
Code Review Summary
Verdict: Comment (token read-only)
PR 60885 reduces idle disk writes in the dashboard. Performance fix for disk I/O. Well-scoped (6 files, 75 additions, 36 deletions). No security issues or debug artifacts detected.
LGTM - awaiting maintainer approval.
538ff1c to
ba09c23
Compare
|
Thanks for the focused idle-I/O fix. The current-main path is verified: The MCP deferral is also coherent: The PR's focused regression test covers the new close contract, and the change adds no configuration surface or model-tool footprint. Automated hermes-sweeper review. |
ba09c23 to
ab38e0c
Compare
…t-refresh-20260723 # Conflicts: # tests/test_hermes_state.py
…t-refresh-20260723b # Conflicts: # tests/test_hermes_state.py
|
The current required-check failure is an upstream baseline regression, not a dashboard-diff failure: the API-server enrollment hardening requires a 16+ character key, while an older gateway config test still uses the weak fixture |
…aseline-fix # Conflicts: # tests/test_hermes_state.py
|
Refreshed onto current Conflict resolution preserved both sides of
Overlap note: #67903 also guards read-only |
|
Resolved the current-main conflict in The only content conflict was Verification on current
GitHub now reports the refreshed head mergeable; replacement CI is running. |
# Conflicts: # tests/test_hermes_state.py
|
Resolved the current-main conflict in The only content conflict was at the end of Verification on current
GitHub reports the refreshed head |
# Conflicts: # tests/hermes_cli/test_dashboard_unified_launch.py # tests/test_hermes_state.py
|
Resolved the current-main conflict in The production changes merged cleanly. The two test conflicts came from current main's suite pruning; the resolution keeps only this PR's behavior regressions (lazy dashboard MCP startup and read-only close without a WAL checkpoint) and does not resurrect the pruned legacy cases. Verification on current
GitHub reports the refreshed head |
|
Replacement CI for |
|
Closing in favor of the earlier #60602. Current main now independently includes the read-only SessionDB.close checkpoint guard and regression that were this PR’s distinct state-storage portion. After composing current main, the remaining diff is only the eager dashboard MCP-discovery removal plus the lazy WebSocket-path regression—the same invariant and implementation already carried by #60602. Preserving the earlier contributor’s work rather than maintaining an exact duplicate. |
Fixes #58733.
Summary
/api/statussession counting read-only so health/status polling does not openstate.dbas a writer or checkpoint the WALSessionDB.close()skip TRUNCATE WAL checkpointing to preserve the read-only contractmainVerification
uv run python -m py_compile hermes_state.py hermes_cli/web_server.py hermes_cli/main.py tests/test_hermes_state.py tests/hermes_cli/test_web_server.py tests/hermes_cli/test_dashboard_unified_launch.py tests/test_tui_gateway_ws.pyuv run --extra dev pytest tests/hermes_cli/test_dashboard_unified_launch.py tests/test_tui_gateway_ws.py tests/hermes_cli/test_mcp_startup.py -q— 18 passeduv run --extra dev pytest tests/hermes_cli/test_web_server.py -k '(get_status or get_sessions or DesktopCronTicker) and not memory_status' -q— 16 passed, 1 warninguv run --extra dev pytest tests/test_hermes_state.py::TestApplyWalProbe tests/test_hermes_state_wal_fallback.py::TestSessionDbUsesWalFallback -q— 12 passedgit diff --check origin/main..HEADgitleaks git --log-opts='origin/main..HEAD' --redact .— no leaks found