pmx-canvas 0.6.1 → 0.6.3
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 +41 -0
- package/Readme.md +14 -2
- package/dist/canvas/global.css +22 -3
- package/dist/canvas/index.js +64 -64
- package/dist/json-render/index.js +57 -57
- package/dist/types/client/canvas/auto-fit.d.ts +3 -0
- package/dist/types/client/canvas/use-pan-zoom.d.ts +2 -1
- package/dist/types/client/nodes/use-iframe-content-height.d.ts +3 -3
- package/dist/types/client/state/human-store.d.ts +1 -0
- package/dist/types/json-render/catalog.d.ts +20 -20
- package/dist/types/json-render/schema.d.ts +40 -0
- package/dist/types/mcp/skills.d.ts +13 -0
- package/dist/types/server/bundled-skills.d.ts +32 -4
- package/docs/http-api.md +5 -1
- package/docs/mcp.md +35 -1
- package/docs/node-types.md +1 -1
- package/docs/product-context-vision-2026-09.md +16 -5
- package/docs/product-vision-2026-09.md +4 -2
- package/package.json +11 -11
- package/skills/json-render-mcp/SKILL.md +118 -2
- package/skills/pmx-canvas/SKILL.md +42 -16
- package/skills/pmx-canvas/evals/evals.json +1 -1
- package/skills/pmx-canvas/references/excalidraw-diagram-authoring.md +5 -0
- package/skills/pmx-canvas/references/full-reference.md +5 -4
- package/skills/pmx-canvas/references/installing-pmx-canvas.md +5 -5
- package/skills/pmx-canvas-testing/SKILL.md +13 -4
- package/skills/web-artifacts-builder/scripts/bundle-artifact.sh +11 -12
- package/src/client/canvas/CanvasNode.tsx +9 -12
- package/src/client/canvas/CanvasViewport.tsx +10 -34
- package/src/client/canvas/ContextMenu.tsx +13 -0
- package/src/client/canvas/EdgeLayer.tsx +2 -2
- package/src/client/canvas/SessionPanel.tsx +23 -4
- package/src/client/canvas/ShortcutOverlay.tsx +2 -2
- package/src/client/canvas/auto-fit.ts +20 -1
- package/src/client/canvas/use-pan-zoom.ts +16 -3
- package/src/client/nodes/ExtAppFrame.tsx +7 -1
- package/src/client/nodes/use-iframe-content-height.ts +44 -24
- package/src/client/state/human-store.ts +6 -6
- package/src/client/state/sse-bridge.ts +3 -1
- package/src/client/theme/global.css +22 -3
- package/src/json-render/catalog.ts +6 -0
- package/src/json-render/renderer/index.tsx +17 -0
- package/src/json-render/schema.ts +4 -0
- package/src/mcp/server.ts +9 -4
- package/src/mcp/skills.ts +47 -0
- package/src/server/bundled-skills.ts +92 -53
- package/src/server/canvas-operations.ts +2 -2
- package/src/server/operations/ops/nodes.ts +43 -11
- package/src/server/operations/ops/viewport.ts +6 -1
- package/src/server/server.ts +9 -9
- package/src/server/web-artifacts/scripts/bundle-artifact.sh +29 -8
- package/src/shared/content-height-reporter.ts +4 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,47 @@
|
|
|
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.6.3] - 2026-09-23
|
|
7
|
+
|
|
8
|
+
### Added
|
|
9
|
+
|
|
10
|
+
- MCP Skills extension support lets compatible hosts discover bundled skills and read their references, scripts, and assets on demand.
|
|
11
|
+
- JSON-render Cards support custom header and footer slots around their body content.
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- Updated the json-render packages to 0.21.0.
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
|
|
19
|
+
- JSON-render validation preserves initial state, repeat definitions, watchers, and named-slot references instead of dropping them.
|
|
20
|
+
- Authored iframe cards remeasure changing content and leave space around neighbors when growing automatically.
|
|
21
|
+
- Automatic card fitting waits for human grabs to end, and relocations can be undone.
|
|
22
|
+
- Repointing file nodes resolves relative paths against the workspace and rejects unreadable targets without losing the existing content or watcher.
|
|
23
|
+
- Bundled installation instructions match the package version, and paint guidance requires visual confirmation in the affected host.
|
|
24
|
+
|
|
25
|
+
## [0.6.2] - 2026-09-09
|
|
26
|
+
|
|
27
|
+
### Changed
|
|
28
|
+
|
|
29
|
+
- Double-left-click opens the board, node, or edge menu; right-button dragging pans with a grabbing-hand cursor, while single-left-click still selects.
|
|
30
|
+
- Rename nodes through their action menu instead of double-clicking the title.
|
|
31
|
+
- The Session panel starts compact, opens for pending approvals, and closes after they settle unless the user opened it manually.
|
|
32
|
+
- Skill guidance distinguishes product-source testing from consumer testing and requested app dimensions from persisted post-mount sizes.
|
|
33
|
+
|
|
34
|
+
### Fixed
|
|
35
|
+
|
|
36
|
+
- Focusing a node stays clear of the minimap and command bar instead of being interrupted by server layout or window-size updates.
|
|
37
|
+
- Relative file paths resolve against the configured workspace rather than the daemon's process directory.
|
|
38
|
+
- Published artifact builds automatically clear a corrupted Parcel cache and retry once; genuine build errors still fail.
|
|
39
|
+
- Expanded embedded apps accept their first click reliably during loading in Chromium.
|
|
40
|
+
- The extreme resize corner is hittable, and all timeline filter chips fit on one row.
|
|
41
|
+
- WebView startup errors now retain the Chrome constructor failure in `lastError`.
|
|
42
|
+
|
|
43
|
+
### Known limitations
|
|
44
|
+
|
|
45
|
+
- Native Copilot/WebKit Excalidraw tiles can still appear blank despite a successful paint probe; expand-close remains a workaround, not a confirmed first-render fix.
|
|
46
|
+
|
|
6
47
|
## [0.6.1] - 2026-09-07
|
|
7
48
|
|
|
8
49
|
The Bun 1.4.2 upgrade and fixes from the 0.5.1 field reports (Amp orb, Copilot app).
|
package/Readme.md
CHANGED
|
@@ -4,6 +4,12 @@ pmx-canvas is a visual workspace for planning, discovery, analysis, coordination
|
|
|
4
4
|
and orchestrating work with agents—from exploring an idea to directing its
|
|
5
5
|
execution and carrying the learning forward.
|
|
6
6
|
|
|
7
|
+
**The board is your extended memory and your agent's working memory.** Use it
|
|
8
|
+
to research, analyze, work with dashboards, and start or plan coding and other
|
|
9
|
+
knowledge work—not just to prepare context for an agent. The [long-term vision](docs/product-context-vision-2026-09.md#work-becomes-memory-and-memory-supports-more-work)
|
|
10
|
+
connects that work to a growing memory graph and maintained wiki, bringing useful
|
|
11
|
+
understanding back into whatever you do next.
|
|
12
|
+
|
|
7
13
|
**A moldable canvas for agent-assisted thinking.** An infinite 2D surface
|
|
8
14
|
where files, plans, status, charts, fetched web pages, annotations, code
|
|
9
15
|
diffs, and diagrams live side by side. Every node carries its own renderer; agents
|
|
@@ -36,7 +42,7 @@ communication — proximity means relatedness, pinning means *focus here*.
|
|
|
36
42
|
Drag, group, arrange, and **pin** nodes spatially. Connect nodes with typed
|
|
37
43
|
edges — flow, depends-on, relation, references — drawn as smooth curves that
|
|
38
44
|
leave each card perpendicular to its border and bend toward their target.
|
|
39
|
-
Edges stay editable in place:
|
|
45
|
+
Edges stay editable in place: double-click one to relabel, retype, restyle, or
|
|
40
46
|
delete it, or click it and press Delete. Curation is the channel
|
|
41
47
|
from human intent to agent context — the agent reads `canvas://pinned-context`
|
|
42
48
|
and `canvas://spatial-context` (proximity clusters, reading order, pinned
|
|
@@ -359,7 +365,7 @@ services:
|
|
|
359
365
|
```bash
|
|
360
366
|
# .agents/setup — install the CLI (pin the exact version: a fresh orb running
|
|
361
367
|
# @latest can silently pick up a newer release than the one you validated)
|
|
362
|
-
npm install -g pmx-canvas@0.6.
|
|
368
|
+
npm install -g pmx-canvas@0.6.3
|
|
363
369
|
```
|
|
364
370
|
|
|
365
371
|
The server binds the portal-assigned `$PORT` automatically (gated on the
|
|
@@ -405,6 +411,12 @@ the agent can read `canvas://skills` and pull in companion skills
|
|
|
405
411
|
`control-session-orchestrator`, `web-artifacts-builder`, `json-render-*`,
|
|
406
412
|
`pmx-canvas-testing`, `playwright-cli`, etc.) as the work demands.
|
|
407
413
|
|
|
414
|
+
The MCP server also supports the [Skills extension](docs/mcp.md#skills-extension-sep-2640):
|
|
415
|
+
compatible hosts discover skills through `skills/list` and read instructions, references,
|
|
416
|
+
scripts, and assets at `skill://<name>/<path>`. Files come from the running MCP package;
|
|
417
|
+
restart MCP after an upgrade. Host support determines automatic skill loading, and reading
|
|
418
|
+
a skill never grants permission to execute its scripts. Filesystem installation remains available.
|
|
419
|
+
|
|
408
420
|
## Documentation
|
|
409
421
|
|
|
410
422
|
- **[Node types](docs/node-types.md)** — every node type, edge types, and
|
package/dist/canvas/global.css
CHANGED
|
@@ -1377,7 +1377,7 @@ body,
|
|
|
1377
1377
|
animation: session-panel-in 180ms ease;
|
|
1378
1378
|
}
|
|
1379
1379
|
.session-panel.is-collapsed {
|
|
1380
|
-
width:
|
|
1380
|
+
width: 40px;
|
|
1381
1381
|
align-items: center;
|
|
1382
1382
|
padding-top: 10px;
|
|
1383
1383
|
gap: 10px;
|
|
@@ -1390,6 +1390,17 @@ body,
|
|
|
1390
1390
|
text-transform: uppercase;
|
|
1391
1391
|
color: var(--c-dim);
|
|
1392
1392
|
}
|
|
1393
|
+
.session-collapsed-live {
|
|
1394
|
+
display: inline-flex;
|
|
1395
|
+
flex-direction: column;
|
|
1396
|
+
align-items: center;
|
|
1397
|
+
gap: 4px;
|
|
1398
|
+
font: 9px var(--mono);
|
|
1399
|
+
color: var(--c-dim);
|
|
1400
|
+
}
|
|
1401
|
+
.session-collapsed-live .session-live-dot {
|
|
1402
|
+
background: var(--c-ok);
|
|
1403
|
+
}
|
|
1393
1404
|
|
|
1394
1405
|
.session-panel-header {
|
|
1395
1406
|
height: var(--hud-bar-height);
|
|
@@ -1717,7 +1728,7 @@ body,
|
|
|
1717
1728
|
}
|
|
1718
1729
|
.session-timeline-filters .activity-filter {
|
|
1719
1730
|
flex-shrink: 0;
|
|
1720
|
-
padding: 2px
|
|
1731
|
+
padding: 2px 3px;
|
|
1721
1732
|
}
|
|
1722
1733
|
|
|
1723
1734
|
.session-timeline-row {
|
|
@@ -3745,6 +3756,12 @@ body,
|
|
|
3745
3756
|
}
|
|
3746
3757
|
|
|
3747
3758
|
/* Node resize handle */
|
|
3759
|
+
.canvas-node:has(.node-resize-handle) {
|
|
3760
|
+
/* Keep the four-pixel corner grab inside the shell's inner clip, not on
|
|
3761
|
+
its rounded border. The other corners retain the standard card radius. */
|
|
3762
|
+
border-bottom-right-radius: 8px;
|
|
3763
|
+
}
|
|
3764
|
+
|
|
3748
3765
|
.canvas-node .node-resize-handle {
|
|
3749
3766
|
position: absolute;
|
|
3750
3767
|
bottom: 0;
|
|
@@ -3789,7 +3806,9 @@ html.is-node-dragging .attention-field-layer {
|
|
|
3789
3806
|
}
|
|
3790
3807
|
|
|
3791
3808
|
html.is-node-dragging,
|
|
3792
|
-
html.is-node-dragging
|
|
3809
|
+
html.is-node-dragging *,
|
|
3810
|
+
html.is-canvas-panning,
|
|
3811
|
+
html.is-canvas-panning * {
|
|
3793
3812
|
cursor: grabbing !important;
|
|
3794
3813
|
user-select: none !important;
|
|
3795
3814
|
-webkit-user-select: none !important;
|