v1.8.0 — Point-and-tell feedback
Click the design. Tell the agent. Done.
Until now, feedback on a design meant describing it in chat: "the third card — no, the other one — make the top part tighter." The agent had to guess which node you meant. v1.8 makes human critique machine-readable: click any element in the viewer, type a note, and the agent receives { nodeId, comment } — anchored to the exact node, with enough context to act immediately.
The loop
- Point — toggle Comment in the viewer's detail page and click any element. A breadcrumb in the popover re-scopes the anchor from the exact element up to its card, its section, or the whole page.
- Tell — type the note. It lands on the canvas itself (
metadata.feedback— plain JSON, git-diffable in bound repos) and reaches a running MCP server with no restart. - The agent acts —
get_feedbackreturns open comments with a node snapshot (type/name/text), so the agent translates each note into edits without extra lookups.resolve_feedbackcloses items with a one-line reply that appears next to your comment in the viewer.
Comments survive redesigns: if the anchored node is later deleted, the entry comes back flagged orphaned instead of vanishing — the concern usually still applies to the node's replacement. And because comments are just JSON in .framesmith/, a teammate's git pull delivers your design notes to their agent.
Impossible to miss
Open feedback blocks presenting, at the same bar as open inspector issues:
canvas_evaluate's directive staysNOT READYwhile comments are open — even at a 99/100 score. The human's note outranks the heuristics.canvas_listrows carry anopenFeedbackcount;initreports the workspace total at session start.- The viewer's Feedback tab shows an open-count badge, click-to-highlight, resolve/delete, and the agent's replies.
New tools
| Tool | What it does |
|---|---|
get_feedback |
Open comments + node context; omit canvasId to sweep the whole context |
resolve_feedback |
Close entries with resolvedBy: "agent" and a reply note |
Fixes
ensureFreshnow covers the global store too: a comment saved by the standalone viewer on an unbound canvas reaches a separately running MCP server without a restart (and the server no longer risks clobbering it). Previously repo-bound only. (#125)
Upgrade
npx framesmith picks up v1.8.0 automatically on next launch — restart your MCP server (or reconnect your client) and the new tools, instructions, and viewer UI are live. No config or data changes; existing canvases are untouched.
Phase 21 — spec docs/specs/PHASE-21-SPEC.md; PRs #120–#125. Dogfooded live before release: the screenshot above is a real session — the resolved comment is the maintainer's, and the reply is the agent's.
