Skip to content

Releases

vilsem-mcp 0.9.3

Choose a tag to compare

@github-actions github-actions released this 13 Nov 06:57
d54a8c9

What's Changed

  • chore: pin the Claude Code plugin to v0.9.2 by @bcsnpc in #14
  • chore: list vilsem-mcp on the official MCP Registry by @bcsnpc in #15
  • ci: publish plain versions as normal releases marked Latest by @bcsnpc in #16
  • release: 0.9.3 on core 0.8.3 / renderer 4.46 (third-party notices) by @bcsnpc in #17

Full Changelog: v0.9.2...v0.9.3

vilsem-mcp 0.9.2

Choose a tag to compare

@github-actions github-actions released this 13 Nov 02:57
c3ed170

What's Changed

  • docs: README fixes from the 0.9.1 fresh-user test by @bcsnpc in #9
  • feat: Claude Code plugin marketplace and Claude Desktop bundle build by @bcsnpc in #10
  • docs: make the Claude plugin ready for the Anthropic plugin directory by @bcsnpc in #11
  • docs: link the Vilsem Prompt Book from the README by @bcsnpc in #12
  • release: 0.9.2 on core 0.8.2 / renderer 4.45 (fresh-user fixes) by @bcsnpc in #13

Full Changelog: v0.9.1...v0.9.2

vilsem-mcp 0.9.1

vilsem-mcp 0.9.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Nov 21:32
15f6f4d

What's Changed

  • release: 0.9.1 on core 0.8.1 / renderer 4.44 by @bcsnpc in #8

Full Changelog: v0.9.0...v0.9.1

vilsem-mcp 0.9.0

vilsem-mcp 0.9.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Nov 20:15

What's Changed

  • MCP 0.9.0: local security hardening and CI-built releases by @bcsnpc in #3
  • Fix release workflow version check (npm lockfile empty key) by @bcsnpc in #7

Full Changelog: v0.8.2...v0.9.0

MCP 0.8.2 evaluation - get_playbook, commit guidance and Contoso lessons

Choose a tag to compare

@bcsnpc bcsnpc released this 12 Nov 03:38

vilsem-mcp 0.8.2: get_playbook, explicit commit guidance, Contoso lessons

Core 0.8.0 and renderer 4.43 are unchanged. Existing reports need no upgrade.

Why

A field test with GitHub Copilot (VS Code agent mode) showed that clients without MCP resource support never receive Vilsem's playbook. Copilot tried to fetch vilsem://skill/powerbi-visuals as a web URL and built visuals without the rules. It embedded measures in visuals and didn't relay the correct Power BI Desktop reload step.

