6.3 KiB
Summary
This PR started as the Hermes/demo/runtime seam work and has now grown into the main runtime stabilization branch for Claw3D.
The branch now does four things:
- keeps the Hermes adapter path working and easier to debug
- makes backend selection more explicit and truthful in Studio
- extends the runtime seam beyond OpenClaw-only assumptions
- fixes capability mismatches that were exposing unsupported UI/actions
This is now the right branch for the Hermes/runtime review path.
What Changed Since The Earlier PR Notes
The earlier summary for this work is now outdated.
This branch no longer only has a single OpenClaw-shaped runtime path. It now includes:
- persisted backend selection in Studio settings
- active backend identity surfaced in the UI
- real provider selection across:
openclawhermesdemocustom
- Hermes/demo hello identity support
- stronger office/runtime alignment so the office is less tightly coupled to raw gateway assumptions
- runtime and reconnect fixes discovered while exercising Hermes in the real UI
Included In This PR
1. Hermes/runtime stability and reconnect behavior
- improved Hermes adapter/runtime selection handling
- reduced OpenClaw-specific assumptions leaking into Hermes/demo/custom paths
- stabilized reconnect and connect-screen behavior in the office flow
- improved local backend switching/debuggability from inside Studio
- Studio now only auto-connects from a verified last-known-good runtime state; otherwise it shows the connect overlay and waits for explicit operator choice
- fixed a gateway connect-screen hydration bug caused by invalid HTML around the inline loading avatar
- fixed an onboarding hydration mismatch caused by reading browser storage during initial render
- kept the office mounted while gateway loading/prompt states are shown as overlays instead of full page swaps
- kept the office visible behind the runtime overlay, while making the connect modal itself more opaque/readable
- aligned Studio proxy URL resolution back to upstream
main - added a small first auto-connect delay for Hermes/Demo so the initial browser ws proxy attempt is less likely to race Next dev startup
- removed destructive office camera resets that were firing on runtime-status and agent-count changes
- manual connect now cancels pending auto-connect/retry overlap before opening a new Hermes/Demo attempt
- Hermes/Demo gateway connects now allow a second internal attempt before surfacing failure, which materially reduces the first-connect miss pattern in local Studio testing
2. Truthful backend selection
- Studio persists the selected backend instead of only URL/token
- the UI shows selected vs active backend
- backend settings are now clearer and less misleading when switching between:
- OpenClaw
- Hermes
- Demo
- Custom
3. Runtime seam expansion
- provider selection is no longer effectively OpenClaw-only
- Hermes and Demo use real provider paths
- groundwork for direct HTTP-backed custom runtimes is included on this branch
4. Office/runtime alignment
- office bootstrap and runtime handling are less coupled to raw gateway transport
- blank-office / reconnect edge cases were investigated and several stability fixes landed during Hermes validation
5. Luke’s findings addressed
The Demo cron mismatch called out in review is fixed.
Changes:
Automationsis hidden whensupportsCapability("cron")is false- cron create/run/delete now fail fast with a clear user-facing error when the runtime does not support cron
- added tests covering:
- no Automations tab when cron is unsupported
- cron mutations blocked when cron capability is unavailable
Review Follow-Up For Luke
Addressed review finding:
- Demo runtime no longer exposes unsupported cron mutation behavior through the settings flow
- unsupported cron actions are blocked before any RPC is sent
Files directly involved in that fix:
src/features/agents/screens/AgentsPageScreen.tsxsrc/features/agents/operations/settingsSidebarTabs.tssrc/features/agents/operations/useAgentSettingsMutationController.tstests/unit/settingsSidebarTabs.test.tstests/unit/useAgentSettingsMutationController.test.ts
Validation
npm run typechecknpx vitest run tests/unit/useGatewayConnection.test.ts tests/unit/useRuntimeConnection.test.tsnpx vitest run tests/unit/useAgentSettingsMutationController.test.ts tests/unit/settingsSidebarTabs.test.tsnpx vitest run tests/unit/demoGatewayAdapter.test.ts
Scope Notes
This PR still does not claim:
- ACP-native Hermes integration
- process launch from Studio
- fully mature custom-runtime streaming/session semantics
- finished office-system feature implementation
Office Systems Note
The office-system roadmap/spec work exists, but it is not part of this implementation scope.
That work was split into feature issue #90.
Current docs/specs are planning artifacts only:
- bulletin board
- whiteboard
- meeting room workflow
- QA department
- desk progression
- hierarchy/teams
Nothing from those office-system specs should be interpreted as already built in this PR.
Suggested Reviewer Focus
- Hermes adapter/runtime stability in the real Studio/office flow
- whether backend selection is now clearer and less misleading
- whether capability claims are honest, especially for Demo
- whether the runtime/provider seam changes remain coherent for upstream use
Remaining Follow-Up Work
- ACP-backed Hermes provider as separate work
- better Hermes profile/model visibility in settings
- stronger reconnect persistence behavior
- richer multi-agent Hermes flows
- continued custom-runtime and downstream orchestrator work
Current Operator Status
As of the latest local verification on April 1, 2026:
- Hermes now reaches a stable connected office state without the earlier heavy scene flicker/reset behavior
- the office remains visible behind gateway loading/error overlays
- the Demo cron capability mismatch called out in review is fixed end-to-end
- one residual Hermes issue may still remain in some local dev sessions:
the first automatic connection attempt can miss once before a manual
Hermes backend+Connectsucceeds cleanly
That remaining first-attempt Hermes miss is now the only notable runtime issue still observed in manual browser testing for this pass.