Initial commit: Tauri + CanvasKit + React editor scaffold
- Tauri v2 desktop shell with 1280x800 window
- CanvasKit WASM (Skia) rendering via WebGL2
- Scene graph with typed nodes (Frame, Rectangle, Ellipse, Line, etc.)
- Skia renderer with fills, strokes, rounded corners, opacity, rotation
- Selection system with resize handles
- Undo/redo manager (inverse command pattern with batching)
- Bottom toolbar (Select, Frame, Rect, Ellipse, Line) matching Figma UI3
- Left layers panel, right properties panel
- Pan (scroll), zoom (Ctrl+scroll toward cursor)
- Keyboard shortcuts: V/F/R/O/L for tools, Cmd+Z undo, Backspace delete
- 5 demo shapes rendered on canvas
2026-02-27 12:48:29 +00:00
|
|
|
{
|
|
|
|
|
"$schema": "../gen/schemas/desktop-schema.json",
|
|
|
|
|
"identifier": "default",
|
|
|
|
|
"description": "Capability for the main window",
|
|
|
|
|
"windows": ["main"],
|
|
|
|
|
"permissions": [
|
|
|
|
|
"core:default",
|
2026-02-28 10:54:21 +00:00
|
|
|
"opener:default",
|
|
|
|
|
"dialog:default",
|
|
|
|
|
"dialog:allow-save",
|
|
|
|
|
"dialog:allow-open",
|
2026-05-01 09:18:53 +00:00
|
|
|
"updater:default",
|
|
|
|
|
"process:default",
|
2026-07-01 07:40:29 +00:00
|
|
|
"clipboard-manager:allow-read-text",
|
|
|
|
|
"clipboard-manager:allow-write-html",
|
|
|
|
|
"clipboard-manager:allow-write-text",
|
2026-02-28 11:48:22 +00:00
|
|
|
{
|
|
|
|
|
"identifier": "fs:allow-read-file",
|
|
|
|
|
"allow": [{ "path": "**" }]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"identifier": "fs:allow-write-file",
|
|
|
|
|
"allow": [{ "path": "**" }]
|
2026-03-03 07:12:02 +00:00
|
|
|
},
|
2026-04-22 14:05:54 +00:00
|
|
|
{
|
|
|
|
|
"identifier": "fs:allow-mkdir",
|
|
|
|
|
"allow": [{ "path": "**" }]
|
|
|
|
|
},
|
2026-05-05 18:50:31 +00:00
|
|
|
{
|
|
|
|
|
"identifier": "fs:allow-remove",
|
|
|
|
|
"allow": [{ "path": "**" }]
|
|
|
|
|
},
|
2026-04-22 14:05:54 +00:00
|
|
|
{
|
|
|
|
|
"identifier": "fs:allow-watch",
|
|
|
|
|
"allow": [{ "path": "**" }]
|
|
|
|
|
},
|
2026-03-14 07:20:15 +00:00
|
|
|
"fs:allow-unwatch",
|
2026-03-14 15:58:25 +00:00
|
|
|
{
|
|
|
|
|
"identifier": "shell:allow-spawn",
|
|
|
|
|
"allow": [
|
2026-03-15 14:06:57 +00:00
|
|
|
{ "name": "claude-agent-acp", "cmd": "claude-agent-acp", "args": true },
|
2026-03-14 15:58:25 +00:00
|
|
|
{ "name": "codex-acp", "cmd": "codex-acp", "args": true },
|
Harden ACP transport, MCP server, and add permission dialog
- Extract mapUpdate to testable module, dynamic import for @tauri-apps/plugin-shell
- Add warnings for unhandled ACP content types and empty tool titles
- MCP server: session limit (max 10), fix null WS comparison, guard JSX preprocessing
- MCP server: read version from package.json instead of hardcoded 0.0.0
- MCP tests: use port 0 (OS-assigned) to prevent collision
- Connection error handling with user-friendly messages, stale session recovery
- Agent crash detection via close handler, destroying flag, buildCrashChunks
- Port collision: detect EADDRINUSE in vite-plugin stderr and log clear error
- Production Tauri: spawn openpencil-mcp via shell plugin, orphan reuse via health check
- Permission confirmation dialog (reka-ui AlertDialog) with queue, 60s auto-reject timeout
- Health check in ProviderSelect hides ACP agents when MCP server unavailable
- Move DESIGN_CONTEXT to app constants, add ACP_PERMISSION_TIMEOUT_MS
- 36 tests across 3 files (acp-transport, acp-permission, mcp-server)
- Update CHANGELOG, README, CONTRIBUTING, AGENTS.md
2026-03-15 13:37:15 +00:00
|
|
|
{ "name": "gemini", "cmd": "gemini", "args": true },
|
2026-04-23 11:05:19 +00:00
|
|
|
{ "name": "openpencil-mcp-http", "cmd": "openpencil-mcp-http", "args": true },
|
|
|
|
|
{ "name": "cmd", "cmd": "cmd", "args": true }
|
2026-03-14 15:58:25 +00:00
|
|
|
]
|
|
|
|
|
},
|
2026-03-14 07:20:15 +00:00
|
|
|
"shell:allow-stdin-write",
|
|
|
|
|
"shell:allow-kill"
|
Initial commit: Tauri + CanvasKit + React editor scaffold
- Tauri v2 desktop shell with 1280x800 window
- CanvasKit WASM (Skia) rendering via WebGL2
- Scene graph with typed nodes (Frame, Rectangle, Ellipse, Line, etc.)
- Skia renderer with fills, strokes, rounded corners, opacity, rotation
- Selection system with resize handles
- Undo/redo manager (inverse command pattern with batching)
- Bottom toolbar (Select, Frame, Rect, Ellipse, Line) matching Figma UI3
- Left layers panel, right properties panel
- Pan (scroll), zoom (Ctrl+scroll toward cursor)
- Keyboard shortcuts: V/F/R/O/L for tools, Cmd+Z undo, Backspace delete
- 5 demo shapes rendered on canvas
2026-02-27 12:48:29 +00:00
|
|
|
]
|
|
|
|
|
}
|