Releases: TALXIS/tools-cli
v1.14.2
v1.14.1
v1.14.0
What's new since v1.13.0
workspace validate upgrade
- Replaced manual SchemaValidator + GuidValidator wiring with unified
WorkspaceValidatorfacade - Added
--fileoption for single-file validation (validate what you just modified) - Errors now include file:line:col locations for precise diagnostics
- Shows component summary after model loading (entities, forms, views, plugins, flows, etc.)
- Validates XSD schemas, JSON schemas, duplicate GUIDs, and loads the full metadata model in one pass
platform-metadata v0.4.0
- XSD schemas verified against live Dataverse v9.2 exports
- Power Automate flow JSON parsing and diagnostics
- Precise source locations (no more hardcoded 1,1)
- Multi-solution workspace support
- SchemaIntrospector for component type structure discovery
- 21+ XSD schemas covering all major component types
Other changes since v1.13.0
- Bumped platform-metadata from v0.1.3 through v0.2.0, v0.3.0 to v0.4.0
- Package icon updates
v1.13.0
workspace validate command
- New
txc workspace validate <path>— validates solution XML against XSD schemas and checks for duplicate GUIDs - Powered by TALXIS.Platform.Metadata.Validation
OptionSet command restructure
- Moved from
entity optionset global/optiontoenvironment optionset optionset show --name/--entity + --attributefor global and local--labeland--valuelookups for piping--languageflag for multi-language environmentsoption add/removefollows noun/verb convention
Metadata-aware data operations
record createandbulk createauto-wrap OptionSetValue, Money, EntityReference- Multi-select picklists supported (JSON arrays)
- Fresh metadata per operation (no cache)
Post-action transaction rollback
- Failed scaffolding rolls back all changes (template files + post-action modifications)
- Snapshots .sln/.slnx file above output directory
- 120s script timeout with deadlock-free stdout/stderr capture
- 5 unit tests for PostActionTransaction
Other
- Prerequisites checker validates
pwshbefore scaffolding - Emojis removed from guide tool responses
- ModelPreferences for guide sampling (speed=0.8, cost=0.6, intelligence=0.4)
- MCP-first README with
dnxsetup for VS Code, Claude Code, Copilot CLI - Cross-solution workflow documented (Behavior=Existing)
dotnet-scriptremoved from prerequisites (.NET 10 file-based apps)OptionMetadataInput.ParseCsvshared helper (removed ChangesetApplier duplicate)LabelHelperfor language-aware label resolution
v1.12.0
Data operations — metadata-aware type wrapping
- Record create/update and bulk create/update/upsert auto-detect column types from Dataverse metadata
- OptionSet values: pass plain integers (e.g. 375970000) — auto-wrapped to OptionSetValue
- Money fields: pass decimals — auto-wrapped to Money
- Lookups: pass bare GUID strings for single-target lookups — auto-wrapped to EntityReference
- Multi-select picklists: pass JSON arrays of integers — auto-wrapped to OptionSetValueCollection
- Fresh metadata per operation (no cache — CLI mutates schema)
OptionSet command restructure
Moved from entity optionset global/option (4–5 levels) to environment optionset (2 levels):
optionset list— all global option setsoptionset show --name <name>or--entity E --attribute A— values + labelsoptionset show --label "Box"— label → value lookup (for piping)optionset show --value 375970000— value → label lookupoptionset show --language 1029— specific language (LCID)optionset option add/remove— noun/verb convention--nameeverywhere (removed--global-optionset)
Entity describe enriched
- Shows OptionSet name column for picklist/status/state columns
Other
- MCP roots warning when client doesn't support workspace roots
- dotnet sln add: fixed potential deadlock, stdout logged on success
- Removed auto-version-bump CI job (tag is version source of truth)
- Cross-repo local dev instructions in README
v1.11.0
What's New in v1.11.0
New Skills
- Data Querying — decision guide for SQL vs OData vs FetchXML, covering $apply aggregation, $expand, formatted values, and pagination patterns
- Security Roles — scaffolding chain for security roles, role privileges, and app security roles with privilege type/level reference
Skill Enrichments
- Schema Management — metadata propagation delays, column naming anti-patterns, lock contention guidance
- Data Migration — adaptive chunk sizing, FK-ordered import, lookup resolution strategies
- Form XML Reference — control ClassId table for all 11 types, form type codes, view querytype values
- Troubleshooting — common Dataverse hex error codes with recovery actions
Fixes
- Deployment skill no longer recommends
--waiton import - Plugin skill now includes build-first guidance before deployment
- Added dotnet-script prerequisite note to relevant skills
v1.10.0
What's New in v1.10.0
Solution Unpack Command
txc env sln unpack— unpack a solution ZIP into a folder using SolutionPackager, without needing to export from an environment first
MCP Error Reporting
- Error details from workspace scaffolding (post-action failures, script errors) are now surfaced to MCP clients as structured output instead of being swallowed silently
- Post-action errors include stderr content and exit codes with ANSI escape code stripping
Scaffolding Concurrency Fix
- Concurrent
workspace_component_createcalls from MCP agents are now serialized per workspace root, preventing race conditions on shared files (Solution.xml, .sln)
Skill Documentation Fixes
- Fixed incorrect template names in 5 skills (plugin, bpf, custom-api, pcf, form-xml)
- Clarified publisher prefix limit as a convention (5 chars recommended) vs CLI enforcement (2-8 chars)
- Added parameter convention docs and schema validation workflow to component creation skill
v1.9.0
What's New in v1.9.0
MCP Progressive Disclosure
The MCP server has been completely redesigned. Instead of exposing 97 static tools (which consumed 76% of the VS Code/Copilot 128-tool hard cap and ~55K tokens of context), the server now uses 9 always-on tools with progressive disclosure:
- Domain-specific guide tools (
guide_workspace,guide_environment,guide_deployment,guide_data,guide_config) use MCP sampling to understand what the agent needs, then produce multi-step recipes with concrete operation calls, validation checkpoints, and error recovery execute_operation— same-turn bridge that runs any CLI operation, with destructive safety enforcementget_skill_details— public knowledge base with 14 skills covering common workflows (entity scaffolding, solution deployment, CMT tuning, build error recovery, and more)txc docs list/show— CLI commands for browsing the skills knowledge base outside of MCP- Local-first steering — guide prompts encode preference for instant workspace operations over live environment round-trips
- New Roslyn analyzers (TXC010-TXC013) enforce description quality, context requirements, destructive signaling, and workflow classification at build time
Breaking: MCP clients must support sampling. The static 97-tool surface is no longer exposed.
Fixes
- Fixed component layer commands (
list,show,remove-customization) silently exiting with code 2 due to a stray return statement — all three commands were non-functional in v1.8.0
v1.8.0
What's New in v1.8.0
Adds comprehensive solution management, component inspection, dependency analysis, and publisher management. Also improves CLI naming consistency and error reporting.
Solution Management
txc env sln show— view solution details with component type breakdowntxc env sln create/delete— create and delete unmanaged solutionstxc env sln export— export and unpack solutions via SolutionPackager, or--zipfor raw exporttxc env sln pack— pack an unpacked solution folder into a ZIPtxc env sln publish— publish all or selective entity customizationstxc env sln import— now accepts folders (auto-packs) and.cdsproj/.csprojproject directoriestxc env sln uninstall— now validates solution type (rejects unmanaged with guidance) and runs dependency pre-check by defaulttxc env sln uninstall-check— pre-uninstall dependency safety checktxc env sln component list/count/add/remove— manage solution components with--typeand--entityfilters
Component Inspection
All commands support two identification modes: --id/--type for automation, or --entity/--attribute for human-friendly name-based lookup (resolves MetadataId automatically).
txc env component layer list— show solution layer stack for a componenttxc env component layer show— view active layer definition as JSONtxc env component layer remove-customization— remove unmanaged active layer with safety checkstxc env component dep list— what depends on this componenttxc env component dep required— what this component requirestxc env component dep delete-check— can I safely delete this?
Publisher Management
txc env publisher list/show/create/delete— full publisher CRUD with prefix and option value prefix validation
CLI Consistency Improvements
- Standardized
--yesdescription across all destructive commands - Added
-o/-ishort aliases for--output/--inputoptions - Restructured optionset commands:
optionset create-globalis nowoptionset global create env setting updatenow uses positional arguments:txc env setting update <name> <value>- Entity attribute commands use positional
--entityargument instead of named option - Prevented auto-generated alias conflicts on all group commands
Error Reporting
- OData queries now surface Dataverse error messages instead of generic SDK exceptions
- SQL and OData query errors include the entity set name for context
- Connection creation warns if hostname is unreachable (non-blocking DNS check)
- Record command GUID arguments now validate with clear messages instead of raw parse errors
- All commands write structured error envelopes to stdout on failure, so scripts and MCP consumers get
{ "status": "failed", "message": "..." }instead of empty output
v1.7.0
What's New in v1.7.0
A major release bringing Dataverse schema management, Configuration Migration Tool support, full data operations, and significant quality-of-life improvements.
Dataverse Schema Management
- Entity management — create, update, and delete entities directly from the CLI with support for standard, activity, and elastic table types
- Attribute management — create, get, update, and delete attributes across 16 types (string, number, choice, lookup, polymorphic lookup, file, image, and more)
- Relationships — create, list, and delete entity relationships
- Global option sets — create, delete, add/remove options, and list global option sets
- Attribute introspection —
attribute type listandtype describewith JSON schema output for MCP consumers
Configuration Migration Tool (CMT)
txc data package export— export data packages with file column support and overwrite controltxc data package import— enhanced with batch mode, batch size, safety overrides, and prefetch limit
Changeset Staging
- Stage schema changes — use
--stageon any of the 17 mutating commands to queue changes instead of applying immediately - Apply strategies —
txc env changeset applywith batch (ExecuteMultiple), transaction (ExecuteTransaction), or bulk (CreateMultiple/UpdateMultiple) strategies - Review and discard —
txc env changeset statusandtxc env changeset discard - Batches entity creation via CreateEntities API and consolidates publishes into a single PublishXml call
Dataverse Data Operations
- Query your data — SQL (
txc env data query sql), FetchXML, and OData queries with automatic pagination - Record operations — get, create, update, delete individual records or work in bulk with
bulk create/update/upsert - File columns — download and upload file/image column data with chunked transfers
- Relationship records — associate and disassociate N:N relationship records
- Entity introspection — list entities and describe their columns with
txc env entity list/describe
Unified Environment Settings
- One command for all settings —
txc env setting listandtxc env setting updatework across all four Power Platform settings APIs transparently - No need to know which backend stores which setting — the CLI handles routing automatically
Authentication and Token Handling
- Tokens no longer expire mid-session — automatic refresh with proactive renewal before expiration
- Service principal tokens persist across CLI invocations — no more re-authenticating every time
- Token diagnostics —
txc config auth show <alias> --check-tokento inspect token health - Smarter profile setup —
txc config profile createreuses existing connections and auto-populates environment metadata
Production Safety
- Destructive commands are blocked against production environments by default
- Pass
--allow-productionexplicitly when you intend to modify production — an extra safety net on top of--yesconfirmation - Production environments detected automatically by type, URL, and name patterns
Consistent Output
- All commands now follow a unified output format — predictable JSON when piped, human-readable tables in the terminal
- Global
--formatflag replaces per-command--jsonflags - Clean stdout — diagnostic and log output goes to stderr, so piping and scripting just works
Fixes
- Fixed
ConnectedOrgVersionreturning hardcoded9.0.0.0with token-provider auth - Fixed exit codes for validation errors (now correctly returns exit code 2)
- Fixed MSAL token cache for headless CI environments
- Numerous XrmShim compatibility fixes