hermes-office/PR89.md

6.3 KiB
Raw Permalink Blame History

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:
    • openclaw
    • hermes
    • demo
    • custom
  • 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. Lukes findings addressed

The Demo cron mismatch called out in review is fixed.

Changes:

  • Automations is hidden when supportsCapability("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.tsx
  • src/features/agents/operations/settingsSidebarTabs.ts
  • src/features/agents/operations/useAgentSettingsMutationController.ts
  • tests/unit/settingsSidebarTabs.test.ts
  • tests/unit/useAgentSettingsMutationController.test.ts

Validation

  • npm run typecheck
  • npx vitest run tests/unit/useGatewayConnection.test.ts tests/unit/useRuntimeConnection.test.ts
  • npx vitest run tests/unit/useAgentSettingsMutationController.test.ts tests/unit/settingsSidebarTabs.test.ts
  • npx 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 + Connect succeeds cleanly

That remaining first-attempt Hermes miss is now the only notable runtime issue still observed in manual browser testing for this pass.