Skip to content

feat: Dev merge to Main and introducing V2#205

Merged
Roopan-Microsoft merged 100 commits intomainfrom
dev
Apr 24, 2026
Merged

feat: Dev merge to Main and introducing V2#205
Roopan-Microsoft merged 100 commits intomainfrom
dev

Conversation

@Shreyas-Microsoft
Copy link
Copy Markdown
Collaborator

Purpose

This pull request introduces several updates to improve documentation, CI/CD workflows, and development tooling for the Container Migration Solution Accelerator. The most significant changes include a comprehensive refresh of the README.md to reflect the latest architecture and technology stack, updates to Docker image tagging in deployment workflows, the addition of a backend test workflow with coverage reporting, and enhancements to ignore and linting configurations.

Documentation and Architecture Updates:

  • Refreshed README.md to reference Azure OpenAI GPT-5.1 and Microsoft Agent Framework instead of previous models and frameworks, expanded supported Kubernetes platforms, and added detailed mermaid diagrams for both agentic and deployment architectures. Also updated prerequisites, model access requirements, and clarified the migration scenario. [1] [2] [3] [4] [5] [6] [7]

CI/CD and Workflow Enhancements:

  • Updated Docker image tagging in .github/workflows/docker-build-and-push.yml and .github/workflows/job-deploy.yml to use latest_v2 for the main branch, ensuring clearer versioning and deployment consistency. [1] [2]
  • Added .github/workflows/test.yml to enable automated backend Python tests with coverage reporting and PR coverage comments, improving code quality and visibility.

Development Tooling and Configuration:

  • Added .vscode/settings.json to streamline local development with auto-approved terminal commands for linting and code checks.
  • Updated .flake8 configuration to ignore E704 and improved exclusion patterns for more consistent linting.
  • Renamed and expanded .dockerignore to the project root, adding more patterns to prevent unnecessary files from being included in Docker builds.

Does this introduce a breaking change?

  • Yes
  • No

Golden Path Validation

  • I have tested the primary workflows (the "golden path") to ensure they function correctly without errors.

Deployment Validation

  • I have validated the deployment process successfully and all services are running as expected with this change.

What to Check

Verify that the following are valid

  • ...

Other Information

Dongbumlee and others added 30 commits January 12, 2026 22:19
…ries and improve orchestrator configurations
…gress tracking; add comprehensive tests for termination logic
- Updated various files to enhance code formatting by aligning dictionary entries and improving whitespace usage.
- Refactored the `CosmosWorkflowCheckpoint` and `CosmosWorkflowCheckpointRepository` classes for better clarity.
- Improved the readability of list comprehensions and dictionary appends across multiple modules.
- Ensured consistent use of inline comments and docstrings where applicable.
- Enhanced the structure of error handling and logging in the `TelemetryManager` and `LoggingUtils` classes.
- Made minor adjustments to test cases for better clarity and maintainability.
…gs and Pydantic models; improve orchestration logic
…ception handling and telemetry updates; add tests for conversion report quality gates
… the processor steps

- Changed output folder naming from `/output` to `/converted` in various orchestration and prompt files.
- Updated timestamp handling in reports to use a consistent UTC format with a helper function. (mcp tool to local function)
- Enhanced routing instruction format for telemetry in prompt files to include phase labels.
- Added utility functions for generating current timestamps in UTC.
- Adjusted test cases to reflect changes in output folder structure and timestamp handling.
…nhance prompt coordinator with detailed RAI content policy
- Add missing copyright headers (6 files)
- Add missing module docstrings (16 files)
- Remove banner/section-divider comments (main.py, main_service.py, queue_service.py)
- Remove redundant inline comments (main.py, prompt_util.py, console_util.py)
- Remove commented-out code (agent_framework_helper.py, groupchat_orchestrator.py, orchestrator_base.py, credential_util.py)
- Remove placeholder comments (main.py, main_service.py, prompt_util.py)
…lint fixes

- Update AZURE_OPENAI_API_VERSION from 2025-01-01-preview to 2025-03-01-preview in both main.bicep and main_custom.bicep

- Fix ruff lint errors in backend-api (None comparison, unused variables)

- Apply ruff formatting across processor and backend-api source files
- Fix missing 'import re' in orchestrator_base.py causing silent NameError
- Update regex to match new instruction format 'Phase X : Phase Title - <what to do>'
- Update all 4 coordinator prompts with consistent phase format in instruction field
- Fix progress bar using apiData.step instead of apiData.phase (sub-phase overwrites broke indexOf)
- Fix redundant phase labels: show step name as category, phase as sub-detail
- Redesign Current Activity section with multi-line agent cards
- Show detailed action labels (Thinking, Speaking, Invoking Tool, Analyzing)
- Add step-level elapsed timer from step_timings
- Add update_phase() to TelemetryManager for sub-phase UI updates
- Fix step timing seed to always initialize on step start
fix: progress modal phase tracking and UI improvements
Frontend:
- Add Migration Overview, Step Timeline, Agent Participation to summary page
- Show Coordinator routing target and instruction in progress modal
- Fix YAML step name capitalization
- Show phase name in modal title instead of step name
- Reverse Recent Activity order (latest first)
- Move Recent Activity title outside scroll box
- Hide Coordinator from Agent Participation (system agent)

