- visual bind: remove legacy Commands/SemanticQueryDataShapeCommand block
(PBIR 2.7.0 uses additionalProperties:false -- Commands is a hard schema error)
- visual bind: add active:true to column (category/row/detail) projections
so Desktop treats the field as the active axis
- visual add: remove empty "objects:{}" from all 32 visual templates
(noisy and rejected by strict schema validators)
- visual add: write position coordinates as integers not floats
(Desktop normalises to int; 320.0 vs 320 caused inconsistency)
- report set-background: always write transparency:0 alongside color
(Desktop defaults missing transparency to 100 = fully invisible)
- report validate: drop false-positive layoutOptimization required error
(real Microsoft 3.2.0 schema does not require this field)
- all write commands: add --no-sync flag to report/visual/filters/bookmarks
groups to suppress per-command Desktop reload during scripted builds;
use pbi report reload for a single sync at the end
- Run ruff format on all 26 unformatted files
- Fix mypy strict errors: add explicit typing for json.loads returns,
add pywin32/websockets to mypy ignore_missing_imports
- Remove yaml dependency from test_skill_triggering.py (use regex parser)
- Fix skill triggering test to handle both single-line and multi-line
description formats in YAML frontmatter
Adds page_binding key to the page_get() return dict using data.get("pageBinding"),
returning None for regular pages and the full binding dict for drillthrough pages.
Two new tests in TestPageGet cover both the None and present cases.
- Guard missing 'visual' key in visual_set_container with PbiCliError
- Detect no-op in visual_set_container when no args are provided
- Remove -g shorthand from set-container --page option
- Add is_hidden field to page_list and page_get return dicts
- Validate hex color format in page_set_background before writing
- Add tests for all new validation and behaviour