openpencil/apps/web
Fini 59f25dac82 feat(ai): add_chart_line_v0 + add_chart_pie_v0 — two chart skeletons (46th, 47th)
chart_line: polyline through N data points (normalized to max),
optional dots at each vertex. Emits a `path` node with computed SVG
`d`="M x y L x y …" + N `ellipse` dots. fit_content width = values
× point_spacing.

chart_pie: N colored slices via ellipse `startAngle`/`sweepAngle`
arc support. NOT the "stacked full ellipses" anti-pattern — each
slice has a UNIQUE sweep range (sums to 360°). Supports donut cut-
out via `inner_radius_ratio`. Default 6-color palette rotates.
All-zero input throws (degenerate chart can't be drawn).

Wired across all three paths + elements.md decision-tree entries +
keyword map + examples. Both use layout=none (absolute positioning
for vertices / slices stacked at origin).

Tests:
- pen-mcp: 8 cases chart_line + 8 cases chart_pie (height math,
  clamp bounds, custom colors, donut, error paths, id uniqueness)
- Parametric coverage auto-extended (+2 cases each in 9 files)
- Total delta: 2979 → 3027 passing (+48).

Closes #45 + #46; covers part of #50 (charts entries).
2026-04-22 06:35:00 +08:00
..
public V0.5.0 (#67) 2026-03-22 09:44:04 +08:00
server feat(ai): add_chart_line_v0 + add_chart_pie_v0 — two chart skeletons (46th, 47th) 2026-04-22 06:35:00 +08:00
src feat(ai): add_chart_line_v0 + add_chart_pie_v0 — two chart skeletons (46th, 47th) 2026-04-22 06:35:00 +08:00
CLAUDE.md V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
components.json V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
dev.ts V0.7.2-bugfix (#109) 2026-04-14 21:42:56 +08:00
package.json chore(release): bump to v0.7.4 2026-04-17 19:20:19 +08:00
tsconfig.json V0.7.2-bugfix (#109) 2026-04-14 21:42:56 +08:00
vite.config.ts V0.7.0 (#95) 2026-04-11 23:25:13 +08:00