hermes-agent/apps/desktop/src/lib
SHL0MS 6b26b409cf fix(desktop): /goal arg stays editable, kickoff queues when busy, slash header stops echoing long args
Four symptoms from the same /goal flow on desktop:

- Typing '/goal <text>' sealed the command into a directive chip on
  Space because /goal was registered without args:true, so the goal
  prose rendered awkwardly after a pill. The registry row now matches
  /personality and /tools: the arg stays editable text.

- The slash status header echoed the ENTIRE invocation ('slash:/goal
  <whole goal prose>') in mono, immediately above the backend notice
  that repeats the goal text again, and the kickoff user bubble that
  repeats it a third time. The header now carries just the command
  token (slash:/goal).

- When the session was busy, handleDispatch rendered 'session busy'
  and dropped the dispatch message. For /goal that message is the
  kickoff prompt, and the backend has ALREADY set the goal by then —
  the goal existed but the agent never heard about it, and later turns
  looked goal-unaware (#63352). The busy path now queues the kickoff
  on the composer queue: it sends on settle and is visible/editable in
  the queue panel meanwhile. Falls back to the old message if the
  queue rejects the entry.

- A slash command issued on a fresh draft created the backend session
  with no preview, so the sidebar row sat as 'Untitled session' —
  and when the kickoff was dropped, auto-title never fired either
  (it needs a completed user->assistant exchange). ensureSessionId now
  seeds the preview with the typed command.

Tests: registry row contract, busy-path queueing (kickoff neither
sends mid-turn nor vanishes), and the header-token assertion.
2026-07-25 16:09:38 -07:00
..
keybinds test(desktop): cover hidden-tab resolution for drops, focus, and timeline 2026-07-25 00:09:30 -05:00
ansi.test.ts
ansi.ts
chat-messages.test.ts fmt(js): npm run fix on merge (#71196) 2026-07-25 04:51:19 +00:00
chat-messages.ts feat(desktop): auto-continue turns interrupted by a crash 2026-07-24 23:31:56 -05:00
chat-runtime.test.ts fix(desktop): close cross-session leak windows in composer + session refs (#59305) 2026-07-24 16:04:12 -07:00
chat-runtime.ts fix(desktop): close cross-session leak windows in composer + session refs (#59305) 2026-07-24 16:04:12 -07:00
clipboard.ts
commit-changelog.test.ts
commit-changelog.ts refactor(desktop): adopt shared utils + app-wide cleanups 2026-07-03 13:48:44 -05:00
completion-sound.ts refactor(desktop): tidy the cross-window deduper 2026-07-20 18:36:05 -05:00
composer-input-sanitize.test.ts test(input): preservation regressions and prompt.submit boundary (#62557) 2026-07-15 07:39:42 -07:00
composer-input-sanitize.ts fix(desktop): resolve eslint errors in composer-input-sanitize.ts 2026-07-16 01:42:02 +05:30
desktop-fs.test.ts style(desktop): satisfy merged eslint/prettier config 2026-07-20 23:01:49 +02:00
desktop-fs.ts style(desktop): satisfy merged eslint/prettier config 2026-07-20 23:01:49 +02:00
desktop-git.test.ts fix(desktop): salvage /compress cluster — session.compress RPC + dedicated RPC routing (#68229) 2026-07-22 16:40:06 -04:00
desktop-git.ts fix(desktop): salvage /compress cluster — session.compress RPC + dedicated RPC routing (#68229) 2026-07-22 16:40:06 -04:00
desktop-remote-auth.test.ts fmt(js): npm run fix on merge (#70914) 2026-07-24 18:14:17 +00:00
desktop-remote-auth.ts feat(desktop): add "Connect to existing Hermes" option to first-run onboarding 2026-07-24 12:55:06 -05:00
desktop-slash-commands.test.ts fix(desktop): /goal arg stays editable, kickoff queues when busy, slash header stops echoing long args 2026-07-25 16:09:38 -07:00
desktop-slash-commands.ts fix(desktop): /goal arg stays editable, kickoff queues when busy, slash header stops echoing long args 2026-07-25 16:09:38 -07:00
desktop-toolsets.test.ts
desktop-toolsets.ts
drag-ghost.ts fix(desktop): session-tab drag, focus sync, and pop-out isolation 2026-07-15 03:13:33 -04:00
embedded-images.test.ts fix(desktop): persist the image ref for natively-vision-capable models too 2026-07-24 21:20:52 -05:00
embedded-images.ts fix(desktop): persist the image ref for natively-vision-capable models too 2026-07-24 21:20:52 -05:00
escape-layers.test.ts feat(desktop): store + lib — layout/preview/session atoms, escape-layers, keybind helpers 2026-07-13 17:57:54 -04:00
escape-layers.ts feat(desktop): store + lib — layout/preview/session atoms, escape-layers, keybind helpers 2026-07-13 17:57:54 -04:00
excluded-paths.ts
external-link.test.tsx
external-link.tsx
format.ts feat(desktop): Capabilities foundation — shared utils, master-detail, editors, primitives 2026-07-03 05:08:13 -05:00
gateway-events.test.ts fix(desktop, ink): don't wipe messages before final message (#65919) 2026-07-20 11:42:29 -04:00
gateway-events.ts fix(desktop, ink): don't wipe messages before final message (#65919) 2026-07-20 11:42:29 -04:00
gateway-rpc.test.ts fix(desktop): dismiss stale prompt overlays 2026-07-08 16:52:10 +02:00
gateway-rpc.ts fix(desktop): dismiss stale prompt overlays 2026-07-08 16:52:10 +02:00
gateway-ws-url.test.ts fix(desktop): avoid false remote gateway reauthentication (#68250) 2026-07-20 20:54:36 -04:00
generated-images.test.ts
generated-images.ts
haptics.ts
icons.ts polish(desktop/billing): auto-poll, no-card notice, grouped card layout 2026-07-22 16:48:04 -05:00
incremental-external-store-runtime.ts fmt(js): npm run fix on merge (#65229) 2026-07-15 21:40:56 +00:00
inflight-turn-journal.test.ts feat(desktop): crash-survivable in-flight turn journal 2026-07-24 23:31:55 -05:00
inflight-turn-journal.ts feat(desktop): crash-survivable in-flight turn journal 2026-07-24 23:31:55 -05:00
json-format.test.ts feat(desktop): Capabilities foundation — shared utils, master-detail, editors, primitives 2026-07-03 05:08:13 -05:00
json-format.ts feat(desktop): Capabilities foundation — shared utils, master-detail, editors, primitives 2026-07-03 05:08:13 -05:00
json-rpc-gateway-url-guard.test.ts fmt(js): npm run fix on merge (#69562) 2026-07-22 19:01:09 +00:00
katex-memo.ts
loadout.ts refactor(desktop): adopt shared utils + app-wide cleanups 2026-07-03 13:48:44 -05:00
local-preview.ts
markdown-blocks.test.ts test(desktop): raise timeout on markdown-blocks property fuzz 2026-07-18 18:53:41 -04:00
markdown-blocks.ts fix(desktop): correct incremental markdown split boundary (setext merge) 2026-07-18 18:21:58 -04:00
markdown-code.test.ts
markdown-code.ts refactor(desktop): adopt shared utils + app-wide cleanups 2026-07-03 13:48:44 -05:00
markdown-preprocess.ts feat(desktop): render agent-written @session links as chips 2026-07-24 22:52:45 -05:00
mcp-dashboard-oauth.test.ts fmt(js): npm run fix on merge (#66348) 2026-07-17 14:30:29 +00:00
mcp-dashboard-oauth.ts fmt(js): npm run fix on merge (#66348) 2026-07-17 14:30:29 +00:00
mcp-tool-filter.test.ts feat(mcp): first-class MCP tab — catalog, GUI auth/probe/logs, per-tool gating 2026-07-03 05:08:28 -05:00
mcp-tool-filter.ts feat(mcp): first-class MCP tab — catalog, GUI auth/probe/logs, per-tool gating 2026-07-03 05:08:28 -05:00
media.remote.test.ts fix(desktop): render remote markdown images in chat (#57944) 2026-07-23 00:16:20 -05:00
media.ts fix(desktop): render remote markdown images in chat (#57944) 2026-07-23 00:16:20 -05:00
model-options.test.ts fix(desktop): scope model options by profile (#62795) 2026-07-22 09:40:50 -04:00
model-options.ts fix(desktop): scope model options by profile (#62795) 2026-07-22 09:40:50 -04:00
model-status-label.test.ts feat(reasoning): add max and ultra effort levels (#62650) 2026-07-12 00:26:49 -07:00
model-status-label.ts feat(reasoning): add max and ultra effort levels (#62650) 2026-07-12 00:26:49 -07:00
mutable-ref.ts
oneshot.ts
persisted.ts
pool.test.ts
pool.ts
preview-targets.test.ts
preview-targets.ts
profile-color.ts
project-idea-templates.ts
provider-setup-errors.test.ts fix(desktop): stop spurious provider onboarding from credential warnings 2026-07-23 00:18:21 -05:00
provider-setup-errors.ts fix(desktop): stop spurious provider onboarding from credential warnings 2026-07-23 00:18:21 -05:00
query-client.test.ts perf(desktop): scope tool-diff subscriptions + narrow profile query invalidation 2026-07-18 19:15:57 -04:00
query-client.ts perf(desktop): scope tool-diff subscriptions + narrow profile query invalidation 2026-07-18 19:15:57 -04:00
raf-coalesce.ts refactor(desktop): extract shared rafCoalesce helper for sash drags 2026-07-19 22:38:57 -05:00
reorder.ts feat(desktop): store + lib — layout/preview/session atoms, escape-layers, keybind helpers 2026-07-13 17:57:54 -04:00
runtime-readiness.test.ts
runtime-readiness.ts
sanitize.test.ts
sanitize.ts
selectable-card.ts
session-branch-tree.test.ts
session-branch-tree.ts
session-date-groups.test.ts feat(desktop): date dividers in the sessions sidebar 2026-07-24 10:45:34 -05:00
session-date-groups.ts feat(desktop): date dividers in the sessions sidebar 2026-07-24 10:45:34 -05:00
session-export.ts
session-ids.test.ts
session-ids.ts
session-link-title.test.ts fmt(js): npm run fix on merge (#71532) 2026-07-25 19:11:39 +00:00
session-link-title.ts feat(desktop): render agent-written @session links as chips 2026-07-24 22:52:45 -05:00
session-refs.test.ts feat(session-search): give the agent a link to hand back 2026-07-24 23:30:25 -05:00
session-refs.ts feat(session-search): give the agent a link to hand back 2026-07-24 23:30:25 -05:00
session-search.test.ts fix(desktop): match sessions by git branch in ctrl-k palette and sidebar search (#65172) 2026-07-15 15:37:12 -04:00
session-search.ts fix(desktop): match sessions by git branch in ctrl-k palette and sidebar search (#65172) 2026-07-15 15:37:12 -04:00
session-signatures.test.ts fmt(js): npm run fix on merge (#65229) 2026-07-15 21:40:56 +00:00
session-signatures.ts feat(desktop): store + lib — layout/preview/session atoms, escape-layers, keybind helpers 2026-07-13 17:57:54 -04:00
session-source.ts refactor(desktop): adopt shared utils + app-wide cleanups 2026-07-03 13:48:44 -05:00
speech-text.ts
stable-array.ts refactor(desktop): DRY the computed-dedup into stableArray + freeze 2026-07-19 19:46:09 -05:00
statusbar.tsx fix(desktop): prevent timers from shifting as they count (#68131) 2026-07-20 16:39:20 +00:00
storage.test.ts
storage.ts feat(desktop): store + lib — layout/preview/session atoms, escape-layers, keybind helpers 2026-07-13 17:57:54 -04:00
summarize-command.test.ts
summarize-command.ts
svg-image.ts
text.ts feat(desktop): Capabilities foundation — shared utils, master-detail, editors, primitives 2026-07-03 05:08:13 -05:00
time.test.ts feat(desktop): date dividers in the sessions sidebar 2026-07-24 10:45:34 -05:00
time.ts fmt(js): npm run fix on merge (#70845) 2026-07-24 16:36:59 +00:00
todos.test.ts
todos.ts
tool-result-summary.test.ts
tool-result-summary.ts refactor(desktop): adopt shared utils + app-wide cleanups 2026-07-03 13:48:44 -05:00
trackpad-gestures.ts
update-copy.test.ts
update-copy.ts
use-enter-animation.ts
use-session-slice.ts perf(desktop): stop ChatBar re-rendering on cross-session status/queue churn 2026-06-30 04:19:10 -05:00
utils.ts
voice-barge-in.ts feat(voice): desktop speech-stream sessions with barge-in capture 2026-07-22 17:47:25 -05:00
voice-playback.ts feat(voice): desktop flags interrupted submits 2026-07-22 17:53:06 -05:00
yolo-session.ts