hermes-agent/apps/desktop/src
brooklyn! 44e5848e74
feat(desktop): stream subagent activity into watch windows (#47060)
* feat(desktop): stream subagent replies into watch windows

A desktop watch window resumes a child session lazily (no full agent) and
mirrors the parent-relayed `subagent.*` events into native child-session
stream events. The child's streamed reply text was never relayed, so the
window sat blank while the subagent "talked".

- delegate_tool: forward the child's `run_conversation` stream tokens up the
  progress relay as `subagent.text` (inert under CLI/TUI — their progress
  handlers ignore non-tool event types; only a gateway watch window mirrors it).
- server: mirror `subagent.text` -> `message.delta` on the child sid only, and
  skip the parent emit (per-token frames are meaningless on the parent session,
  which shows the child via the spawn tree). Demote `subagent.start` to a
  one-time goal header and drop the noisy `subagent.progress` mirror — tools
  already mirror natively.
- server: guard `_start_agent_build` so a lazy watch session spectating an
  in-flight child stays lazy; incidental RPCs were upgrading it to a full
  agent mid-stream and silently killing the mirror.

* fix(desktop): keep watch-window chat clear of titlebar chrome

Secondary windows (new-session scratch, subagent watch, cmd-click pop-out)
hide the titlebar tool cluster + session header, so the transcript ran to the
window's top edge and streamed text slid up under the OS traffic lights.

- Gate the hidden chrome on `isSecondaryWindow()` everywhere (app-shell,
  chat header, thread list) instead of the narrower new-session flag.
- Add a fixed opaque drag-strip at the top of the secondary-window transcript:
  content padding alone scrolls away with the text, so the strip masks
  anything behind it and keeps the window draggable like the main header.

* fix: WSL subagent window

* fix: subagent window top padding

---------

Co-authored-by: Austin Pickett <pickett.austin@gmail.com>
Co-authored-by: Teknium <127238744+teknium1@users.noreply.github.com>
2026-06-16 14:30:11 -04:00
..
app feat(desktop): stream subagent activity into watch windows (#47060) 2026-06-16 14:30:11 -04:00
components feat(desktop): stream subagent activity into watch windows (#47060) 2026-06-16 14:30:11 -04:00
fonts fix(desktop): crisp terminal text via opaque xterm canvas 2026-06-12 19:36:30 -05:00
hooks fix(desktop): keep generated images in the tool slot, not inline 2026-06-13 02:42:15 -05:00
i18n refactor(desktop): make composer model picker sticky session state 2026-06-16 09:50:07 -05:00
lib Merge pull request #46959 from NousResearch/bb/composer-model-selector 2026-06-16 09:55:57 -05:00
store refactor(desktop): make composer model picker sticky session state 2026-06-16 09:50:07 -05:00
themes feat(desktop): composer status stack, live subagent windows, editable prompts (#44630) 2026-06-12 08:30:06 -05:00
types feat(desktop): disconnect external (CLI-managed) providers 2026-06-16 00:08:21 -05:00
global.d.ts feat(desktop): open new sessions in compact windows 2026-06-15 20:59:57 -05:00
hermes.test.ts fix(desktop): route profile session reads 2026-06-11 18:09:24 -05:00
hermes.ts fix: add provider account removal 2026-06-13 21:47:13 -07:00
main.tsx feat(desktop): window translucency slider in Appearance settings (#45086) 2026-06-12 12:02:38 -05:00
styles.css Merge branch 'main' into bb/desktop-stick-to-bottom 2026-06-13 02:52:03 -05:00
vite-env.d.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00