15 Commits

Author SHA1 Message Date
nesquena-hermes
4f842d5095 Release v0.51.297 — stage-3711 (terminal remote-backend guard #3711) (#3745)
Some checks failed
Release & Docker / release (push) Has been cancelled
* fix(terminal): guard embedded terminal on remote backends (#3673)

* fix(terminal): add missing remote-backend locale key

* fix(terminal): add missing remote-backend locale coverage (#3673)

* docs(changelog): v0.51.297 — terminal remote-backend guard (#3711) only

Dropped #3725 (descendant reaper) from this stage: Codex caught a SILENT exit-code
clobber — its process-wide os.waitpid(-1, WNOHANG) can reap a sibling WebUI child that
another subsystem is waiting on, coercing that child's returncode to 0 (failures become
successes). Held for the contributor to scope the reaper to terminal PGIDs
(os.waitpid(-term.proc.pid, WNOHANG)) or a terminal-PGID registry.

---------

Co-authored-by: Rod Boev <rod.boev@gmail.com>
Co-authored-by: nesquena-hermes <[email protected]>
2026-06-06 14:17:17 -07:00
nesquena-hermes
0501564098 Release v0.51.249 — Release HQ (stage-q21) (#3523)
Some checks failed
Release & Docker / release (push) Has been cancelled
## Release v0.51.249 — Release HQ (stage-q21)

Small opt-in feature. UX-approved (screenshot of the toggle in Settings → Preferences).

### Added
| Issue | Author | Feature |
|-------|--------|---------|
| #2974 | @rodboev | **"Auto-expand terminal on output"** preference (Settings → Preferences, **off by default**). When enabled, the collapsed embedded terminal panel expands automatically the first time a running command emits output. Fires once per stream (guarded on open && collapsed — not per chunk), and uses `expandComposerTerminal({focus:false})` so it doesn't steal focus from the composer. Backend-persisted boolean mirroring the `simplified_tool_calling` pattern; default-off = no behavior change on upgrade. |

### Gate
- Full pytest suite: **7557 passed, 0 failed**
- ESLint: CLEAN · ruff: CLEAN · browser-smoke: CLEAN · screenshot vision-verified (toggle renders cleanly under "Compact tool activity", unchecked by default)
- Codex (regression): **SAFE TO SHIP** (clean first pass) — no-arg `expandComposerTerminal` callers unchanged, default-off incl. settings-load-failure path, all 5 plumb sites mirror the existing pattern

Co-authored-by: rodboev <rodboev@users.noreply.github.com>
2026-06-03 20:15:53 -07:00
Dennis Soong
0ec4aad949 fix: anchor active sessions per browser tab 2026-05-01 19:52:05 +08:00
Frank Song
22cf29d477 Restore terminal resize and collapse controls 2026-04-29 16:45:26 +08:00
Hermes Agent
867f2a3f81 absorb: address Opus review findings (security + correctness)
B1: fix stored XSS in MCP delete button — replace inline onclick with
    data-mcp-name attribute + event delegation (panels.js)
B2: fix zip/tar-slip via startswith prefix collision — use
    is_relative_to(); track actual extracted bytes instead of trusting
    member.file_size (upload.py)
B3: add NVIDIA NIM endpoint to _OPENAI_COMPAT_ENDPOINTS and
    _SUPPORTED_PROVIDER_SETUPS so provider is reachable (routes.py,
    onboarding.py)
H1: add terminalResizeHandle element to index.html and return it from
    _terminalEls() so resize-by-drag works (index.html, terminal.js)
H2: fix dead get_terminal() branch — return None for dead terminals
    instead of always returning term (terminal.py)
H3: replace os.environ.copy() with a safe allowlist in PTY shell env
    so API keys are not exposed inside the terminal (terminal.py)
H5: make model dedup deterministic — sort groups by provider_id
    alphabetically before first-occurrence assignment (config.py)
H7: add pid regex validation before OAuth probe; constrain key_source
    to a closed set of safe values (providers.py)
M8: add double-run guard for cron run-now — reject if job is already
    tracked as running (routes.py)
2026-04-29 05:06:34 +00:00
Frank Song
eb9614854e Refine embedded terminal card entrypoint 2026-04-29 04:37:31 +00:00
Frank Song
940c82b2da Synchronize initial terminal open layout 2026-04-29 04:37:30 +00:00
Frank Song
70417359e3 Synchronize dock expand layout 2026-04-29 04:37:28 +00:00
Frank Song
8e67e4aa78 Add controlled terminal card resizing 2026-04-29 04:37:27 +00:00
Frank Song
4575cae9db Keep terminal card from covering transcript 2026-04-29 04:37:26 +00:00
Frank Song
38c0912da1 Add collapsible embedded terminal dock 2026-04-29 04:37:12 +00:00
Frank Song
d501daafe1 Fix collapsed terminal dock layering 2026-04-29 04:36:40 +00:00
Frank Song
7df55b9789 Smooth collapsed terminal expansion 2026-04-29 04:36:14 +00:00
Frank Song
10c4ea24f1 Disable dock expand slide jank 2026-04-29 04:35:43 +00:00
Frank Song
60a4cb057e Add embedded workspace terminal 2026-04-29 04:35:11 +00:00