CA to DA migration tools - #294
Open
Graham McMynn (GrahamMcMynn) wants to merge 3 commits into
Open
Graham McMynn (GrahamMcMynn) wants to merge 3 commits into
Graham McMynn (GrahamMcMynn) wants to merge 3 commits into
Conversation
Introduces the essmig CLI under tools/ess-ca-to-da. It discovers a customer's ESS Custom Engine Agent (CA) customizations from Dataverse, merges them onto the current ESS Declarative Agent (DA) template, and emits an importable ALM package plus human-facing reports. Highlights: - Auto-detects installed ESS agents (core/hr/it); --vertical is optional. - inspect writes customizations.md tagging each component migratable now / needs you / not supported yet, joined from the same merge the migration report uses. - Normalizes Copilot Studio's lenient YAML (@OData keys, missing key-space, CRLF) so one malformed component fails alone instead of aborting the run. - Interactive conflict resolution with hand-merge support; offline snapshot mode for reproducible re-runs. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ypes Capture and migrate the agent's own display name and description: discovery reads the live bot row plus its managed component layer for the shipped baseline (AgentMetadata), and merge carries a confirmed rename onto config botName/gptDisplayName and a re-description onto agent.yml entity.description. An unread baseline degrades to a review item rather than overwriting the template. Surfaced in customizations.md and the assessment. Detect and report every customized component the agent owns instead of dropping non-carriable types at discovery: the owned sweep now queries DETECTABLE_COMPONENT_TYPES and _classify keeps all agent-owned customizations. File attachments (14), Copilot settings (18) and evaluations/test cases (19) route to MANUAL with reproduced configuration; skills fall through to NO_TARGET. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The agent's Overview description is stored in the description column of the gpt.default botcomponent, a sibling of the data YAML (which carries only displayName and instructions). Reading data therefore never surfaced the description, so a customer's re-description was silently missed. Retarget _agent_metadata at the gpt.default botcomponent: read the effective name/description from its row columns and the shipped baseline from its managed out-of-box layer. Drop the unused bot-row read path and debug scaffolding. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
qiangzeng2000-hash
approved these changes
Sep 22, 2026
qiangzeng2000-hash
left a comment
There was a problem hiding this comment.
Approved for the initial inspect-only workflow to collect customer CA customization snapshots and diffs for engineering review. Migration and import execution are outside this approval.
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.
Description
This PR creates a migration tool that can be used for auditing the customizations that have been applied to the out of box ESS CA agent
Type of change
Testing
This change has been tested by running the migration tool against our test tenants.
Checklist