mirror of
https://github.com/openclaw/openclaw.git
synced 2026-07-22 22:11:13 +00:00
* feat(linux): canvas via CLI-node + Tauri app IPC bridge * refactor: extract gateway helper modules * build(linux-canvas): register plugin package in lockfile * fix(linux-canvas): move canvas advertise test out of core, regen docs/protocol/deadcode * fix(gateway): break node-catalog/registry import cycle via leaf normalize module; add canvas glossary term * style: oxfmt invoke.ts and runtime.ts after buildNodeEventParams extraction * fix(linux): load Canvas WebView via dedicated data_directory context Wry's Linux/WebKitGTK incognito mode discards Tauri's registered WebContext (wry webkitgtk/mod.rs), so the Canvas window got a fresh ephemeral context without the openclaw-canvas:// scheme handler — the bundled A2UI page never committed (stayed about:blank) and every A2UI command timed out. Use an isolated cache-backed data_directory instead, which keeps the protocol handler while still isolating Canvas storage from the dashboard window. * fix(linux): keep Canvas WebView ephemeral via incognito + data_directory Autoreview flagged that a dedicated data_directory alone persists Canvas browser state (cookies, localStorage, IndexedDB, service workers) across restarts, so an agent that navigates Canvas to a site could leak an authenticated session into a later session. iOS uses a non-persistent store; Linux should match. Add .incognito(true) alongside .data_directory(): the distinct directory gives Tauri a fresh WebContext key so it still attaches the openclaw-canvas:// protocol closure, and incognito makes Wry swap in a fresh *ephemeral* context carrying those protocols. Live-verified on a Wayland/WebKitGTK box: the bundled page still loads (location.href=openclaw-canvas://localhost/index.html, openclawA2UI present, A2UI renders) and the canvas-webview dir holds no persistent cookie/storage files.
66 lines
1.8 KiB
JSON
66 lines
1.8 KiB
JSON
{
|
|
"$schema": "https://schema.tauri.app/config/2",
|
|
"productName": "OpenClaw",
|
|
"version": "0.1.0",
|
|
"identifier": "ai.openclaw.linux",
|
|
"build": {
|
|
"frontendDist": "../ui"
|
|
},
|
|
"app": {
|
|
"withGlobalTauri": true,
|
|
"windows": [
|
|
{
|
|
"label": "main",
|
|
"title": "OpenClaw",
|
|
"url": "index.html",
|
|
"width": 1080,
|
|
"height": 720,
|
|
"minWidth": 720,
|
|
"minHeight": 520,
|
|
"center": true,
|
|
"visible": true
|
|
}
|
|
],
|
|
"security": {
|
|
"csp": "default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:; connect-src ipc: http://ipc.localhost",
|
|
"capabilities": [
|
|
{
|
|
"identifier": "local-companion",
|
|
"description": "Local setup screens can invoke app commands and receive installer progress.",
|
|
"local": true,
|
|
"windows": ["main"],
|
|
"permissions": [
|
|
"allow-bootstrap",
|
|
"allow-gateway-action",
|
|
"allow-install-cli",
|
|
"core:event:allow-listen",
|
|
"core:event:allow-unlisten"
|
|
]
|
|
},
|
|
{
|
|
"identifier": "canvas-renderer",
|
|
"description": "The bundled Canvas renderer can relay A2UI actions.",
|
|
"local": true,
|
|
"windows": ["canvas"],
|
|
"permissions": ["allow-canvas-a2ui-action"]
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"bundle": {
|
|
"active": true,
|
|
"category": "Utility",
|
|
"shortDescription": "OpenClaw Linux companion",
|
|
"longDescription": "Installs OpenClaw, manages the local Gateway service, and hosts the Control UI.",
|
|
"icon": [
|
|
"icons/32x32.png",
|
|
"icons/128x128.png",
|
|
"icons/128x128@2x.png",
|
|
"icons/icon.png"
|
|
],
|
|
"resources": {
|
|
"../../../scripts/install-cli.sh": "install-cli.sh"
|
|
}
|
|
}
|
|
}
|