feat: Add digitaltwinbuilder item export and import support#211
Merged
ayeshurun merged 19 commits intomicrosoft:mainfrom Apr 19, 2026
Merged
Conversation
This script benchmarks the startup performance of the CLI by measuring module import times, CLI invocation times, and heavy dependency loading. It allows comparisons against a baseline branch or tag.
…r item type Agent-Logs-Url: https://github.com/ayeshurun/fabric-cli/sessions/188f1eb4-34ef-4025-afb2-574c535b45ae Co-authored-by: ayeshurun <98805507+ayeshurun@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Adds CLI support for the DigitalTwinBuilder item type across file-system item operations, with corresponding updates to test coverage and documentation.
Changes:
- Extends test parameterization and export invalid-format expectations to include
ItemType.DIGITAL_TWIN_BUILDER - Updates command support configuration to include
digital_twin_builderforcp,export, andimport - Adds/updates VCR recordings and documentation/examples to reflect the new item type
Reviewed changes
Copilot reviewed 36 out of 38 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| tests/test_commands/test_export.py | Adds DigitalTwinBuilder to invalid-format expectation mapping. |
| tests/test_commands/conftest.py | Extends parametrized command test matrices to include DigitalTwinBuilder. |
| src/fabric_cli/core/fab_types.py | Adds DigitalTwinBuilder to the item-to-default-folder mapping. |
| src/fabric_cli/core/fab_config/command_support.yaml | Declares DigitalTwinBuilder support for cp/export/import (and adds an unsupported entry elsewhere). |
| docs/examples/item_examples.md | Documents .DigitalTwinBuilder as a supported example item type. |
| .changes/unreleased/new-items-20260331-075150.yaml | Adds changelog entry for DigitalTwinBuilder command support. |
| tests/test_commands/recordings/test_commands/test_set/class_setup.yaml | Updates recorded HTTP interactions for test_set setup. |
| tests/test_commands/recordings/test_commands/test_rm/test_rm_item_without_force_cancel_operation_success[DigitalTwinBuilder].yaml | Updates recorded rm cancel-flow interaction for DigitalTwinBuilder. |
| tests/test_commands/recordings/test_commands/test_rm/test_rm_item_success[DigitalTwinBuilder].yaml | Updates recorded rm success interaction for DigitalTwinBuilder. |
| tests/test_commands/recordings/test_commands/test_rm/class_setup.yaml | Updates recorded rm class setup interactions. |
| tests/test_commands/recordings/test_commands/test_mv/class_setup.yaml | Updates recorded mv class setup interactions. |
| tests/test_commands/recordings/test_commands/test_mkdir/test_mkdir_item_name_already_exists_failure[DigitalTwinBuilder].yaml | Updates recorded mkdir conflict interaction for DigitalTwinBuilder. |
| tests/test_commands/recordings/test_commands/test_mkdir/class_setup.yaml | Updates recorded mkdir class setup interactions. |
| tests/test_commands/recordings/test_commands/test_ls/class_setup.yaml | Updates recorded ls/dir class setup interactions. |
| tests/test_commands/recordings/test_commands/test_get/class_setup.yaml | Updates recorded get class setup interactions. |
| tests/test_commands/recordings/test_commands/test_export/test_export_item_invalid_format_failure[DigitalTwinBuilder-.txt].yaml | Adds new cassette for export invalid-format behavior. |
| tests/test_commands/recordings/test_commands/test_export/test_export_item_default_format_success[DigitalTwinBuilder-2].yaml | Adds new cassette for export default-format behavior. |
| tests/test_commands/recordings/test_commands/test_export/class_setup.yaml | Updates recorded export class setup interactions. |
| tests/test_commands/recordings/test_commands/test_exists/test_exists_item_exists_success[DigitalTwinBuilder].yaml | Updates recorded exists success interaction for DigitalTwinBuilder. |
| tests/test_commands/recordings/test_commands/test_exists/class_setup.yaml | Updates recorded exists class setup interactions. |
| tests/test_commands/recordings/test_commands/test_cp/class_setup.yaml | Updates recorded cp class setup interactions. |
| tests/test_commands/recordings/test_commands/test_cd/test_cd_item_all_types_success[DigitalTwinBuilder].yaml | Updates recorded cd all-types interaction for DigitalTwinBuilder. |
| tests/test_commands/recordings/test_commands/test_cd/class_setup.yaml | Updates recorded cd class setup interactions. |
Comments suppressed due to low confidence (1)
tests/test_commands/recordings/test_commands/test_set/class_setup.yaml:1
- Several VCR recordings appear to have captured
User-Agentvalues that don’t align with the test folder they live under (e.g.,test_setrecording shows(rm; ...)). If your VCR matching (or future re-recording) considers request headers, this can make cassettes brittle and cause unnecessary churn. Consider normalizing the CLIUser-Agentin tests (or filtering it out in the VCR configuration) so recordings don’t change when the invoked command label/version changes.
…opilot/add-digitaltwinbuilder-item-support
Contributor
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 36 out of 39 changed files in this pull request and generated 5 comments.
Comments suppressed due to low confidence (1)
tests/test_commands/conftest.py:1
- This changes the ordering of item types in a test parameter set (Map vs DigitalTwinBuilder). While functionally equivalent, reordering params often causes avoidable churn in parametrized test IDs and cassette naming/selection. Consider keeping an explicit stable ordering (e.g., alphabetical or append-only) for these item type collections so adding new types doesn’t reshuffle existing parameter order.
# Copyright (c) Microsoft Corporation.
shirasassoon
approved these changes
Apr 19, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📥 Pull Request
✨ Description of new changes
This PR adds support for the DigitalTwinBuilder item type in file-system item operations.
Changes