Route typed Control UI `/new` through the dashboard session create-and-switch flow used by the New Chat button.
Keep typed `/reset` as the explicit in-place gateway reset path, and document the Control UI slash-command boundary.
Fixes#69599.
Fixes#63195.
Closes#68162.
Closes#73546.
- Keep Control UI chat sends bound to the history-backed session id across reconnects.
- Accept chat.send sessionId at the gateway/protocol boundary and update generated Swift models.
- Resume the last selected TUI session for the same gateway/agent/scope when still present.
Validated by exact-SHA CI on PR #75948.
Summary:
- The PR rewires Control UI/WebChat New Chat to create and switch to a dashboard session through `sessions.create`, adds guarded UI/session helper logic and regression tests, and updates the changelog.
ClawSweeper fixups:
- Included follow-up commit: fix(webchat): create dashboard sessions from New Chat
Validation:
- ClawSweeper review passed for head 983c634ec0.
- Required merge gates passed before the squash merge.
Prepared head SHA: 983c634ec0
Review: https://github.com/openclaw/openclaw/pull/73725#issuecomment-4338023497
Co-authored-by: vincentkoc <25068+vincentkoc@users.noreply.github.com>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Wire the Control UI chat slash-command menu to the composer with stable listbox and option IDs, active-descendant updates, and a live status announcement. Keep the native textarea role conforming while preserving the menu relationships and tests.
Disable the Control UI refresh button while chat is disconnected, loading, sending, running, or streaming.
This prevents manual chat-history refresh from racing active run/stream state and adds browser render coverage for the disabled-state matrix.
Closes#65522.
Validation:
- Exact PR head `1511a086614a727fc4200730e7ad9622134bb7d3` reached `CLEAN` merge state.
- GitHub CI for the exact head completed with no failed or pending checks.