openclaw/docs/web
Peter Steinberger 3ccf2a0739
feat: render inline web chat widgets via capability-gated show_widget tool (#101840)
Adds client-capability-gated tool availability: gateway clients declare
capabilities at connect (new inline-widgets cap), chat.send stamps them into
the run context, and every tool assembly path (embedded runner, queued
followups, Codex app-server harness, plugin-only construction plans) drops
tools whose requiredClientCaps the originating client did not declare. The
Canvas plugin ships the first such tool, show_widget: agents pass SVG or an
HTML fragment plus a title; the plugin hosts it as a bounded, retention-scoped
Canvas document and returns the existing canvas preview handle, which web chat
renders as a sandboxed iframe fitted to the widget's reported content height.
Widget frames never get allow-same-origin (per-preview sandbox ceiling,
including the sidebar path) and the Canvas host serves widget documents with a
CSP sandbox header so direct navigation runs in an opaque origin. Verified
live end-to-end on a Testbox with gpt-5.5 (screenshots on the PR). CLI-backed
model backends do not carry client caps yet and stay fail-closed (#102577).

Closes #101790
2026-07-09 12:29:50 +01:00
..
control-ui.md feat: render inline web chat widgets via capability-gated show_widget tool (#101840) 2026-07-09 12:29:50 +01:00
dashboard.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
index.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
tui.md feat(ui): redesign session goal into interactive composer pill with elapsed time and /goal edit (#100736) 2026-07-06 09:42:49 +01:00
webchat.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00