hermes-agent/apps/shared/src
izumi0uu cab8673ea6 fix(dashboard): reload loopback tabs after stale session-token closes
Loopback dashboard tabs now share one one-shot stale-token recovery path across REST 401s, the PTY socket, the structured event socket, and the shared JSON-RPC gateway wrapper. The shared client exposes only an optional close-event interception hook; the dashboard remains responsible for deciding that loopback 4401 means reload.

Constraint: Current main delegates the web gateway to apps/shared JsonRpcGatewayClient, and #54022 review requires a shared-client-compatible close-code hook plus direct ChatSidebar event-socket coverage.
Rejected: Restore the dashboard's old direct WebSocket implementation | stale against the shared JSON-RPC client and would duplicate transport behavior.
Confidence: high
Scope-risk: moderate
Directive: Keep stale-token policy dashboard-specific; the shared JSON-RPC client should expose close events without learning dashboard auth semantics.
Tested: npm --workspace web test (21 files, 106 tests); focused stale-token tests (5 files, 14 tests); npm --workspace web run typecheck; npm --workspace @hermes/shared run lint; npm --workspace @hermes/shared run typecheck; focused web eslint; git diff --check.
Not-tested: Manual browser smoke test across a real dashboard restart.
2026-08-04 15:26:37 +05:30
..
billing-payment-method.test-d.ts feat(billing): carry the payment-method union through to clients (#71542) 2026-07-27 01:49:43 +05:30
billing-policy.ts Terminal-billing client hardening: shared wire types, wire-layer tests, dead RPC removal (#61067) 2026-07-18 07:05:58 -07:00
billing-types.ts feat(billing): carry the payment-method union through to clients (#71542) 2026-07-27 01:49:43 +05:30
charge-settlement.ts Terminal-billing client hardening: shared wire types, wire-layer tests, dead RPC removal (#61067) 2026-07-18 07:05:58 -07:00
index.ts refactor: drop the shared subpath export, keeping package.json untouched 2026-07-28 03:54:49 -05:00
json-rpc-gateway.ts fix(dashboard): reload loopback tabs after stale session-token closes 2026-08-04 15:26:37 +05:30
skill-scaffold.test.ts feat(shared): read a skill invocation out of its expanded scaffolding 2026-07-28 03:44:23 -05:00
skill-scaffold.ts refactor: drop the shared subpath export, keeping package.json untouched 2026-07-28 03:54:49 -05:00
skin.ts feat(themes): dedicated code-syntax palette keys 2026-07-21 21:00:43 -05:00
websocket-url.ts fix(desktop): avoid false remote gateway reauthentication (#68250) 2026-07-20 20:54:36 -04:00