Changes

  • New get_playbook tool (read-only; 20 tools total). It delivers the playbook to any MCP client.
    • With no arguments it returns a compact core (≈1.5k tokens) plus an index. Agents then request sections on demand: 9a, known-issues, cookbook:<pattern>, art:<recipe>, pbir-pages, all.
    • Sections are cut from the skill markdown at runtime, so they're always in sync with the installed version; no files are written.
    • Size and heading guards run in tests only. At runtime the tool always serves what exists.
  • Server instructions now say to call get_playbook first. Clients with resource support can still read vilsem://skill/*.
  • Rules in tool results, so weaker agents see them too:
    • commit_visual and real update_visual writes return nextStep: close and reopen without saving on the first Vilsem visual in a report, otherwise click Apply on the external-changes prompt.
    • They also return measureWarning when visual-scoped measures are committed (Build pane and Publish to web impact; points to section 9a and promote-measures.py).
    • validate_visuals adds a summary of visuals that still use NativeMeasure.
  • Lessons from building a 19-page, 60+ visual Contoso report, merged into the skill:
    • 13 new known-issue rows: time slots for ordering, ROUND in RANKX, $-prefixed strings, Desktop hangs from heavy per-row DAX, 30 s set-DAX timeouts, per-frame race label colours, fontStyle, clipping, synthetic-data variance.
    • New cookbook patterns: top-N without "Other", overlay bars, window lag, labels in expression series, cumulative/bubble races, radial-by-month, one colour per Sankey node, cheap previews, responsive geometry.
    • Correction: markLine type:"average" can render at 0 in renderer 4.43; use a flat line series.
  • New references/data-art-recipes.md (also resource vilsem://skill/data-art-recipes): 8 recipes, namely Du Bois spiral, ridgelines, data flowers, periodic table, Minard flow, Isotype, Dear Data and botanical garden. Backed by 17 working reference specs in docs/examples/contoso/; these are references, not shipped templates.
  • README: GitHub Copilot setup (.vscode/mcp.json with the servers key; Copilot status "partially tested") and the tool-first workflow.

Verification

  • Full suite on main: 353/353 tests passed across 19 files.
  • Fresh install from the packed vilsem-mcp-0.8.2.tgz:
    • npm audit 0;
    • the stdio server reports 0.8.2, with the new first instruction line and 20 tools;
    • get_playbook is annotated read-only;
    • the default core returns 7,362 bytes including the index;
    • 9a, known-issues, art, art:du-bois-spiral and cookbook:sankey resolve, and an unknown section returns an error listing valid ids.

Still to verify manually

  • A full GitHub Copilot authoring run on 0.8.2.
  • Desktop reload, rendering and interactions for new commits.
  • Publish to web with model measures on a fresh report.

Verify the download against SHA256SUMS-0.8.2.txt. This remains an evaluation prerelease.

MCP 0.8.1 evaluation - model measures and clearer install

Choose a tag to compare

@bcsnpc bcsnpc released this 12 Nov 01:03

vilsem-mcp 0.8.1: model measures for shareable reports, clearer install

Docs and skill release. No runtime, renderer or spec-format changes: core 0.8.0 and renderer 4.43 are unchanged, and existing reports need no upgrade.

Changes

  • Model measures for shareable reports (skill section 9a).
    • Visual-scoped measures (spec.measures) are stored as NativeMeasure projections. They hide fields in the Build pane and fail under Publish to web with PowerBIAnonymousExtensionSchemaException.
    • The skill now treats them as a preview scratchpad. At commit time it guides agents to persist measures to a model measures table and bind visuals to them.
    • New ground rule: ask once up front whether the report will be published or shared.
    • Updated reload rules: model (TMDL) changes need Desktop closed without saving and reopened.
  • Bundled helper: scripts/promote-measures.py (Python 3.9+, stdlib only).
    • Moves existing visual-scoped measures into the model and rewires the visuals to model Measure references.
    • Dry run by default; --apply backs up every file it changes.
    • Tags created measures VilsemOwned, refuses name collisions with non-Vilsem measures, and is idempotent.
    • Installed by install-skill and covered by 6 regression tests.
  • Server instructions gain one line pointing agents to section 9a.
  • README rewrite.
    • Numbered quick start and download checksum verification.
    • Claude Code setup without the claude CLI: the bundled claude.exe path, or a JSON config with safe parse-and-merge.
    • A "Measures: prototype vs publish" section, a single reload-rules table, a troubleshooting table and fixed number spacing.
    • Historical notes moved into a collapsed release history.

Verification

  • Full MCP suite: 344/344 tests passed across 18 files.
  • Fresh install from the packed vilsem-mcp-0.8.1.tgz:
    • npm audit 0;
    • stdio server reports 0.8.1, with instructions, 19 tools and 3 skill resources;
    • the packaged skill contains section 9a and scripts/promote-measures.py.
  • README Option B (no CLI) checked on a test config shaped like ~/.claude.json:
    • the JSON merge kept existing settings and servers;
    • the README validate command read it;
    • the server launched from that entry and listed all tools.
  • promote-measures.py on a throwaway copy of a 19-page Contoso PBIP project:
    • dry run planned 156 measures on the original report;
    • --apply rewired 7 visuals with 0 NativeMeasure left;
    • a second run was a no-op;
    • validate_visuals 64/64 valid.
  • Field report: a Contoso report with Vilsem visuals bound to model measures rendered under Publish to web. The same visuals with visual-scoped measures failed.

Still to verify manually

  • Committing a visual bound to a model measure written to TMDL but not yet loaded in Desktop, and previewing after reopen.
  • Opening a promoted copy in Desktop and checking the Build pane.
  • A side-by-side reproduction of Publish to web versus the signed-in Service on one report.

Install: see the README. Verify the download against SHA256SUMS-0.8.1.txt. This remains an evaluation prerelease.

MCP 0.8 evaluation - agent playbook and native sharpness

Choose a tag to compare

@bcsnpc bcsnpc released this 07 Nov 04:41

MCP 0.8 evaluation: agent skills and native sharpness

Changes

The package ships the supplied vilsem-powerbi-visuals playbook and two references. Initialization supplies a short pointer and workflow rules; design_visual points to the same resource. Read vilsem://skill/powerbi-visuals, vilsem://skill/pbir-pages, and vilsem://skill/spec-cookbook. Model/report/image content remains untrusted.

vilsem-mcp install-skill [--target claude|codex|<skills-root>] [--force] explicitly installs the three skill files. Claude uses ~/.claude/skills; current Codex uses ~/.agents/skills. Existing folders are refused without force; unrelated files are retained with force; linked/non-regular destinations are refused. No install hook writes home skills. No arguments still start the MCP stdio server.

Core 0.8 / renderer 4.43 adds bounded zoom-aware canvas density and optional SVG. Use config.renderer:"svg", or the Desktop Appearance > Render mode dropdown; Automatic follows the spec. Canvas remains the default. Canvas-only trail/blending effects fall back with an explicit critique and host warning. SSR PNG/SVG preview output remains unchanged by this native-only setting.

Existing reports must explicitly upgrade: save Desktop work before external edits. With no pending external changes, import installed @vilsem/core/assets/renderer.pbiviz via Home > More visuals > From my files, accept Update, save, close and reopen. The GUID and semantica.primitiveSpec property remain unchanged. Commits preserve registered renderer resources.

The supplied markdown was initially copied byte-for-byte. Only the blur known-issue entry and its cookbook renderer guidance were then updated for the separate renderer task; older pattern provenance was clarified. The unrelated Label-token formatting bug is not fixed; its workaround is preserved. Original bundle files were not edited.

Verification

  • Initial skill integration: full 316/316 MCP tests passed against the prior public core archive.
  • Final public-core 0.8 full MCP suite: 338/338 tests passed across 17 files (682.21 seconds).
  • Focused native policy/skill tests: 7/7 passed. Actual packaged native renderer browser tests: 20/20 passed across canvas/SVG, two pixel densities, four layouts, pointer/Ctrl/clear/tooltip/context menu, zoom recreation, highlight and expression motion. These are browser fixtures, not native-host certification.
  • Fresh packed installation: public core 0.8 resolved, npm audit 0, all three skill resources byte-match packaged markdown, stdio lists 19 tools, explicit CLI copies/refusal/force/preserved unrelated file/stdout cleanliness pass. Existing home skill folders are unchanged by npm install.
  • Actual Claude Code connected to the freshly installed package without global client configuration edits: initialization instructions visible and all three resources read successfully; no permission denials, no subagents or model/report writes. The first draft check caught a duplicated cookbook section; it was removed, repacked and the second client check confirmed exactly one section.
  • Private/public app/core: each 1,367/1,367 tests across 118 files; both native builds succeed with matching bundled JS/CSS hashes.
  • Desktop: manual 4.42 -> 4.43 import/save/reopen succeeded; real-data hero, leaderboard and calendar rendered. SVG calendar dropdown, page zoom and native Include/Exclude context menu observed. Canvas native tooltip observed. Original model's 21 baseline files remain byte-identical.
  • A separate six-page QA report was successfully created through the Fabric report API with the configured existing model: hero/leaderboard (four real rows), calendar (45 real dates), each in canvas/SVG. No semantic-model edits. Successful API creation is not a rendering PASS. Browser access host/URL enforcement prevents automated Service inspection. On 2026-11-06 the user confirmed seeing all six Service QA pages. This is user-reported page availability; numeric correctness, every chart element, interactions and browser zoom are not independently verified.

Remaining acceptance limits

Dense 5,000-point animated scatter target still FAILS. A single synthetic actual-bundle browser run at host scale 1.5/device DPR 1 measured old canvas 11.84 RAF fps/p95 516 ms, new canvas 9.07/816 ms, new SVG 4.11/1,216 ms, retaining every mark and animation. These are real-clock browser measurements, not Power BI Service/hardware certification. Canvas now rasterizes more pixels. SVG is an option for crisp fine text, not a performance promise.

Unverified: complete Windows 100%/150% native scaling comparison beside native cards/tables, native sub-300 ms zoom/no-flicker timing, full both-painter native Ctrl/filter/bookmark matrix, full cross-visual Service interaction coverage, export fidelity. The later Edge follow-up below verifies the six-page browser zoom matrix. The independent Label issue remains open. This is an evaluation prerelease, not production or certification sign-off.

Live Edge Service follow-up (2026-11-06)

The already-open Edge window exposed its current app.powerbi.com URL through supported Computer Use. Earlier browser-access errors did not recur on this surface. Twelve visual inspections completed: hero, leaderboard and calendar in canvas/SVG, each at browser zoom 100% and 150%. Browser zoom 150% was explicitly visible in Edge; it is distinct from Power BI Fit-to-page scaling (59% at browser 100%, 31% at browser 150%). The full plot/title/legend remained inside the visible chart areas, and no error placeholder or blank visual was observed. Evidence: live screenshots and accessibility states in the session transcript, not headless-browser screenshots.

Both hero variants displayed 1,556,641. Both leaderboard variants displayed 859,980 / 374,283 / 201,258 / 121,120, also present in SVG accessibility text. A separate live read-only DAX query confirmed those four values and grand total. Calendar SVG exposed all 45 numeric labels; the painted calendar canvas showed the corresponding arrangement. This is not an independent cell-by-cell reconciliation.

Canvas and SVG leaderboard click selection visibly dimmed other marks; empty-area clicks restored all marks. Both displayed native tooltips with category and measure values and native Include/Exclude context menus on right-click. Only menu presence was tested; Include/Exclude actions were not applied. No report edits were saved. Browser zoom was restored to 100%, the SVG hero page was restored, and selection was cleared.

Sharpness remains partially accepted: SVG text was visibly cleaner; tiny canvas labels were still soft at small Fit-to-page scales, especially the 31% page scale at browser 150%. No claim of equal-to-native sharpness or universal clipping coverage is made. This follow-up clears the six-page Service rendering/zoom blocker and simple selection/tooltip/context/clear checks. It does NOT close cross-filtering to another/native visual (these six pages contain a single visual), physical Ctrl-click, bookmarks, drill-through, native Windows scaling 100%/150%, export checks, measured sub-300 ms timing or the failing 5,000-point performance target.

Ordinary-chart motion follow-up (2026-11-06)

After the user clarified entrance animation rather than racing, a separate Normal chart motion page was added to the same owned Service QA report. It contains fixed-data bar (4 rows), annual line (7 rows, 2026 marked partial), donut (4 rows) and scatter (4 rows). All use canvas and declarative formatVersion 4 motion, with no race transform, timeline or frame options. MCP validation/explanation and actual-browser motion previews passed for each; the previews had no critique findings and their final images were inspected. The initial caller spec used formatVersion 2 and was correctly refused, then corrected to 4; this was not a product fix.

A guarded Fabric definition update preserved 22 original parts and the seven existing pages, adding four custom visuals on the eighth page. The operation succeeded. Live Edge showed all four settled charts, and page re-entry captured a partially drawn line and entering scatter points followed by settled marks. This confirms ordinary animation exists; it is not every-series/host/reduced-motion/frame-rate acceptance. No model edits were made. Preview/evidence artifacts remain local QA files; the README's generic recipes do not depend on this model.

For installation, drawing/animation choices, known failures, and the complete current partial/untested acceptance checklist, read the release README.

vilsem-mcp 0.7.3 (evaluation patch)

Pre-release

Choose a tag to compare

@bcsnpc bcsnpc released this 06 Nov 17:25

MCP 0.7.3 evaluation patch

Fixes editing and validation of existing Vilsem visuals saved by Desktop with a newer official 2.x container declaration. The entire payload must pass the bundled 2.7 field contract. The response explicitly warns that full validation against the declared schema was not performed. The original declaration, query, layout and manual formatting remain intact. Unknown fields, malformed payloads and non-Microsoft/other-major declarations are refused. No native objects are edited or reported. New commits still use the bundled schema.

  • Full MCP suite: 311/311 passed against the actual public core 0.7.2 package.
  • Core/renderer unchanged: core 0.7.2, renderer 4.42; private/public core suites each passed 1,357 tests and the complete app build passed.
  • Evaluation prerelease; it does not replace stable 0.6 or certify native interactions, exports, accessibility or performance.
  • Native gesture/export checks remain unverified because the supported automation helper cannot connect to its native pipe. The 5,000-point animated 60fps target remains failed; no points are removed and no animation is disabled to claim a pass.
  • No new app installer is published in this patch. Existing tags/assets remain immutable.

Packaged candidate acceptance: both existing Desktop2.14-declared QA visuals passed real-data read/preview, reviewed dry-run, title edit and restore. Their query, layout, manual formatting and schema declaration were preserved. validate_visuals reports170/170 Vilsem visuals valid, including two explicit known-contract warnings; all15 native fixture files are unchanged and unreported. The21 model hashes remain unchanged. A legacy spec may gain its normal specVersion migration on save; this is not a container-schema retag.

SHA256 vilsem-mcp-0.7.3.tgz: 3bb36a77b9b3fd821bc16617c57eaa553157f888c0bb6cf2d121f68efbb360aa

Public distribution verification: normal installs from the actual v0.7.3 release URL and documented Git tag both pass with audit0,19tools/one prompt, viewport-spec validation/resources, genuine core0.7.2 and no app-path/development link/overrides. The public-URL installation connects to Desktop62071 and validates170/170 custom visuals with the two explicit compatibility warnings. Downloaded archive SHA256 matches the tested candidate. Final owned-report clean reload accepted renderer4.42;21model hashes remain unchanged. Native physical acceptance and the failed frame-rate target remain open.

MCP0.7.2 evaluation: reference correctness

Choose a tag to compare

@bcsnpc bcsnpc released this 06 Nov 16:52

MCP0.7.2 uses published core0.7.2 / renderer4.42. It corrects the reference card's dark-theme axis contrast and selection fading. The shared interpreter preserves authored opacity only for explicitly silent annotation leaves; data marks still dim. Blank-area click routing is covered by a real Chromium test. The GUID and legacy format-pane property remain unchanged.

Agent feedback now excludes proven static viewport backdrops from measured-series/palette counts and zero-data warnings, while preserving checks for real zeros and data-dependent annotations. An explicit opaque chart background is used for global text contrast. Text clipping/contrast checks remain enabled; arbitrary filled-mark contrast still requires visual review.

Verified:303/303 MCP tests against the downloaded public core0.7.2 archive with unchanged30second deadlines; private/public app-core1357tests each; complete native/UI/Fabric/Electron/NSIS build. Independent native42resource contents match. Light/dark reference thumbnails are updated; catalog image/spec hashes are checked. Fresh standalone candidate install passes audit0,19tools/1prompt, viewport-spec validation and resources with no app path/development link. Public-URL/Git-tag installation readback follows publication.

Real Desktop model workflows and saved edits use AS62071 via process-workspace-port-file; schema13tables/39measures and six-row real previews are verified in this follow-up. Six native coexistence QA pages are prepared outside MCP, schema/bounds checked and cleanly reloaded;21model files remain unchanged. MCP still never authors native visuals/slicers/filters/bookmarks/themes/models.

Not production acceptance: both built-in computer-use interfaces still report native-pipe os error2. Native physical gestures, paint, bookmarks and PDF/subscriptions remain UNVERIFIED. The5000-point60fps target remains FAIL (canvas11.22RAFfps, dirty12.52, SVG8.62; idle60.42), retaining all points and animation. No rejected batching or hidden motion disabling is enabled. Exact Euler/maps/3D limitations remain; stable0.6 is unchanged. No new app installer is published.

SHA256:301da015993c14d9d83a595587f4229d59271b4dd64dd500ba169de59ba14e54

Follow-up: MCP0.7.3 fixes existing Desktop2.x container-declaration compatibility and is the current evaluation patch: https://github.com/bcsnpc/vilsem-mcp/releases/tag/v0.7.3 . Actual public-URL/Git-tag0.7.2 installs and six-row live previews/saved edits passed;0.7.3 additionally passes both real newer-declaration edit/restores and170/170custom validation with explicit warnings. Previous assets/tags are unchanged.

MCP0.7.1 evaluation: responsive reference panels

Choose a tag to compare

@bcsnpc bcsnpc released this 06 Nov 15:53

MCP0.7.1 evaluation update uses published core0.7.1 / renderer4.41. The Figma reference example now includes its responsive rounded inset card, with bounded viewport dimensions and corrected axis spacing. The decoration does not intercept data clicks. Other0.7 specs keep their4.40 reader floor; GUID and legacy pane property are unchanged.

Verified:300/300 MCP tests against the actual downloaded public core, private/public app-core1355tests each, full app/UI/Fabric/native/Electron/NSIS build. Both144-image thumbnail catalogs match their image/spec hashes; the changed reference thumbnails were regenerated. Fresh standalone candidate archive install has audit0,19tools/1prompt, new-spec validation and resource access without an app checkout or development link. Public-release URL/Git-tag installation readback follows publication.

Real Desktop AS62071 connection/schema, six-country real-data preview, read/dry-run/saved edit and clean reload API pass.21model-definition files remain unchanged. Six owned QA native-interaction pages are schema/bounds checked and reloaded, with existing pages/visuals/report settings preserved. Native fixtures are prepared outside the MCP; it still never authors native visuals or report-level configuration.

Not production acceptance: native gestures/paint/PDF/subscriptions remain UNVERIFIED because both built-in computer-use interfaces return native-pipe os error2 and bridge capture is unreliable. The5000-point animation benchmark still FAILS (canvas11.22RAFfps, dirty-rectangle12.52, SVG8.62; idle60.42). All5000points and animation stay enabled; there is no point dropping or hidden motion disabling. Exact Euler fitting/maps/3D limitations remain. Stable0.6 is unchanged; no new app installer is published.

Artifact SHA256: e7741a720e5d3fc58041d27ff3890071531d5c978c03384b371bf3b84c5f81bf
Known reference-template issue discovered after publication: an explicitly light Figma card inherits faint axis text in a dark report theme. The correction and an actual rendered-text regression are under test for MCP0.7.2;0.7.1 assets remain unchanged.