All notable changes to the Microsoft Copilot Studio Labs will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
-
Event-aware navigation. Labs opened from an event page now show an in-lab rail below the header with the event name,
Lab X of Yposition, Previous / Next lab buttons, and an expandable agenda popover. A matching pair of Previous / Next cards renders at the bottom of the lab. Breadcrumbs override toHome / Events / <Event> / <Lab>when an event context is active. Event context sticks viasessionStorage['mcs-labs.event-context.v1']so the user keeps in-event navigation even when they click internal links that don't carry?event=. A × button on the rail exits the event context explicitly. -
Event agenda data model (
_data/agendas/<event_id>.yml). Each event can now declare a full schedule with labs, sessions, breaks, and external links. The event detail page renders this as a timeline; non-lab items (welcome, Q&A, lunch, etc.) display inline. Events without an agenda file fall back to the existinglabs:array — no migration required. -
Slides download chips on session rows. Session entries in an agenda can declare
slides:pointing to a file in/presentations/; the event timeline renders a small accent-tint "Slides" chip below the session title that downloads the deck when tapped. Wired to all Bootcamp + MCS in a Day modules. -
Homepage "Browse all labs →" link replacing the Learning paths grid.
-
Accessibility settings menu in the masthead: theme switcher (Light, Dark, High contrast, Match system) and 3-step text size (A−, A, A+). Preferences persist in
localStorageundermcs-labs.prefs.v1. A pre-paint inline script applies the stored theme before CSS loads, preventing any flash of wrong theme on reload. -
Dark-mode Rouge syntax highlighting (Monokai-like palette) and high-contrast code blocks under
[data-theme="hc"]. -
Design-token layer (
assets/css/_tokens.scss): all site colors now resolve through CSS custom properties with Light, Dark, and High contrast palettes plus aSystemoption that followsprefers-color-scheme. -
Global
prefers-reduced-motionblock that neutralizes panel slide, typing-dot pulse, and send-button transitions for motion-sensitive users. -
Continuous a11y coverage on pull requests:
pa11y-ciat WCAG 2.1 AA (.github/workflows/a11y.yml,.pa11yci.json) and Lighthouse CI requiring an accessibility score ≥ 95 (.github/workflows/lighthouse.yml,lighthouserc.json).
- Lab Assistant chat persists across in-tab page navigation using
sessionStorage(no cookies). Token, Direct Line conversation, and transcript are preserved; state clears when the tab closes. Open/closed panel state also survives navigation. - Lab Assistant panel no longer overlaps the site masthead on small screens — panel top now tracks the masthead's live height.
- Lab Assistant now shifts main content instead of overlaying it at viewports ≥ 1024 px. Below 1024 px the panel continues to overlay; at 1440 px+ both the TOC and the panel stay on-screen. The TOC collapses when the panel is open between 1024–1440 px to keep the content column readable.
- Lab Assistant pull-handle is now a native
<button>; gains automatic keyboard activation and focus semantics. - Pinned
minimal-mistakes-jekyllto= 4.27.3to protect the new_includes/masthead.htmlshadow from silent upstream drift.
- Restore lab content overwritten by the redesign merge (PR #265). The
_labs/*.mdcollection was frozen at 2026-03-06 and missed subsequent content PRs (#215, #224, #225, #234, #242, #244, #245, #248, #249, #250, #251, #252, #253, #254, #255, #256, #257, #258). Rewrote every lab body from the authoritativelabs/*/README.mdsource. - Re-apply PR #246 orphan-lab removal: delete
public-website-agentandask-me-anything-30-mins(lab files and navigation entries) that returned after the redesign merge. - Secondary-gray text tokens (TOC titles, timestamps, placeholders, hints) darkened to pass WCAG 2.1 AA contrast; previously several fell between 1.8:1 and 3.3:1.
- Visible keyboard focus ring on the Lab Assistant send input; previously
outline: none !importantstripped it with no fallback. - Lab Assistant decorative SVG icons now carry
aria-hidden="true" focusable="false"so screen readers skip them. - Lab Assistant send input is now associated with a
<label>(Message Lab Assistant) — placeholder alone was not sufficient for assistive tech. - Lab Assistant panel announces with
role="dialog"+aria-labelledbyand exposesaria-expandedon its trigger; previously announced as a generic complementary region with no expanded state.
- Presentation decks added to presentations folder (#227)
- Presentations folder structure (#205)
- Optional Work tab experience steps to agent-builder-m365 lab (#190)
- Bug Bash guide for reporting lab issues (#151)
- Report Issue button to site navigation (#152)
- mcs-governance lab, mcs-in-a-day-v2 event (#149, #150)
- Required solution files for labs (#145)
- New ALM consolidated lab combining setup-for-success and pipelines (#143)
- Copilot Studio Tools lab (#142)
- Dataverse MCP Connector lab (#140)
- New Component Collections lab (#139)
- Dataverse search steps (#137)
- Copilot Studio bootcamp labs (#129)
- Use README as source of truth for lab durations (#161)
- Update BUG-BASH.md portal link to point to bootcamp event page (#160)
- Refine instructions for Copilot Studio agent creation (#157)
- Updates from testing (#155, #156)
- Update component collection name and contents in Component Collections lab (#147)
- Update root README with all labs (#146)
- Update core-concepts-variables-agents-channels from testing (#144)
- Update multi-agent lab copy (#128)
- Update licensing guide and file size (#130)
- Refactor core concepts into three focused labs (#131)
- Fix note callout formatting in governance lab (#199)
- Revise prompt for visual sales chart in README (#169)
- Refine summary of prompt in README (#170)
- Update governance lab agent URLs and fix Dockerfile multi-arch support (#197)
- Add missing mcs-governance lab to README table (#154)
- Fix mcs-ALM 404 by renaming folder to lowercase mcs-alm (#153)
- Fix grammar and spelling throughout multi-agent lab (#138)
- Restore multi-agent indexing (#136)
- New multi-agent lab (#122)
- Human-in-the-loop lab — expense claims with approvals (#118)
- Setup-for-success added to buildathon 1-month journey (#113)
- Workflow concurrency controls (#112)
- Update top-level docs for multi-agent lab (#124)
- Multi-agent lab: Remove indexing instructions (#123)
- Update bootcamp docs (#119)
- Update AI builder labs (#111)
- Add .gitignore for data config (#121)
- Fix typo in lab instructions (#120)
- Add tip to Ask Me Anything lab (#116)
- Fix minor typos (#110)
- Simplified single-source configuration format (ADR-012)
- Labs now defined once in
labs:section with all properties (title, difficulty, duration, section, order, journeys, events) - Adding a new lab requires ONE entry instead of 3-6
- Automatic conversion layer maintains backward compatibility with Jekyll templates
- Labs now defined once in
- Enhanced configuration audit in Check-LabConfigs.ps1
- Duplicate lab ID detection
- Journey card vs left navigation count validation
- Multi-line YAML array parsing support
- Agent Academy external lab integration
- Links to microsoft/agent-academy Recruit Level curriculum
- 13-lesson curriculum covering agents, LLMs, and deployment
- YAML export function in Generate-Labs.ps1
- Serializes converted config to
_data/for Jekyll templates - Handles PowerShell hashtables, arrays, and List types
- Serializes converted config to
- Rebranded "Copilot Studio Lite" to "Agent Builder in Microsoft 365"
- Renamed lab folder
copilot-studio-lite→agent-builder-m365 - Updated all lab titles, descriptions, and references across the codebase
- Updated Microsoft docs links to new URL slugs
- Renamed lab folder
- Generate-Labs.ps1 now calls Check-LabConfigs.ps1 directly instead of embedding audit logic
- Order numbering scheme updated to 100-699 range (all 3-digit)
- NEW_LAB_CHECKLIST.md simplified to reflect single-entry workflow
- Duplicate lab counting in card vs nav validation (reset currentLab after section exit)
- List type serialization in YAML export (handles System.Collections.Generic.List)
- External lab order not being applied (was always 999, now reads from config)
- Events dropdown navigation system for improved scalability (#89)
- Replaced flat event links with collapsible dropdown in header
- Added support for 5 events: Bootcamp, Azure AI Workshop, MCS in a Day, Agent Build-A-Thon (1 day), Agent Build-A-Thon (1 month)
- Implemented JavaScript toggle behavior (click, outside click, ESC key)
- Added ARIA attributes for accessibility
- Two new Build-A-Thon event pages (#89)
- Agent Build-A-Thon (1 day) with 2 labs
- Agent Build-A-Thon (1 month) with 8 labs including autonomous AI agents
- Event context banner system (#89)
- Dynamic banner shows current event context when viewing labs with
?event=parameter - Left navigation title changes to "Event Navigation" in event context
- Dynamic banner shows current event context when viewing labs with
- Comprehensive CHANGELOG.md documenting project history from June 2025 to present (#90)
- Improved button styling across all theme variants (#89)
- Added
--text-on-accentCSS variable to Rich and Minimal themes - Fixed text contrast issues in all 4 theme combinations
- Added
- Button text contrast issues across all 4 theme variants (#89)
- Duplicate emoji display in event context banner (#89)
- Guild Hall Custom MCP lab with Windows curl syntax (#54, #78, #81, #86)
- PR merge verification step in workflow documentation (#76)
- Updated BYOM lab to focus on Chit Chat Generator with grok-3-mini (#80)
- Switched Azure AI Workshop lab order - Data Fabric Agent now Lab 4, Guild Hall MCP now Lab 5 (#79)
- Enhanced Dataverse MCP connector lab content (#77)
- TOC regex capturing all content after horizontal rules (#85)
- TOC anchors with emoji headings preserving leading dashes (#84)
- Minor formatting and clarification improvements (#83)
- Broken image references and Azure region updates (#82)
- Standardized lab resource placeholders in contract-alerts-azure-ai (#87)
- MCS in a Day event page with unified event system (#67)
- Automated lab configuration auditing system (#74)
- Copilot Studio Lite progressive learning lab (#63)
- Enhanced BYOM lab with screenshots and improved instructions (#75)
- Consistent header layout between rich and minimal themes (#75)
- Correct image filename reference in dataverse-mcp-connector lab (#75)
- Bring Your Own Model (BYOM) lab (#65)
- Contract Alerts Azure AI lab with Azure setup reference and accessibility improvements (#64)
- Automated H2-only TOC generation with truncation bug fix (#66)
- Data Fabric Agent lab with CSS improvements (#55)
- Removed duplicate script block causing redundant function definitions (#56)
- Escaped pipes in markdown link text to prevent table parsing (#59)
- Added missing HTML comment opening tag in default layout (#60)
- Updated callout wording in dataverse-mcp-connector lab (#61)
- Guild Hall MCP lab (#54)
- Markdown detection feature and improved fenced code block formatting (#52)
- Complete apostrophe spacing resolution with Kramdown configuration (#50)
- Apostrophe spacing issues in HTML rendering (#48)
- Comprehensive bootcamp navigation system with section filtering (#45)
- Enhanced lab instructions for Lab 4 and other bootcamp labs (#46, #47, #49)
- Scroll-to-top button on lab pages (#42)
- Web portal link to README for better user experience (#43)
- Complete theme system overhaul with major infrastructure cleanup (#41)
- Hide lab numbers from both lab cards and left navigation (#44)
- Major navigation fixes and UX improvements for lab browser (#39)
- Comprehensive documentation pipeline for GitHub Pages enhancement (#37)
- Markdown formatting issues in autonomous-account-news lab (#38)
- Revised Dataverse connector configuration (#36)
- Updated autonomous lab instructions (#34, #35)
- Revised topic addition steps in README (#33)
- 30-minute version of Ask Me Anything lab (#33)
- Updated labs to add tips and place Teams chat as extra challenge (#32)
- Revised Nova AI setup and interaction instructions (#28)
- Clarified connector names and commit message examples (#27)
- Updated agent configuration and file handling instructions (#26, #25)
- Fixed URLs and improved step instructions (#29)
- Updated CUA lab to use hosted browser instead of hosted machine (#24)
- Renamed "Agent Builder" to "Copilot Studio Lite" (#23)
- Modified Excel knowledge to file upload in contract alerts lab (#22)
- August retrospective updates for workshop agent (#21)
- Replaced poem by city in lab content (#15)
- Documentation updates and README improvements (#13, #14)
- Autonomous agents with CUA lab (#12)
- MCP Qualify Lead lab (#11)
- Standard Orchestration lab (#9)
- MBR prep SharePoint agent lab (#7)
- Account news autonomous agent lab (#4)
- Blockquote formatting (#5)
- Added Microsoft SECURITY.MD (#2)
- Initial repository setup with Microsoft mandatory files
- Agent Builder Web lab
- Ask Me Anything lab
- Setup for Success lab
- Lab template for contributors
- Journey-based navigation (Quick Start, Business User, Developer, Autonomous AI)
- Multi-theme system (Rich/Minimal × Light/Dark)
- Automated PDF generation from markdown
- Docker-based development environment
- PowerShell automation scripts for lab generation
- README with project overview and setup instructions
- LICENSE file