[Hermes Desktop][YOLO Default][1/n] Default YOLO mode on for new desktop sessions - #39375
[Hermes Desktop][YOLO Default][1/n] Default YOLO mode on for new desktop sessions#39375OmarB97 wants to merge 2 commits into
Conversation
Code Review — YOLO Default-On for DesktopOverall assessment: clean implementation that correctly achieves the goal. The design separates desktop-default ( Non-blocking observations1. Redundant optimistic update in statusbar (apps/desktop/src/app/shell/hooks/use-statusbar-items.tsx:108)
2.
3. Test coverage scope (apps/desktop/src/lib/yolo-session.test.ts) The existing tests cover config parsing and persistence merging well. The VerdictNo blocking concerns. Correctness, security, and readability are solid. Rollback logic, defensive |
acbb5d1 to
33f2a3d
Compare
…top sessions Rebased onto upstream/main as a single commit to refresh PR NousResearch#39375.
|
Resolved the branch drift against current upstream Updated head: Verification run locally after resolving conflicts:
GitHub now reports the PR as open/blocked rather than dirty; no checks are currently reported on the branch. |
|
Maintainer-ready after refresh. I merged current Verification:
MeshBoard merge dry-run passes with green checks and a fresh base. I attempted the actual merge through |
42e3c9d to
2407e01
Compare
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2407e01 to
b5bb485
Compare
# Conflicts: # scripts/release.py
|
Closing because default-on Desktop YOLO now conflicts directly with the project safety posture and merged #62661: Smart Approvals are the default, while approval bypasses must remain explicit opt-ins. Persisting |
Why
Hermes Desktop had a visible YOLO toggle, but new desktop sessions still initialized approval bypass off unless the user toggled it per session. Omar asked for the official macOS desktop app to default YOLO on and persist that preference across restarts.
What Changed
desktop.yolo_defaultconfig preference that defaults totrue./yolocommand persist the desktop default while still applying the current session setting immediately.approvals.modepath.How To Review
apps/desktop/src/lib/yolo-session.tsfor the config read/write and current-session application flow.apps/desktop/src/app/session/hooks/use-hermes-config.tsanduse-session-actions.tsfor initial state and new-session behavior.use-statusbar-items.tsxanduse-prompt-actions.tsfor the two user-facing toggle paths.hermes_cli/config.pyandhermes_cli/web_server.pykeep the new setting desktop-specific and schema-safe.Evidence
/Applications/Hermes.appstamp atcfaf438981f098a381b5c2d84e2ca28c7fc2d85a, clean and commit-pinned.NousResearch/main.Verification
npm run type-checkfromapps/desktopnpm run test:ui -- src/lib/yolo-session.test.tsfromapps/desktopnode /Users/obaradei/.hermes/hermes-agent/node_modules/eslint/bin/eslint.js src/lib/yolo-session.ts src/lib/yolo-session.test.ts src/store/session.ts src/app/session/hooks/use-hermes-config.ts src/app/session/hooks/use-prompt-actions.ts src/app/session/hooks/use-session-actions.ts src/app/shell/hooks/use-statusbar-items.tsx src/types/hermes.tsfromapps/desktoppython3 -m py_compile hermes_cli/config.py hermes_cli/web_server.pypython3 -m pytest tests/hermes_cli/test_web_server.py::TestBuildSchemaFromConfigRisks / Gaps
desktop.yolo_default: falsekeep that preference, which is intentional backward-compatible behavior.approvals.modeis intentionally unchanged so non-desktop surfaces retain their current approval defaults.Collaborators