openpencil/src
Kayshen Xu 7db7a99ff2 V0.0.2 (#9)
* chore(docs): add video demo to README.md for enhanced project visibility

* refactor(ai): centralize Claude Agent SDK env resolution with debug logging and model retry

Extract shared buildClaudeAgentEnv() and getClaudeAgentDebugFilePath() into
resolve-claude-agent-env.ts to eliminate duplicated env setup across all
server endpoints. Add model fallback retry logic (retry without explicit
model on exit code 1) and diagnostic hints from debug log tail on failures.

* fix(canvas): normalize layout justify/align values from CSS aliases

AI-generated nodes may use CSS-style values like "flex-start",
"space-between", "middle" etc. Add normalizeJustifyContent and
normalizeAlignItems to map these to internal enum values in both
the layout engine and the property panel.

* fix(canvas): improve text and path rendering accuracy

- Remove icon-specific bounding box override on path scaling to prevent
  pathOffset drift that visually offsets icons in logo containers
- Only use Textbox for explicit fixed-width text modes instead of any
  node with width > 0, preventing unwanted word wrapping on auto-width text
- Add widthSafetyFactor for Latin text estimation (1.14x vs 1.06x CJK)
  to reduce accidental line wraps from font width variation

* feat(ai): add input icon affordance rules and trailing icon alignment

Prompt AI to include semantic icons in form inputs (search, password,
email). Add normalizeInputTrailingIconAlignment post-pass in
role-resolver to auto-set justifyContent="space_between" on input
frames with a trailing icon node.

* feat(ai): persist model selection across sessions via localStorage

Add preferredModel and selectModel to ai-store with localStorage
read/write. Hydrate on mount to restore user's last chosen model.
Add isHydrated flag to agent-settings-store to prevent race
conditions during provider list construction.

---------

Co-authored-by: Fini <fini.yang@gmail.com>
2026-02-26 09:38:48 +08:00
..
canvas V0.0.2 (#9) 2026-02-26 09:38:48 +08:00
components V0.0.2 (#9) 2026-02-26 09:38:48 +08:00
hooks feat(mcp): implement OpenPencil file format and MCP server integration 2026-02-22 11:48:52 +08:00
lib feat(editor): scaffold core canvas engine and editor layout 2026-02-18 21:49:16 +08:00
mcp feat(mcp): implement OpenPencil file format and MCP server integration 2026-02-22 11:48:52 +08:00
routes feat(chat): enhance chat streaming with 'thinking' state and improve SVG handling in toolbar 2026-02-19 12:52:30 +08:00
services V0.0.2 (#9) 2026-02-26 09:38:48 +08:00
stores V0.0.2 (#9) 2026-02-26 09:38:48 +08:00
types feat(panels): add icon section with library picker and in-place path replacement 2026-02-24 00:25:49 +08:00
uikit feat(mcp): implement OpenPencil file format and MCP server integration 2026-02-22 11:48:52 +08:00
utils fix(ai): normalize gradient stop offsets to prevent NaN display 2026-02-24 04:06:19 +08:00
variables feat(history): increase maximum undo/redo states and enhance batch handling 2026-02-20 15:41:45 +08:00
router.tsx Initialize OpenPencil project with essential files and configurations 2026-02-17 21:14:16 +08:00
routeTree.gen.ts Initialize OpenPencil project with essential files and configurations 2026-02-17 21:14:16 +08:00
styles.css feat(electron): integrate Electron framework for desktop application support 2026-02-20 20:19:06 +08:00