fix(cli): harden hermes portal SystemExit handling + finish model-pick doc sweep
Self-review of #38465 surfaced three real items: 1. SystemExit escape (defense): `_login_nous` raises SystemExit(130)/(1) on cancel/failure. The logged-out login path inside `_model_flow_nous` catches it, but the expired-session re-login path (main.py) only catches Exception, so a Ctrl-C during re-auth could propagate past `_run_portal_one_shot` and kill the CLI. Add SystemExit to the portal handler so all cancel/abort cases end with the graceful 'Setup cancelled / retry later' message. 2. Doc sweep: the model-pick step was only added to the bare-`hermes portal` prose. Propagate it to the surfaces describing `hermes setup --portal` behavior that still omitted model selection: - `--portal` argparse help (main.py) - nous-portal.md intro + the numbered 'what it does' step list (EN + zh-Hans) - run-hermes-with-nous-portal.md 'default model after setup --portal' line, which was now contradictory (there's a picker, not a forced default) (EN + zh) 3. Test coverage: add parametrized regression test asserting the portal handler swallows KeyboardInterrupt / EOFError / SystemExit (returns None, no escape). Note on 'Skip (keep current)': delegating to _model_flow_nous means picking Skip preserves the prior provider instead of force-switching to nous — this is intentional and matches quick setup exactly; docs now say 'sets Nous as your provider (when you pick a model)' rather than unconditionally.
This commit is contained in:
@@ -14,7 +14,7 @@ If you only have time to set up one thing, set up this. The fastest path:
|
||||
hermes setup --portal
|
||||
```
|
||||
|
||||
That single command runs the Portal OAuth, sets Nous as your inference provider in `config.yaml`, and turns on the Tool Gateway. You're ready to `hermes chat` immediately after.
|
||||
That single command runs the Portal OAuth, lets you pick a Nous model, sets Nous as your inference provider in `config.yaml`, and turns on the Tool Gateway. You're ready to `hermes chat` immediately after.
|
||||
|
||||
Don't have a subscription yet? [portal.nousresearch.com/manage-subscription](https://portal.nousresearch.com/manage-subscription) — sign up, then come back and run the command above.
|
||||
|
||||
@@ -99,9 +99,10 @@ This runs the full setup in one shot:
|
||||
|
||||
1. Opens your browser to portal.nousresearch.com for OAuth login
|
||||
2. Stores the refresh token at `~/.hermes/auth.json`
|
||||
3. Sets Nous as your inference provider in `~/.hermes/config.yaml`
|
||||
4. Turns on the Tool Gateway (web, image, TTS, browser routing)
|
||||
5. Returns you to your terminal ready to `hermes chat`
|
||||
3. Lets you pick a Nous model from the curated list (or skip to keep your current one)
|
||||
4. Sets Nous as your inference provider in `~/.hermes/config.yaml` (when you pick a model)
|
||||
5. Turns on the Tool Gateway (web, image, TTS, browser routing)
|
||||
6. Returns you to your terminal ready to `hermes chat`
|
||||
|
||||
If you don't have a subscription yet, sign up at [portal.nousresearch.com/manage-subscription](https://portal.nousresearch.com/manage-subscription) first.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user