Danila Poyarkov
bf232bac8b
docs: centralize roadmap
2026-05-22 20:02:05 +03:00
Danila Poyarkov
77307e17da
docs: drop README roadmap
2026-05-22 19:54:46 +03:00
Danila Poyarkov
b750d1f3dc
docs: generate llms files
...
- Generate llms.txt and llms-full.txt from VitePress content loader
- Advertise the agent-readable docs through alternate links
2026-05-22 16:03:04 +03:00
Danila Poyarkov
3850be9512
build: publish node-compatible packages
2026-05-21 17:03:19 +03:00
Danila Poyarkov
e3d6056bf5
docs: update MCP setup and landing screenshot
2026-05-19 17:58:08 +03:00
Danila Poyarkov
99484bcee5
docs: update roadmap
2026-05-18 18:28:45 +03:00
Danila Poyarkov
1ceabf7938
feat(components): add local assets panel
...
- Add a left-sidebar Assets tab for local components and component sets
- Insert component set assets as instances of the default variant
- Showcase local component set insertion in the demo
- Cover search, empty state, standalone insert, and variant switching with Playwright
2026-05-12 17:30:35 +03:00
Danila Poyarkov
ddf415ec30
feat(tauri): support desktop file associations
...
- Register .fig and .pen files with desktop bundles
- Open associated files on startup and via single-instance handoff
- Reuse the existing Tauri file open flow without broad filesystem scopes
2026-05-12 16:12:16 +03:00
Danila Poyarkov
51213d014e
docs: update README and AGENTS.md for new features
...
- Update tool count from 90 to 100+
- Document OPENPENCIL_MCP_ROOT env var for file path scoping
- Document MCP-only tools, export path param, and prompt markdown files
in AGENTS.md
2026-04-22 18:12:15 +03:00
Danila Poyarkov
1c99e6a9c2
fix(acp): show install errors for missing agent CLIs ( #176 )
...
* fix(acp): show install errors for missing agent CLIs (#172 )
* Use npm for install commands, toasts for errors, tighten error matching
- Replace bun add -g with npm i -g (universal baseline)
- Replace initError inline banner with toast.show() (consistent with rest of app)
- Remove overly broad 'not found' / 'no such file' from isMissingCommandError
* Refactor toast API to toast.info/warning/error
2026-04-06 14:19:38 +03:00
Danila Poyarkov
dd1b3b7b1a
Update README roadmap
2026-03-31 18:34:01 +03:00
Danila Poyarkov
c57e636dcb
Port design linter from figma-use
2026-03-28 16:33:40 +03:00
Danila Poyarkov
b072c69a2f
Tweak README note formatting
2026-03-28 15:46:49 +03:00
Danila Poyarkov
9281c408e1
Update README project structure
2026-03-28 15:45:11 +03:00
Danila Poyarkov
890fb4f6d5
Update README and docs for new formats and SDK
2026-03-28 15:42:21 +03:00
Danila Poyarkov
d52d38cb3b
Remove WebGPU backend
2026-03-27 22:03:19 +03:00
Danila Poyarkov
99e646aaa4
Refine docs structure for SDK and automation
2026-03-24 23:24:08 +03:00
Anton A S
63f3ef3755
Show agent name in model selector for ACP, fix model dropdown, update docs
2026-03-15 18:13:29 +03:00
Anton A S
583b03eb3b
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 16:49:43 +03:00
Danila Poyarkov
fe755fbb85
Release v0.9.0
2026-03-09 17:43:11 +03:00
Danila Poyarkov
f2ef9c976d
XPath query for node selection ( #82 )
...
* Add XPath query for node selection
- packages/core/src/xpath.ts: XPath engine using fontoxpath with custom
DOM facade over SceneGraph nodes
- RPC command: 'query' with selector, page, limit params
- CLI command: 'open-pencil query <file> <xpath>' with --json, --page, --limit
- AI/MCP tool: 'query_nodes' with XPath examples in description
- Queryable attributes: name, width, height, x, y, visible, opacity,
cornerRadius, fontSize, fontFamily, fontWeight, layoutMode, itemSpacing,
padding*, strokeWeight, rotation, locked, blendMode, text, lineHeight,
letterSpacing
* Add tests and docs for XPath query
- 9 unit tests for queryByXPath/matchByXPath core functions
- 6 tool tests for query_nodes AI/MCP tool
- README: query examples in CLI section
- VitePress docs: patterns, queryable attributes, example output
- CHANGELOG: feature entry
* Lazy-load fontoxpath to avoid bundling in desktop app
- Dynamic import() instead of static import for fontoxpath
- queryByXPath/matchByXPath now async (they were sync before)
- RpcCommand.execute allows R | Promise<R> for async commands
- Fix 2 lint errors (unnecessary optional chain, always-truthy)
- Update all tests and CLI to await results
2026-03-09 15:32:27 +03:00
Danila Poyarkov
c98ac0f230
Update README and docs for CSS Grid support
...
- Add 'Auto layout & CSS Grid' to README features
- Update architecture, tech-stack, features, figma-comparison, comparison
- Mark grid as ✅ in all 7 locales
- Replace 'blocked on upstream' with Yoga fork links
2026-03-08 18:29:44 +03:00
Danila Poyarkov
b485778dfa
Move Installation above features
2026-03-08 10:47:42 +03:00
Danila Poyarkov
c6c681c25a
Restructure README: lead with screenshot and features, show CLI/AI output, move contributor docs down
2026-03-08 10:46:38 +03:00
Danila Poyarkov
af2f65b390
Update CLI section: separate file operations from app control
2026-03-08 10:43:14 +03:00
Danila Poyarkov
0109d33846
Add AI agent skill to README and docs
...
- README: new 'AI Agent Skill' section with install command
- MCP tools reference: skill section, fix tool count 78→90,
add 10 missing tools (export_image, export_svg, flatten_nodes,
list_fonts, page_bounds, set_layout_child, set_text_properties,
viewport_get, viewport_set, viewport_zoom_to_fit)
- Features page: mention skill with install command
- All 6 locales updated
2026-03-08 01:08:28 +03:00
Danila Poyarkov
c2710d11fb
Fix roadmap: individual strokes already shipped, restore skewing/OkHCL
2026-03-08 00:07:39 +03:00
Danila Poyarkov
d84f165a27
Update README roadmap, features, tool counts, and project structure
2026-03-08 00:04:22 +03:00
Danila Poyarkov
6ec8fc518b
Move demo to /demo route, add @unhead/vue for title management
...
- / shows empty canvas
- /demo loads demo content (for app.openpencil.dev landing link)
- Title template: '{page} — OpenPencil' via useHead
- 'Try it online' links in README and docs point to /demo
2026-03-06 20:54:48 +03:00
Danila Poyarkov
df8e303498
Add Homebrew tap with auto-update workflow ( #61 )
2026-03-06 18:08:47 +03:00
Danila Poyarkov
698ffe389a
Remove Gatekeeper workaround — app is now code-signed
2026-03-04 01:45:29 +03:00
Danila Poyarkov
3f4169e32d
Add macOS Gatekeeper workaround to README and docs
2026-03-03 21:19:07 +03:00
Danila Poyarkov
0c3cfcd1cc
Update roadmap: .fig compatibility, shaders, component libraries
2026-03-03 18:08:03 +03:00
Peter
31d614a272
fix(mcp): harden HTTP transport defaults ( #26 )
2026-03-03 17:19:08 +03:00
Danila Poyarkov
6f4439855e
Update README roadmap and tool counts
2026-03-02 23:43:39 +03:00
Danila Poyarkov
75cc653efc
Fix Kiwi format description — same binary format as .fig files, not a clipboard format
2026-03-02 15:28:24 +03:00
Danila Poyarkov
9103d1b554
Highlight copy & paste with Figma in README and docs
2026-03-02 15:26:06 +03:00
Danila Poyarkov
d93bcab0b6
Add install instructions for @open-pencil/mcp
2026-03-02 14:28:56 +03:00
Danila Poyarkov
4ad90d4819
Add MCP server package with stdio and HTTP transports
...
29 tools: open_file, save_file, new_document + all 26 from @open-pencil/core.
Stdio for MCP clients (Claude Code, Cursor), HTTP (Hono + Streamable HTTP
with sessions) for scripts, browser extensions, CI.
Runs on both Bun and Node.js (via tsx).
2026-03-02 14:20:49 +03:00
Danila Poyarkov
c3c5253642
Acknowledge Anton Soldatov for docs
2026-03-02 12:27:05 +03:00
Danila Poyarkov
c2e77ff63d
Fix Figma MCP timeline, update tool counts to 26, add AI providers to roadmap
2026-03-02 08:19:08 +03:00
Danila Poyarkov
d24e0ee767
Style roadmap as blockquote
2026-03-02 08:00:58 +03:00
Danila Poyarkov
ca5f0929d1
Add roadmap to README, update plan.md to current state
2026-03-02 07:56:52 +03:00
Danila Poyarkov
a9c096a69d
Fix npm publish: pnpm for workspace resolution, update README, read CLI version from package.json
2026-03-01 22:44:56 +03:00
Danila Poyarkov
f90e1400b7
P2P collaboration: cursors, follow mode, cleanup
...
- Broadcast cursor position from canvas mouse move via awareness
- Broadcast selection changes via reactive watcher on selectedIds
- Follow mode: click peer avatar to track their viewport (pan + zoom)
- Zoom broadcast via watcher on store.state.zoom, not just mouse move
- Figma-style cursor arrows: colored fill, white border, name pill
- Stale cursor cleanup: removeAwarenessStates on peer leave
- MQTT signaling (replace Nostr), STUN + TURN ICE servers
- Collab constants extracted to src/constants.ts
- crypto.getRandomValues() replaces Math.random() everywhere
- Provide/inject for collab composable (COLLAB_KEY)
- Update README (collab section, tech stack), CHANGELOG, AGENTS.md
- AGENTS.md: release process, CI workflows, documentation guidelines
2026-03-01 18:11:07 +03:00
Danila Poyarkov
8695ba6d1b
Emphasize no subscription, bring your own API key
2026-03-01 17:24:54 +03:00
Danila Poyarkov
9f8242bce5
Add download links to README, docs landing, and getting started
2026-03-01 16:32:45 +03:00
Danila Poyarkov
515c8125ed
Add app and docs links to README
2026-03-01 16:03:25 +03:00
Danila Poyarkov
0f0ca8db4b
Update screenshot, remove duplicate from repo root
...
Single screenshot lives in packages/docs/public/. README references it
from there. Custom VitePress layout places it between hero and features.
2026-03-01 15:57:01 +03:00
Anton A S
2b5f6d58c0
Merge remote-tracking branch 'origin/master' into add-vitepress-docs
2026-03-01 13:51:56 +03:00