hermes-agent/web/src/lib
Brooklyn Nicholson f174c0b6bb fix(pairing): scope the approve/revoke endpoints to a profile
The gateway keeps one PairingStore per served profile, but every
`/api/pairing` endpoint built the global one. An operator managing a named
profile saw the wrong pending list, and approving wrote a grant into a
whitelist their running gateway never consults — the user stays locked out
while the UI shows them as approved.

`_pairing_store(profile)` now resolves per profile and validates the name
(400/404 on an unknown one). No `_profile_scope` needed: PairingStore
resolves the profile's home itself, so nothing process-global is swapped
across an await.

Both GUIs had to change to match. The listing rides the query param — for
the dashboard that meant deleting `pairing` from the "machine-global, must
NOT be rewritten" exclusion list, a comment this change makes false. The
mutating endpoints read the profile off the BODY, which no query-param
rewrite reaches, so approve/revoke send it explicitly on both surfaces.
2026-07-29 18:43:50 -05:00
..
api.test.ts fix(dashboard): support mobile OAuth login 2026-07-09 12:21:16 +05:30
api.ts fix(pairing): scope the approve/revoke endpoints to a profile 2026-07-29 18:43:50 -05:00
chat-activation.test.ts fix(dashboard): only open the chat PTY once the chat tab is active (#59551) 2026-07-18 00:50:13 -04:00
chat-activation.ts fix(dashboard): only open the chat PTY once the chat tab is active (#59551) 2026-07-18 00:50:13 -04:00
chat-sidebar-session-params.test.ts test: port JS/package.json invariant tests from Python to vitest 2026-07-15 17:24:12 -04:00
chat-title.test.ts fix dashboard chat session titles 2026-06-21 22:44:02 -07:00
chat-title.ts fix dashboard chat session titles 2026-06-21 22:44:02 -07:00
chatImagePaste.test.ts fix(web): paste/drop images into dashboard Chat via HERMES_HOME/images 2026-07-10 02:20:04 -05:00
chatImagePaste.ts fix(web): paste/drop images into dashboard Chat via HERMES_HOME/images 2026-07-10 02:20:04 -05:00
clipboard.test.ts fix(dashboard): support mobile OAuth login 2026-07-09 12:21:16 +05:30
clipboard.ts fix(dashboard): support mobile OAuth login 2026-07-09 12:21:16 +05:30
cron-job.test.ts feat(dashboard): expose cron job execution fields 2026-06-27 03:20:32 -07:00
cron-job.ts refactor(dashboard): tighten cron-job form helpers 2026-06-27 03:20:32 -07:00
dashboard-flags.ts
dashboard-modal-shell.test.ts fix(dashboard): opaque MoA presets modal (stop page bleed-through) (#67410) 2026-07-19 19:09:12 -04:00
dashboard-modal-shell.ts fix(dashboard): opaque MoA presets modal (stop page bleed-through) (#67410) 2026-07-19 19:09:12 -04:00
format.ts
fuzzy.ts
gatewayClient.ts fix(docker): include apps/shared in dashboard image build 2026-06-28 21:43:56 -05:00
log-classify.test.ts fix(dashboard): QA pass — log colors, nameless channels, config bool, UX gaps 2026-07-26 15:17:30 -07:00
log-classify.ts fix(dashboard): QA pass — log colors, nameless channels, config bool, UX gaps 2026-07-26 15:17:30 -07:00
mcp-dashboard-oauth.test.ts fix(mcp): close hosted OAuth lifecycle gaps 2026-07-17 04:50:47 -07:00
mcp-dashboard-oauth.ts fix(mcp): close hosted OAuth lifecycle gaps 2026-07-17 04:50:47 -07:00
mcp-server-create.test.ts fix(dashboard): add MCP auth to profile builder (#65163) 2026-07-16 02:05:04 +05:30
mcp-server-create.ts fix(dashboard): add MCP auth to profile builder (#65163) 2026-07-16 02:05:04 +05:30
model-picker-filter.test.ts fix(dashboard): don't let a provider-name query hide the selected provider's models (#65374) (#65413) 2026-07-19 19:05:44 -04:00
model-picker-filter.ts fix(dashboard): don't let a provider-name query hide the selected provider's models (#65374) (#65413) 2026-07-19 19:05:44 -04:00
model-search-text.ts fix(models): match bare Kimi Coding k3 when searching kimi 2026-07-26 21:22:40 -07:00
nested.ts
pty-mobile-input.test.ts fix(dashboard): harden PTY reconnect race, wedged-connect recovery, IME guard 2026-07-09 13:50:17 +05:30
pty-mobile-input.ts fix(web): resolve all eslint errors, downgrade react-hooks v7 to warnings 2026-07-16 01:42:02 +05:30
pty-reconnect.test.ts fix(dashboard): harden PTY reconnect race, wedged-connect recovery, IME guard 2026-07-09 13:50:17 +05:30
pty-reconnect.ts fix(web): make PTY resume sanitizer work against real PTY output 2026-07-29 12:21:48 -04:00
pty-resume-sanitizer.test.ts fix(web): make PTY resume sanitizer work against real PTY output 2026-07-29 12:21:48 -04:00
pty-resume-sanitizer.ts fix(web): make PTY resume sanitizer work against real PTY output 2026-07-29 12:21:48 -04:00
reasoning-effort.test.ts feat(reasoning): add max and ultra effort levels (#62650) 2026-07-12 00:26:49 -07:00
reasoning-effort.ts feat(reasoning): add max and ultra effort levels (#62650) 2026-07-12 00:26:49 -07:00
resolve-page-title.test.ts fix(dashboard): QA pass — log colors, nameless channels, config bool, UX gaps 2026-07-26 15:17:30 -07:00
resolve-page-title.ts fix(dashboard): QA pass — log colors, nameless channels, config bool, UX gaps 2026-07-26 15:17:30 -07:00
schedule.test.ts feat(dashboard): expose cron job execution fields 2026-06-27 03:20:32 -07:00
schedule.ts feat(dashboard): expose cron job execution fields 2026-06-27 03:20:32 -07:00
session-import.test.ts feat(dashboard): add session import flow 2026-07-13 15:41:00 +05:30
session-import.ts feat(dashboard): add session import flow 2026-07-13 15:41:00 +05:30
session-refresh.test.ts fix(dashboard): refresh Sessions list in real time when new sessions are created 2026-06-19 17:26:11 +05:30
session-refresh.ts fix(dashboard): refresh Sessions list in real time when new sessions are created 2026-06-19 17:26:11 +05:30
slashExec.ts
utils.ts