mirror of
https://github.com/MinaSaad1/pbi-cli
synced 2026-04-21 13:37:19 +00:00
- Fix 4 code bugs: TopN filter cross-table, theme_set corruption, visual_bind type annotation, tmdl_diff hierarchy pluralization - Add missing VisualTypeError and ReportNotFoundError to errors.py - Register 5 command groups in CLI (report, visual, filters, format, bookmarks) - Split monolithic report skill into 5 focused skills (12 total): power-bi-report, power-bi-visuals, power-bi-pages, power-bi-themes, power-bi-filters - Update CLAUDE.md snippet for 12 skills organised by layer - Add diff-tmdl section to deployment skill - Write CHANGELOG entries for v3.0.0 through v3.10.0 - Rewrite README.md and README.pypi.md for both model and report layers - Add skill triggering test suite (19/19 passing) - 488 tests passing, ruff clean
9.4 KiB
9.4 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[3.10.0] - 2026-04-02
Added
- Split
power-bi-reportskill into 5 focused skills:power-bi-report(overview),power-bi-visuals,power-bi-pages,power-bi-themes,power-bi-filters(12 skills total) - CLAUDE.md snippet now organises skills by layer (Semantic Model vs Report Layer)
- Skill triggering test suite (19 prompts, 12 skills)
Fixed
filter_add_topninner subquery now correctly references category table when it differs from order-by tabletheme_setresourcePackages structure now matches Desktop format (flatitemsarray)visual_bindtype annotation corrected tolist[dict[str, Any]]tmdl_diffhierarchy changes reported ashierarchies_*instead of falling toother_*- Missing
VisualTypeErrorandReportNotFoundErrorclasses added toerrors.py report,visual,filters,format,bookmarkscommand groups registered in CLI
Changed
- README rewritten to cover both semantic model and report layers, 12 skills, 27 command groups, 32 visual types
[3.9.0] - 2026-04-01
Added
pbi database diff-tmdlcommand: compare two TMDL export folders offline, summarise changes (tables, measures, columns, relationships, model properties); lineageTag-only changes are stripped to avoid false positives
Fixed
filter_add_topninner subquery now correctly references the category table when it differs from the order-by table (cross-table TopN filters)theme_setresourcePackages structure now matches Desktop format (flatitems, not nestedresourcePackage)visual_bindtype annotation corrected fromlist[dict[str, str]]tolist[dict[str, Any]]tmdl_diffhierarchy changes now reported ashierarchies_*instead of falling through toother_*- Missing
VisualTypeErrorandReportNotFoundErrorerror classes added toerrors.py report,visual,filters,format,bookmarkscommand groups registered in CLI (were implemented but inaccessible)
[3.8.0] - 2026-04-01
Added
azureMapvisual type (Azure Maps) with Category and Size rolespageBindingfield surfaced inpage_get()for drillthrough pages
Fixed
cardandmultiRowCardqueryState role corrected fromFieldstoValues(matches Desktop)kpitemplate: addedTrendLinequeryState key (date/axis column for sparkline)gaugetemplate: addedMaxValuequeryState key (target/max measure)MaxValueadded toMEASURE_ROLES- kpi role aliases:
--trend,--trend_line - gauge role aliases:
--max,--max_value,--target
[3.7.0] - 2026-04-01
Added
page_type,filter_config, andvisual_interactionsfields in page read operations (page_get,page_list)
[3.6.0] - 2026-04-01
Added
imagevisual type (static images, no data binding)shapevisual type (decorative shapes)textboxvisual type (rich text)pageNavigatorvisual type (page navigation buttons)advancedSlicerVisualvisual type (tile/image slicer)
[3.5.0] - 2026-04-01
Added
clusteredColumnChartvisual type with aliasesclustered_columnclusteredBarChartvisual type with aliasesclustered_bartextSlicervisual type with aliastext_slicerlistSlicervisual type with aliaslist_slicer
[3.4.0] - 2026-03-31
Added
cardVisual(modern card) visual type withDatarole and aliasescard_visual,modern_cardactionButtonvisual type with aliasaction_button,buttonpbi report set-backgroundcommand to set page background colourpbi report set-visibilitycommand to hide/show pagespbi visual set-containercommand for border, background, and title on visual containers
Fixed
- Visual container schema URL updated from 1.5.0 to 2.7.0
visualGroupcontainers tagged as typegroupinvisual_list- Colour validation, KeyError guards, visibility surfacing, no-op detection
[3.0.0] - 2026-03-31
Added
- PBIR report layer:
pbi reportcommand group (create, info, validate, list-pages, add-page, delete-page, get-page, set-theme, get-theme, diff-theme, preview, reload, convert) - Visual CRUD:
pbi visualcommand group (add, get, list, update, delete, bind, where, bulk-bind, bulk-update, bulk-delete, calc-add, calc-list, calc-delete, set-container) - Filters:
pbi filterscommand group (list, add-categorical, add-topn, add-relative-date, remove, clear) - Formatting:
pbi formatcommand group (get, clear, background-gradient, background-conditional, background-measure) - Bookmarks:
pbi bookmarkscommand group (list, get, add, delete, set-visibility) - 20 visual type templates (barChart, lineChart, card, tableEx, pivotTable, slicer, kpi, gauge, donutChart, columnChart, areaChart, ribbonChart, waterfallChart, scatterChart, funnelChart, multiRowCard, treemap, cardNew, stackedBarChart, lineStackedColumnComboChart)
- HTML preview server (
pbi report preview) with live reload - Power BI Desktop reload trigger (
pbi report reload) - PBIR path auto-detection (walk-up from CWD,
.pbipsibling detection) power-bi-reportClaude Code skill (8th skill)- Visual data binding with
Table[Column]notation and role aliases - Visual calculations (calc-add, calc-list, calc-delete)
- Bulk operations for mass visual updates across pages
Changed
- Architecture: pbi-cli now covers both semantic model layer (via .NET TOM) and report layer (via PBIR JSON files)
[2.2.0] - 2026-03-27
Added
- Promotional SVG assets and redesigned README
[2.0.0] - 2026-03-27
Breaking
- Removed MCP server dependency entirely (no more
powerbi-modeling-mcpbinary) - Removed
connect-fabriccommand (future work) - Removed per-object TMDL export (
table export-tmdl,measure export-tmdl, etc.) -- usepbi database export-tmdl - Removed
model refreshcommand - Removed
security-role export-tmdl-- usepbi database export-tmdl
Added
- Direct pythonnet/.NET TOM interop (in-process, sub-second commands)
- Bundled Microsoft Analysis Services DLLs (~20MB, no external download needed)
- 2 new Claude Code skills: Diagnostics and Partitions & Expressions (7 total)
- New commands:
trace start/stop/fetch/export,transaction begin/commit/rollback,calendar list/mark,expression list/get/create/delete,partition list/create/delete/refresh,advanced culture list/get connections lastcommand to show last-used connectionpbi connectnow auto-installs skills (no separatepbi skills installneeded)
Changed
pbi setupnow verifies pythonnet + bundled DLLs (no longer downloads a binary)- Architecture: Click CLI -> tom_backend/adomd_backend -> pythonnet -> .NET TOM (in-process)
- All 7 skills updated to reflect v2 commands and architecture
- README rewritten for v2 architecture
Removed
- MCP client/server architecture
- Binary manager and auto-download from VS Code Marketplace
$PBI_MCP_BINARYenvironment variable~/.pbi-cli/bin/binary directory
[1.0.6] - 2026-03-26
Fixed
- Use server-assigned connection name for subsequent commands (fixes "connection not found" mismatch)
[1.0.5] - 2026-03-26
Fixed
- Auto-reconnect to saved connection on each command (each invocation starts a fresh MCP server)
[1.0.4] - 2026-03-26
Fixed
- Commands now auto-resolve last-used connection from store (no --connection flag needed)
[1.0.3] - 2026-03-26
Added
- Support Microsoft Store version of Power BI Desktop for port auto-discovery
Fixed
- UTF-16 LE encoding when reading Power BI port file
- Updated all 5 skills, error messages, and docs to reflect new install flow
[1.0.2] - 2026-03-26
Fixed
- Separate README for GitHub (Mermaid diagrams) and PyPI (text art)
[1.0.1] - 2026-03-26
Fixed
- README SVG header and diagrams now render correctly on PyPI
[1.0.0] - 2026-03-26
Added
- Auto-discovery of running Power BI Desktop instances (
pbi connectwithout-d) - Auto-setup on first connect: downloads MCP binary and installs Claude Code skills automatically
- 5 Claude Code skills: Modeling, DAX, Deployment, Security, Documentation
- Skill installer (
pbi skills install/list/uninstall) - Interactive REPL mode (
pbi repl) with persistent MCP connection, tab completion, command history - Error hierarchy (
PbiCliError,McpToolError,BinaryNotFoundError,ConnectionRequiredError) - 22 command groups covering all Power BI MCP tool operations
- Binary manager: download Power BI MCP binary from VS Code Marketplace
- Connection management with named connections and persistence
- DAX query execution, validation, and cache clearing
- Full CRUD for measures, tables, columns, relationships
- Model metadata, statistics, and refresh operations
- Database import/export (TMDL and TMSL formats)
- Security role management (row-level security)
- Calculation groups, partitions, perspectives, hierarchies
- Named expressions, calendar tables, diagnostic traces
- Transaction management (begin/commit/rollback)
- Advanced operations: cultures, translations, functions, query groups
- Dual output mode:
--jsonfor agents, Rich tables for humans - Named connection support with
--connection/-cflag - Binary resolution chain: env var, managed binary, VS Code extension fallback
- Cross-platform support: Windows, macOS, Linux (x64 and ARM64)
- CI/CD with GitHub Actions (lint, typecheck, test matrix)
- PyPI publishing via trusted OIDC publisher