Skip to content

[codex] fix profile terminal env keyword collision#1265

Closed
lost9999 wants to merge 1 commit intonesquena:masterfrom
lost9999:codex/fix-profile-terminal-env-collision-20260430004906
Closed

[codex] fix profile terminal env keyword collision#1265
lost9999 wants to merge 1 commit intonesquena:masterfrom
lost9999:codex/fix-profile-terminal-env-collision-20260430004906

Conversation

@lost9999
Copy link
Copy Markdown
Contributor

Summary

  • merge profile runtime env before calling _set_thread_env
  • let the session workspace override terminal.cwd without passing duplicate TERMINAL_CWD kwargs
  • add regression coverage for profile terminal cwd collisions

Root cause

get_profile_runtime_env() maps terminal.cwd from config.yaml to TERMINAL_CWD. The streaming path then expanded that dict and also passed TERMINAL_CWD=str(s.workspace) explicitly into _set_thread_env(), which raises TypeError: got multiple values for keyword argument 'TERMINAL_CWD' before the agent starts.

Validation

  • /home/lost9999/.hermes/hermes-agent/venv/bin/python -m pytest tests/test_profile_terminal_env.py -q

nesquena-hermes added a commit that referenced this pull request Apr 30, 2026
## Release v0.50.240

Batch release of 13 PRs that passed full triage + code review + test suite (3199 tests, 0 failures).

---

### Added

- **Compact tool activity mode** (`simplified_tool_calling`, default on) — groups tool calls and thinking traces into a single collapsed "Activity" disclosure card per assistant turn. Also adds a new **Calm Console** theme with earth/slate palette and serif prose. @Michaelyklam#1282
- **PDF first-page preview** — `MEDIA:` `.pdf` files render a canvas thumbnail via PDF.js CDN (4 MB cap). **HTML sandbox iframe** — `.html`/`.htm` files render inline in a sandboxed `<iframe srcdoc>` (256 KB cap). 10 i18n keys × 7 locales. @bergeouss#1280, closes #480 #482
- **Inline Excalidraw diagram preview** — `.excalidraw` files render as pure SVG (no external deps; rectangles, ellipses, diamonds, text, lines, arrows, freehand; 512 KB cap). @bergeouss#1279, closes #479
- **Inline CSV table rendering** — fenced `csv` blocks and `MEDIA:` CSV files render as scrollable HTML tables with auto-separator detection. @bergeouss#1277, closes #485
- **Inline SVG, audio, and video rendering** — SVG as `<img>`, audio as `<audio controls>`, video as `<video controls>`. @bergeouss#1276, closes #481
- **Batch session select mode** — multi-select sessions for bulk Archive/Delete/Move. 11 i18n keys × 7 locales. @bergeouss#1275, closes #568
- **Collapsible skill category headers** — click to collapse/expand without re-render; state persists across filter cycles. @bergeouss#1281
- **`providers.only_configured` setting** — opt-in flag to restrict the model picker to explicitly configured providers. @KingBoyAndGirl#1268
- **OpenCode Go model catalog** — adds Kimi K2.6, DeepSeek V4 Pro/Flash, MiMo V2.5/Pro, Qwen3.6/3.5 Plus. @nesquena-hermes#1284, closes #1269

### Fixed

- **Profile `TERMINAL_CWD` TypeError** — `_build_agent_thread_env()` helper merges env before `_set_thread_env()` call. @hi-friday#1266
- **Service worker subpath cache bypass** — regex now matches `/api/*` under any mount prefix. @Michaelyklam#1278
- **SSE client disconnect leaks** — `TimeoutError`/`OSError` treated as clean disconnects; server backlog 64, threads daemonized; session list renders before saved-session restore. @KayZz69#1267
- **i18n locale corrections** — Korean MCP strings (23), Chinese MCP strings (23), zh-Hant missing keys (41), de missing keys (229). @bergeouss#1274, closes #1273

---

### Test results

```
3199 passed, 2 skipped, 3 xpassed in 72.79s
```

### PRs on hold (not included)

#1265 (draft), #1271 (superseded by #1266), #1272 (skipped XSS tests), #1232 (partial test run), #1222 (review questions open), #1134 (live-server tests), #1132 (superseded by #1134), #1108 (negative UX review), #1084 (empty description)
@nesquena-hermes
Copy link
Copy Markdown
Collaborator

Closing — superseded by #1266 (shipped in v0.50.240)

Thanks for the PR, @lost9999! This fixes the same TERMINAL_CWD duplicate-kwargs TypeError as #1266, which landed in v0.50.240. The approach is identical — both introduce a helper that merges env before _set_thread_env().

Since #1266 is already in master, this PR is no longer needed. Closing to keep the queue clean.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants