The two webviews (local title bar, remote web UI) become one WebviewWindow on ui/index.html. The window refuses every navigation but the app's page and its sealed frames; the capability still names only main and no remote URL. - server.rs: discovery refuses a server older than 2.0 (protocol 3 and major version 2) and an app API newer than this app knows; the app's own device login for the app scope, the token kept in account.json (0600) and never given to the page; a proxy limited to /api/v2 paths; the SSE stream. - files.rs: list and read the agent's working directory, resolved (links and .. included) and refused outside the agent's folders. - sealed.rs: HTML for the viewer on its own scheme under the server's sealed policy: no bridge, no network, no navigation. - watch.rs + tauri-plugin-notification: a notification when a reply or an agent chat finishes out of sight. - A failed start and panics go to desktop.log; a missing tray no longer stops the app; the DMA-BUF renderer is off under NVIDIA's driver. - The unstable multiwebview feature, the gtk dependency and the theme report are gone. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
64 lines
2.0 KiB
JSON
64 lines
2.0 KiB
JSON
{
|
|
"$schema": "https://schema.tauri.app/config/2",
|
|
"productName": "llembas-desktop",
|
|
"mainBinaryName": "llembas-desktop",
|
|
"identifier": "eu.llembas.desktop",
|
|
"build": {
|
|
"frontendDist": "../ui"
|
|
},
|
|
"app": {
|
|
"withGlobalTauri": true,
|
|
"windows": [],
|
|
"security": {
|
|
"csp": "default-src 'self'; img-src 'self' data:; style-src 'self' 'unsafe-inline'; script-src 'self'; connect-src ipc: http://ipc.localhost; frame-src llembas-sealed: http://llembas-sealed.localhost; object-src 'none'; base-uri 'none'; form-action 'none'",
|
|
"dangerousDisableAssetCspModification": [
|
|
"style-src"
|
|
]
|
|
}
|
|
},
|
|
"bundle": {
|
|
"active": true,
|
|
"targets": [
|
|
"deb",
|
|
"appimage"
|
|
],
|
|
"category": "Productivity",
|
|
"shortDescription": "The LLeMbas agent on this computer, and your server's chats",
|
|
"longDescription": "LLeMbas Desktop runs the LLeMbas CLI agent on this computer, so agent chats can work in your projects here without a terminal, and shows them, and the chats on your LLeMbas 2.0 server, in an app of its own: the agent's working directory and the server's files side by side, and a viewer for what the agent shows you.",
|
|
"license": "MIT",
|
|
"homepage": "https://llembas.eu",
|
|
"publisher": "LLeMbas",
|
|
"copyright": "Copyright (c) 2026 Jaroslav Beneš",
|
|
"icon": [
|
|
"icons/32x32.png",
|
|
"icons/128x128.png",
|
|
"icons/128x128@2x.png",
|
|
"icons/icon.png",
|
|
"icons/icon.ico"
|
|
],
|
|
"resources": {
|
|
"binaries/lembas": "lembas"
|
|
},
|
|
"linux": {
|
|
"deb": {
|
|
"desktopTemplate": "llembas-desktop.desktop",
|
|
"conflicts": [
|
|
"l-le-mbas"
|
|
],
|
|
"replaces": [
|
|
"l-le-mbas"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"plugins": {
|
|
"updater": {
|
|
"pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXkgMzNBNUJCMkNCQTBCOTEwRgpSV1FQa1F1NkxMdWxNOCtnT2NMQU5QOTBHZ3hUaC9UNHVFZThUR2lqOGdWWUVObi9mbU00amoyago=",
|
|
"endpoints": [
|
|
"https://llembas.eu/desktop/latest.json"
|
|
],
|
|
"requireSignedVersion": true
|
|
}
|
|
}
|
|
}
|