pmx-canvas 0.1.27 → 0.1.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,72 @@
3
3
  All notable changes to `pmx-canvas` are documented here. This project follows
4
4
  [Semantic Versioning](https://semver.org/).
5
5
 
6
+ ## [0.1.29] - 2026-06-06
7
+
8
+ ### Changed
9
+
10
+ - **Bullet graph nodes accept the conventional `actual` measure key** in
11
+ addition to `value`, so `data: [{ label, actual, target }]` renders
12
+ without an explicit `valueKey` instead of failing the data-key check.
13
+ - **Node-create MCP responses expose both `id` and a `nodeId` alias.**
14
+ All node-create tools (including SpecStream) now return both keys,
15
+ matching the existing external-app / web-artifact responses, so agents
16
+ using either key (or a cached schema) work.
17
+ - **Friendlier AX CLI errors for bare subcommands.** Running `pmx-canvas
18
+ ax event` (or `evidence`/`host`/`work`/`approval`/`review`) without the
19
+ action now suggests the full command (e.g. `ax event add`) or lists the
20
+ available actions instead of a generic unknown-command error.
21
+
22
+ ### Fixed
23
+
24
+ - **`pmx-canvas --mcp` no longer crashes with `EADDRINUSE`** when a daemon
25
+ already holds the target port for a *different* workspace. The MCP/SDK
26
+ auto-start now falls back to a free port (a same-workspace daemon is
27
+ still attached to as before) and prints a stderr note explaining how to
28
+ share one canvas (`PMX_CANVAS_URL` / `PMX_CANVAS_PORT` or run the daemon
29
+ from this workspace). An explicit SDK `start()` port is still honored
30
+ exactly unless `allowPortFallback` is passed.
31
+ - **Ledger nodes render body `content` as a log** — one line per entry,
32
+ no stray "Content" field label, and a literal `\n` (as the shell
33
+ passes through `--content "a\nb"`) is treated as a line break instead
34
+ of being shown verbatim. Structured key/value fields still render as
35
+ rows, now with a gap so the label never runs into the value.
36
+
37
+ ## [0.1.28] - 2026-06-06
38
+
39
+ ### Changed
40
+
41
+ - **BREAKING (SDK): `PmxCanvas.addNode()` now returns the created node**
42
+ (a `CanvasNodeState` with `id`, geometry, and data) instead of a bare
43
+ id string. Use `const { id } = canvas.addNode(...)` or keep the whole
44
+ node. The MCP / HTTP / CLI surfaces and the internal `CanvasAccess`
45
+ contract are unchanged (still id-based).
46
+
47
+ ### Fixed
48
+
49
+ - Tufte graph nodes (DotPlot/Bullet/Slopegraph) no longer flicker: the
50
+ chart-height ResizeObserver no longer feeds the document's own scroll
51
+ overflow back into its height.
52
+ - Expanded Tufte graph views now fill the modal instead of staying
53
+ tile-sized with whitespace.
54
+ - Graph node iframes no longer show a doubled scrollbar; a chart that
55
+ fits shows none, a dense chart shows exactly one.
56
+ - Excalidraw / ext-app nodes paint on first mount instead of rendering
57
+ black until a manual expand/collapse (a post-layout host-context
58
+ nudge is delivered once the iframe has settled).
59
+ - `image` and `ledger` nodes get roomier default sizes (480×360 /
60
+ 420×280) instead of a cramped 360-wide frame.
61
+ - `pmx-canvas web-artifact build` streams a stderr heartbeat during the
62
+ long install+bundle so agents don't see it as hung.
63
+ - json-render rejects an unknown `$`-directive (e.g. `$path`) with a
64
+ clear error pointing at `$state`, instead of rendering
65
+ `"[object Object]"`.
66
+ - Web-artifact script-path overrides are contained to the workspace with
67
+ a symlink-aware (realpath) check, fixing a false rejection on macOS.
68
+ - **Security:** the `/api/canvas/image/<id>` route now refuses to serve
69
+ files outside the workspace root (returns 403), closing a path-
70
+ traversal read (e.g. an image node pointed at `../../etc/passwd`).
71
+
6
72
  ## [0.1.27] - 2026-06-06
7
73
 
8
74
  Big release: the full host-agnostic agent-experience (AX) primitive
@@ -1349,6 +1415,8 @@ otherwise have to discover by trial and error.
1349
1415
  - Regression coverage for snapshot flat-`id` aliases on both MCP and
1350
1416
  HTTP surfaces, plus async / top-level-`await` WebView script bodies.
1351
1417
 
1418
+ [0.1.29]: https://github.com/pskoett/pmx-canvas/releases/tag/v0.1.29
1419
+ [0.1.28]: https://github.com/pskoett/pmx-canvas/releases/tag/v0.1.28
1352
1420
  [0.1.27]: https://github.com/pskoett/pmx-canvas/releases/tag/v0.1.27
1353
1421
  [0.1.26]: https://github.com/pskoett/pmx-canvas/releases/tag/v0.1.26
1354
1422
  [0.1.25]: https://github.com/pskoett/pmx-canvas/releases/tag/v0.1.25