Agent Prompts:
- Add ANALYSIS SIGN-OFF SCOPE to all 8 analysis agent prompts
- Add DESIGN SIGN-OFF SCOPE to all 8 design agent prompts
- Prevent analysis agents from FAIL on design-time concerns
- Prevent design agents from FAIL on stakeholder-dependent actions
- Scope sign-offs to step-appropriate criteria only
- Add last_full_message to agent_activities render output
- Use full message (not truncated preview) for Coordinator JSON parsing
- Fallback to regex extraction if JSON parse fails
@github-actions
Copy link
Copy Markdown

Coverage

Coverage Report •
FileStmtsMissCoverMissing
__init__.py440%1, 3–5
main.py990%1, 4, 7, 10–12, 16, 19–20
libs
   __init__.py00100% 
libs/application
   application_configuration.py260100% 
   application_context.py21011346%210–211, 216–219, 221, 226–229, 231, 552–553, 555, 560–561, 601–602, 604, 611–612, 647–648, 650, 657–658, 711–712, 716–718, 721–725, 756–757, 759, 761–762, 766, 768–769, 772–775, 777–778, 782–784, 787–791, 794, 814–816, 818–819, 822–823, 827, 829–831, 833, 835–836, 838–840, 842, 845–846, 858, 861–862, 865–868, 870, 873–874, 876, 879–880, 883–884, 886, 888, 905–907, 910–911, 914–919, 921, 924–926, 973
libs/azure
   app_configuration.py21480%31, 52–53, 55
libs/base
   SKBase.py00100% 
   SKLogicBase.py44440%1–2, 4–5, 14–15, 18, 21–24, 28, 35–36, 38–40, 42–43, 56–57, 59–60, 64–65, 69, 71, 76, 78, 82, 84–85, 87–88, 97–98, 107–108, 114, 116–120
   __init__.py00100% 
   application_base.py44979%24, 28, 49, 58, 61, 64–65, 70, 79
   fastapi_protocol.py880%4, 6–7, 10, 16, 22, 35–36
libs/services
   interfaces.py23673%16, 21, 32, 37, 48, 53
routers
   router_files.py59590%1–2, 4, 11, 14–23, 25, 32–33, 35, 45–46, 51–52, 54–56, 58–59, 61–63, 65–66, 68–70, 72, 74–77, 79–80, 86, 90, 97–98, 100, 104–106, 108–109, 113, 119–124
   router_process.py3223220%1–5, 7–17, 25, 29, 36–45, 48–52, 54–56, 58–59, 61, 63–65, 67–73, 76–77, 79, 81–82, 87, 89, 92–93, 95, 97–98, 103, 105, 108–109, 120–121, 123–124, 127–128, 131–132, 135–136, 138–139, 142, 144–146, 149–150, 156, 158, 161, 163, 167, 172, 174, 179, 194–195, 197–200, 203–204, 215–216, 218–219, 222–223, 226–227, 230–231, 233–234, 237, 240, 242, 245, 247, 252, 267–268, 270, 272–273, 277–279, 282–283, 293–294, 296–297, 302–303, 306–307, 309–310, 313, 316, 318, 323, 331–332, 334, 336–338, 341–342, 351–352, 354–355, 358–359, 362–363, 365–366, 369, 375, 383, 385, 388–389, 391, 397–399, 404–405, 413–414, 416–417, 422–423, 425–426, 429, 432, 434–435, 440–442, 444, 446, 448, 453, 461–466, 471–472, 480–481, 483–484, 489–490, 492–493, 496, 499, 502, 511, 515, 517–522, 527–528, 537–538, 540–541, 546–547, 549–550, 553, 556, 560, 564, 566–567, 571–572, 576–581, 586–587, 597–598, 600–601, 604–605, 607–608, 611–613, 616–618, 621–622, 626–627, 632, 634–636, 641–642, 645, 650, 652, 656, 664–666, 670–672, 676–680, 685–686, 694–695, 697–698, 701–702, 704–705, 708–710, 713–715, 718–719, 723–724, 728, 730–732, 737–738, 741, 746, 748, 750–752, 756–758, 762–766
routers/models
   files.py20575%10–11, 19, 24–25
TOTAL273624749% 

Tests Skipped Failures Errors Time
44 0 💤 0 ❌ 0 🔥 12.199s ⏱️

@Roopan-Microsoft Roopan-Microsoft changed the title Chore: Dev merge to Main and introducing V2 feat: Dev merge to Main and introducing V2 Apr 24, 2026

// Extract blocking info from 🚧 segment
const blockingMatch = raw.match(/🚧\s*Blocking\s*(\d+)/);
const blockingCount = blockingMatch ? parseInt(blockingMatch[1]) : 0;
)

return "\n".join(error_report)
return f"Error converting timezone: {str(e)}"
[PROCESSING] EXAMPLE WORKING CALLS:
calculate_time_difference('2023-12-25 10:00:00', '2023-12-25 15:30:00', 'hours')
calculate_time_difference('2023-12-25', '2023-12-26', 'days')"""
return f"Error calculating time difference: {str(e)}"
task_param=task_param,
)
finally:
migration_processor = None
@Roopan-Microsoft Roopan-Microsoft merged commit df7f71b into main Apr 24, 2026
25 of 26 checks passed
@github-actions
Copy link
Copy Markdown

🎉 This PR is included in version 1.1.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants