pmx-canvas 0.2.6 → 0.2.7

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
@@ -5,6 +5,51 @@ All notable changes to `pmx-canvas` are documented here. This project follows
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [0.2.7] - 2026-06-25
9
+
10
+ ### Fixed
11
+
12
+ - **Ghost Cursor of Intent is no longer hidden behind the welcome card on an empty board (report
13
+ Finding J).** The intent ghost lives inside the zoom/pan world transform (its own stacking
14
+ context), so its high z-index could not lift it above the `.welcome-card`, which is a sibling
15
+ outside the transform. The welcome card is now suppressed while a ghost intent is live
16
+ (`intents.value.size > 0`), so a `canvas_intent` signal on a fresh board is visible immediately;
17
+ the card returns when the intent clears/settles and the board is still empty. Verified by
18
+ screenshot in the WebKit backend.
19
+ - **MCP `--mcp` no longer silently splits to (or silently adopts) a wrong workspace — structural
20
+ fix (report Finding I).** The GitHub Copilot adapter spawns `pmx-canvas --mcp` from an incidental
21
+ cwd (e.g. `~/.copilot`); the old code then either split to a hidden fallback port (when the
22
+ preferred port was held) or adopted that incidental cwd as the workspace (when the port was free),
23
+ so writes landed on a canvas the project panel never renders. Now, in `createCanvasAccess`:
24
+ - **Port held by a different-workspace daemon →** the MCP server **attaches** to it (inherits its
25
+ workspace) so writes are visible where the panel renders, instead of splitting.
26
+ - **Free port + incidental launch cwd (`~/.copilot`-shaped) →** it still binds (the agent always
27
+ gets a working canvas) but emits a loud, actionable stderr warning instead of silently adopting
28
+ the cwd; a race-tolerant re-probe first attaches to any daemon that appeared on the port.
29
+ - **`PMX_CANVAS_WORKSPACE_ROOT=<abs project root>`** (new) pins the workspace for both the lookup
30
+ and the bound daemon (`startCanvasServer` honors it), overriding the launch cwd — the deterministic
31
+ host fix. `PMX_CANVAS_ALLOW_WORKSPACE_SPLIT=1` (or a distinct `PMX_CANVAS_PORT`) forces a separate
32
+ canvas. The incidental detector is **positive-signal only** (home dir / dot-child of home), so the
33
+ `mkdtemp` temp dirs the test suite runs from are never misflagged — startup behavior is
34
+ byte-identical for real projects and tests.
35
+ Verified on the real `--mcp` stdio path: port-held → attach (no fallback); incidental + free →
36
+ bind-but-warn (no split); `PMX_CANVAS_WORKSPACE_ROOT` → binds the project root (no warning); real
37
+ project → binds (no warning). Pure `shouldAttachToExistingDaemon` + `looksLikeIncidentalCwd`
38
+ helpers are unit-tested.
39
+
40
+ ### Docs
41
+
42
+ - **Clarified the `color` contract: renderer color vs persisted metadata (report Finding H).** A
43
+ top-level `color` is a renderer parameter only for `group` (frame accent) and `graph` nodes; on
44
+ `markdown` / `status` / `context` it is dropped, and while an arbitrary `data.color` posted under
45
+ `data` persists like any `data.*` metadata, it is not read as a render color for basic node types.
46
+ The reference now states this renderer-vs-storage distinction so docs/schema/runtime agree.
47
+ - **Made the WebView automation timeout error actionable (report Finding G).** The chrome backend is
48
+ known-flaky on some hosts (Bun.WebView), reproduced in both the Copilot and Codex hosts; the webkit
49
+ backend (the macOS default) works. The timeout error now points to `start --backend webkit` and the
50
+ already-configurable `PMX_CANVAS_WEBVIEW_TIMEOUT_MS` instead of a dead-end "may be unavailable".
51
+ Not a PMX regression — no canvas source touches the WebView/automation path.
52
+
8
53
  ## [0.2.6] - 2026-06-25
9
54
 
10
55
  ### Fixed
@@ -2488,6 +2533,7 @@ otherwise have to discover by trial and error.
2488
2533
  - Regression coverage for snapshot flat-`id` aliases on both MCP and
2489
2534
  HTTP surfaces, plus async / top-level-`await` WebView script bodies.
2490
2535
 
2536
+ [0.2.7]: https://github.com/pskoett/pmx-canvas/releases/tag/v0.2.7
2491
2537
  [0.2.6]: https://github.com/pskoett/pmx-canvas/releases/tag/v0.2.6
2492
2538
  [0.2.5]: https://github.com/pskoett/pmx-canvas/releases/tag/v0.2.5
2493
2539
  [0.2.4]: https://github.com/pskoett/pmx-canvas/releases/tag/v0.2.4