Sr. Content Developer at Microsoft, working remotely in PA, TechBash conference organizer, former Microsoft MVP, Husband, Dad and Geek.
160601 stories
·
33 followers

Kiro, Strands Agents & MCP: 10 Updates You Missed

1 Share
The MCP specification just went stateless. Clare Liguori — Senior Principal Engineer at AWS and core MCP maintainer — explains what changed, why it matters, and what it unlocks for agent developers building with Strands Agents and Kiro. In this episode, Romain sits down with Clare Liguori, Senior Principal Engineer at AWS, to discuss the July 28 MCP spec release, new MCP extensions (Skills, Tasks, Events), Strands Agents Harness SDK, Strands Shell, Physical AI in Strands Labs, and the latest Kiro updates across Web, CLI, IDE 1.0, and iOS. Key takeaways: • MCP goes stateless — the July 28 spec release removes the need for stateful streaming in remote MCP servers, so SaaS providers can drop sticky sessions and load-balancer gymnastics and run each request anywhere. Expect a new wave of remote MCP servers over HTTP. • New MCP extensions framework — features now start as stable extensions before graduating into the official spec: Skills over MCP (bundle a workflow and its tools together), long-running Tasks (kick off builds or jobs without blocking the agent), and Events (trigger always-on agents from external signals like Slack or an earthquake feed). • Strands Agents Harness SDK & TypeScript 1.0 — a more batteries-included harness with context management, compaction, and excellent out-of-the-box file tools, plus the TypeScript SDK reaching 1.0. Upgrade the model ID and your agent gets better. • Strands Shell — a lightweight, in-process agent sandbox written in Rust (cross-platform, Python SDK today). It gives an agent a virtual file system and minimal bash/Lua scripting without a heavyweight VM — great as a safe scratch pad or for scripting tools together. • Strands Labs & Physical AI — an experimental space for bleeding-edge agent ideas, including combining low-latency local VLA models on robots with the long-range, multi-task reasoning of frontier models in the cloud. • AgentCore Managed Harness — a configuration-based way to run agents (prompt, model, Lambda tools, context and session management) that is Strands under the hood, no Python or TypeScript required. AgentCore Gateway added MCP 2026-07-28 support day one, with version negotiation for backward compatibility. • One unified Kiro harness — Kiro Web, iOS, CLI, and IDE 1.0 now share one harness, bringing spec-driven development, hooks, skills, and powers to every client and letting new features ship across clients on the same day. • Automated reasoning in specs — property-based testing plus ambiguity and conflict detection in requirements help you express intent clearly; the permission system is built on Cedar with policy presets like dev shell, trust all, and read all. • Right-sizing specs and collaborating — check specs into code as a snapshot of intent, watch design and task-list length as a signal to split into multiple specs, add per-task validation steps, and collaborate on specs with comments in Kiro Web.

With Clare Liguori, Senior Principal Engineer at AWS





  • Download audio: https://op3.dev/e/dts.podtrac.com/redirect.mp3/developers.podcast.go-aws.com/media/221.mp3
    Read the whole story
    alvinashcraft
    just a second ago
    reply
    Pennsylvania, USA
    Share this story
    Delete

    Introducing SharePoint News and Viva Engage cross-posting

    1 Share

    SharePoint helps communicators create rich, engaging stories, announcements or news posts for their organizations. Viva Engage helps those stories travel through the communities and conversations where people connect every day. With SharePoint News and Viva Engage cross-posting, authors can now bring these experiences together.

    The new experience lets you distribute a SharePoint news post to a Viva Engage storyline or community. Readers can open the complete news post in full fidelity from Engage, while comments, replies, and reactions made in SharePoint or across Engage surfaces remain synchronized as one conversation.

    See this video with Reetik Chandra and Vesa Juvonen for the live demo of new features.

    Meet people where they already connect

    A great news post should not stop at the boundary of a single site. Cross-posting extends the reach of SharePoint news into Viva Engage feeds, digests, and connected experiences. Readers get the same experience whether they use Engage on the web or mobile app, including iOS, or the Engage apps in Microsoft Teams and Outlook. Authors can reach these audiences without recreating content or managing separate discussions.

     

    A SharePoint news post in the Viva Engage feed.

    Full-fidelity news, directly in Engage

    The Engage feed card gives readers a clear entry point to the complete SharePoint story. Wherever people discover the cross-post in Engage, selecting View news post opens the complete SharePoint page in full fidelity. It is not a screenshot or a simplified copy: sections, images, buttons, links, custom SPFx webparts and other page elements remain available as part of the original news post.

     

    Readers can open the complete SharePoint news post from the Engage feed.

    Links in both experiences make it easy to move between the original SharePoint news post and the Engage conversation. The result is one story that remains visually consistent wherever readers encounter it.

    One news post - One conversation

    Cross-posting creates a single synchronized conversation. Comments, replies, and reactions made from SharePoint or Engage appear in the same thread. Readers can participate from the experience that works best for them while authors keep one connected discussion attached to the news.

     

    Comments and reactions remain connected across SharePoint and Viva Engage.

    Because the comment thread is shared, communicators do not need to monitor or reconcile separate conversations. Readers see the same discussion, including nested replies and reactions, from either product.

    Cross-post in just a few steps

    The experience is built into the SharePoint publishing flow and is also available for news posts that have already been published:

    1. Publish your SharePoint news post. The distribution panel appears automatically after publishing.
    2. Select the Engage card. For a news post that is already published, start from the Amplify or Promote button in the command bar, and then choose Engage.
    3. Confirm the Post as identity, choose a storyline or an Engage community where you can publish, and select Amplify.

    The Engage composer retains the publishing options authors already use in Engage. Authors can add people, send the post as an announcement when they have the required role, and, if they are configured as a delegate, publish on behalf of the person they support.

     

    Choose who is posting and where the news should appear in Engage.

    This feature is available to everyone with a Microsoft 365 license, including users who do not have a Viva C&C license. Those users see Promote instead of Amplify in the SharePoint command bar; the remaining cross-posting steps are the same.

    Understand performance across channels

    Authors can use analytics in SharePoint and Engage together to understand how their news is performing across distribution channels. SharePoint page analytics can show performance from SharePoint and Engage, while Engage analytics provides a channel-level view of reach, reactions, and comments.

    Available analytics can vary by license, and SharePoint news is identified as a distinct post type in Engage conversation rollups.

     

    SharePoint analytics help authors understand performance across distribution channels.

    Bring your news and conversations together

    SharePoint News and Viva Engage cross-posting combines the rich authoring experience of SharePoint with the reach and participation of Engage. Authors can publish once, bring the story to a wider audience, and keep every comment and reaction connected to the original news post.

    Try cross-posting your next SharePoint news post to a Viva Engage storyline or community, connect people with important news and create more unified conversations across your organization!

    Read the whole story
    alvinashcraft
    11 seconds ago
    reply
    Pennsylvania, USA
    Share this story
    Delete

    What's New in Copilot in SharePoint: September 2026

    1 Share

    Your monthly roundup of what's new in Copilot in SharePoint.

    Copilot in SharePoint helps you do more with your content — ask questions, run workflows, and create sites, pages, interactive reports, and Office files using natural language. This month, reusable skills can follow you across SharePoint and OneDrive, Copilot can measure and improve those skills with evaluations, and new guidance helps AI agents build live, SharePoint-safe experiences. Here's everything that's new.

    Build better skills and use them anywhere 

    Personal skills that follow you

    What's new: Create a personal skill once and use it across all your SharePoint sites

    Why it matters: Your preferred formats, standards, and repeatable ways of working can travel with you instead of being tied to one site.

    Sample use cases: 

    • Save your executive-update structure as a personal skill, then use it with project content wherever it lives.
    • An executive can ask Copilot to create a personal document briefing skill that turns lengthy SharePoint documents into concise summaries. The skill highlights proposals, expected value, decisions needed, key risks, open questions, and next steps

    Try these prompts:

    • “Create a personal skill for concise weekly leadership updates with progress, decisions, risks, and next steps.”
    • “Create a personal skill that turns long SharePoint documents into concise executive briefings highlighting business value, decisions, risks, and next steps, with source citations.”
    If the player doesn’t load, open the video in a new window: Open video


    Watch a demo: https://www.youtube.com/watch?v=yc7foD5cHfs&t=30s

    Improve skills with measured evaluations

    What's new: Ask Copilot to improve a skill with tests, evaluations, and measured changes instead of manually rewriting instructions and hoping for a better result.

    Why it matters: You can see whether a change actually improves quality before you share the skill more broadly.

    Sample use case: A Legal Operations team asks Copilot to improve its Marketing Legal review skill. Copilot suggests tests, evaluation criteria, and targeted updates to align external content with legal guidance and identify risks.

    Try this prompt: “Improve my marketing legal document review skill. Create representative tests, evaluate the current results, and recommend measured changes.”

    Watch the demo: https://www.youtube.com/watch?v=yc7foD5cHfs

    Create SharePoint HTML

    Build live, SharePoint-safe pages and reports

    What’s new: Every Microsoft 365 customer now has tenant-specific HTML guidance at _html. Point Cowork, Scout, GitHub Copilot, Copilot Studio, or another AI assistant to this page for up-to-date instructions on creating HTML designed to work within SharePoint’s sandbox. The guidance supports capabilities such as live-linked SharePoint lists, helping reports stay connected to their source data.

    Why it matters: AI assistants typically generate standard web HTML, which may not work as expected in SharePoint. This guidance removes the need to explain SharePoint’s requirements yourself—and updates automatically as new capabilities become available in your tenant. More people can create rich, securely shareable experiences without requiring custom development for every scenario.

    Sample use case: In Cowork, turn a SharePoint project-tracking list into an interactive status report with filters, key milestones, risks, and links to the source items.

    Try this prompt (in Cowork, Scout, Copilot Studio, or another AI assistant): “Use https://[tenantname].sharepoint.com_html to generate a new HTML project status report about the content in this folder.

    Watch the demo: https://youtu.be/yc7foD5cHfs?t=339

    Understand content

    Understand images with Copilot

    What’s new: Ask questions about images across a document library—without selecting and reviewing them individually.

    Why it matters: Copilot could already explain or extract text from a selected image. Now, it can analyze images across your library to surface relevant details and extract visible text at scale.

    If the player doesn’t load, open the video in a new window: Open video

     

    Sample use case: A facilities team asks Copilot to review site photos, identify equipment and labels, and flag images that may show maintenance issues.

    Try this prompt: “Review the images in this library. Summarize the equipment and labels shown, extract relevant text, and flag anything that may require follow-up.”

    Automate simple workflows & notifications

    Post a message in Teams for file updates

    What's new: Let your team know when new files are added or key metadata updates occur. Send a simple message in a group chat or channel with the file title, link and your own custom text.

    Why it matters: Conversations and collaboration happen in Teams. Keep the source file in SharePoint and get feedback from colleagues, notify a partner team a file is ready to review, or send a weekly reminder to look at files with an upcoming due date filtered view.

    If the player doesn’t load, open the video in a new window: Open video

     

    Sample use cases:

    • Send high $ invoices for leadership review — when you receive an invoice over $1M, post an exception notice in your chat with leadership, gather input and review critical details before processing a payment.
    • Review new client documents— when a new client document is submitted, post a message in the onboarding channel.

    Try this prompt: Send me a chat for new files, when status = final. Post a message in our group chat, or post in our Team channel when a due date is updated.

    Learn more: Getting started with Workflows | Microsoft Support

    Workflows to route approval requests

    What's new: Track approvals in the context of your files and lists, collect required information, and route requests to the right reviewers.

    Why it matters: Approvals stay connected to the content and status that triggered them, giving requestors and reviewers a clearer record of what was submitted, who needs to act, and what happens next.

    If the player doesn’t load, open the video in a new window: Open video

     

    Sample use cases:

    • Clear new vendor documents — when a file is added to the Vendor Onboarding library, send an approval request to the compliance lead, then move the file into the Approved folder once it clears.
    • Review RFP’s — when a new RFP item is created in your pipeline list, request manager approval before the bid goes out, and email the requestor as soon as the status changes to Approved.

    Try this prompt: Collect new PTO requests, route approvals to our team manager whenever submitted. Tell the requestor when they are approved.

    Learn more: Approvals in Lists & Document Libraries | Microsoft Support

    A Chat Experience That’s Always Improving

    Copilot in SharePoint now delivers more consistent, predictable cards in chat, making information, approvals, and available actions easier to scan so you can verify the context and take the next step with confidence.

    Try it today

    Copilot in SharePoint is available for users with a Microsoft 365 Copilot license. For ready-to-use prompts and step-by-step guidance, explore the Copilot in SharePoint Adoption Hub and the Getting Started Prompt Library .

    Bring us your business challenge! If your team has a high-value SharePoint scenario that could benefit from Copilot, nominate it for the Copilot in SharePoint co-build program and work with us to shape the solution.

     

    See you next month for the next round of what's new! 🚀

    Read the whole story
    alvinashcraft
    18 seconds ago
    reply
    Pennsylvania, USA
    Share this story
    Delete

    Windows news you can use: August 2026

    1 Share

    From device recovery and unattended remote support to post-quantum cryptography readiness and Windows 365 improvements, August delivered a broad set of updates for IT admins. In this edition of Windows news you can use, explore new recovery and management tools, security enhancements designed to strengthen protection by default, Windows Server updates, AI-related improvements in Windows, and upcoming lifecycle milestones that may require action in your environment.

    New in Windows update and device management

    • [RECOVERY] – From automated, cloud-based fixes to full device rebuilds, a new Windows device recovery guide helps you find the right recovery tools to help you address everything from mass-scale outages to isolated issues.
    • [BACKUP] – New PowerShell scripts available on GitHuband the PowerShell Gallery offer a simpler way to manage Windows settings backup and restore data using Microsoft Graph APIs.
    • [AUTOPILOT] – Windows Autopilot device preparation now supports device association, making it possible to bind a physical Windows 11 device to your organization before enrollment. Associated devices are automatically marked as corporate-owned and can receive device-targeted policy assignments, device naming, and additional out-of-box experience (OOBE) customizations.
    • [INTUNE] – Remote Help unattended support with remote sign-in a new Intune capability that lets helpdesk staff remotely access physical Windows devices by signing in with credentials they have access to, without requiring the user to grant access or even be logged in. Explore Remote Help on Windows for details on prerequisites and setup guidance.
    • [UPDATE DELIVERY] – If you've ever had to troubleshoot a content delivery issue with Delivery Optimization or Microsoft Connected Cache, the Delivery Optimization Troubleshooter can quickly help you identify why things aren't working as expected.
    • [W365] [AGENTS] – Currently in preview, Windows 365 for Agents Cloud PC agent pools now support linking either a Microsoft Entra group or a Windows Autopilot device preparation profile. Target security and compliance policies, deploy required applications, and maintain consistent configurations across Windows 365 for Agents using existing Intune workflows. See Cloud PC agent pool device grouping and preparation for more details.
    • [W365] [AUTOPILOT] – You can now assign Device Preparation policies to Windows 365 Reserve provisioning policies so required applications and configurations are applied during provisioning before users connect to their Cloud PCs. In addition, Windows Autopilot device preparation is now generally available for Windows 365 Enterprise and Windows 365 Flex in dedicated mode in Government environments.
    • [W365] [RESERVE] – Windows 365 Reserve now supports bulk provisioning and deprovisioning of up to 1,000 Cloud PCs in a single request.
    • [W365] [CONNECTIVITY] – Windows 365 has started the rollout of Modern Auto-Reconnect, a new connection recovery experience designed to improve resiliency during temporary network interruptions.
    • [ARM] – New signals show that momentum for Windows on Arm is accelerating. Explore the latest device announcements and trends in the expanding catalog of more than 7,000 optimized apps across key workloads.

    New in Windows security

    • [VBS] [KERNEL PROTECTION] – Beginning in October 2026, Microsoft will expand memory integrity protection across eligible devices, helping you benefit from stronger kernel-level protection from sophisticated attacks by default with little or no additional configuration.
    • [PQC] [CODE-SIGNING] – Microsoft has published guidance to help software publishers, developers, and IT administrators prepare for the next generation of Windows code signing. Changes coming in the next few months will strengthen software supply chain security through modern cryptographic protections.
    • [W365] [AGENTS] – A dedicated security baseline for Windows 365 for Agents is now generally available in Microsoft Intune. Apply Microsoft-recommended security configurations to agent Cloud PCs, helping establish a consistent security posture and protect agent workloads from common security risks.

    To explore what's new in security across the Microsoft platform, see What's new in Microsoft Security: July 2026.

    New in AI

    • [TASK MANAGER] – Windows Task Manager now provides deeper visibility into AI workloads running on a device. Some newer devices will now see neural processing unit (NPU) or graphics processing unit (GPU) neural engine activity familiar CPU and standard GPU activity on the Processes tab, with utilization on the Performance tab.

    New in Windows Server

    For the latest features and improvements for Windows Server, see the Windows Server 2025 release notes and Windows Server 2022 release notes.

    • [HARDENING] – The October 2026 monthly security updates for Windows Server will begin Enforcement mode for Active Directory Federation Service (AD FS) Distributed Key Manager (DKM) container ACL hardening, a change designed to address the elevation of privilege vulnerability documented in CVE-2026-56155. Organizations using AD FS should use the remaining Audit mode period to review DKM container permissions and address compatibility issues before enforcement begins.
    • [COMMUNITY] – Interested in staying informed about the latest in Azure Arc and Windows Server management, influencing product direction, and expanding your professional network? Join the Azure Arc Customer & Engineering Forum.
    • [PQC] – Windows Server now supports hybrid post-quantum cryptography (PQC) key exchange in Transport Layer Security (TLS) 1.3 as well as composite cryptographic formats that combine traditional and post-quantum algorithms in a single signature or key. Looking for guidance on how to plan for new cryptosystems and prepare for future cryptographic changes? Watch Transitioning to post-quantum cryptography.

    New in productivity and collaboration

    Install the August 2026 security update for Windows 11, versions 25H2 and 24H2 to get these and other capabilities, which will be rolling out gradually:

    • [FILE EXPLORER] – File sizes in the Details view now display using appropriate units (KB, MB, GB) instead of KB-only. We hope it helps you understand them easier at a glance.
    • [ACCESSIBILITY] – Voice Access now features Voice Isolation. As such, it recognizes your voice better by reducing interference from other speakers and background noise. Voice Access also now supports Korean.

    New features and improvements are coming in the September 2026 security update. You can preview them by installing the August 2026 optional non-security update for Windows 11, versions 25H2 and 24H2. This update includes the gradual rollout of:

    • [SECURITY] – Use Administrator protection to help reduce the risk of elevation-of-privilege attacks by using profile separation and just-in-time administrative privileges. This feature is off by default and can be enabled through Microsoft Intune (OMA-URI) or Group Policy.
    • [TASKBAR] – Choose whether the taskbar appears at the bottom, top, left, or right side of your screen. You can also try a smaller taskbar option to help maximize screen space on smaller devices.
    • [SEARCH] – Windows Search home has been simplified to reduce visual clutter and make it easier to get back to recent searches quickly. A new setting lets you choose whether web and Microsoft Store suggestions appear alongside local results. And, Windows now automatically indexes your most used folders to make those files appear in subsequent search results.
    • [START] – The Start menu now lets you select a small or large menu size; independently show or hide the Pinned, Recommended, and All sections; and hide your name and profile picture.
    • [SHARE] – Users signed in with a work or school account can now discover and install relevant apps directly from the share window.

    To learn about planned productivity, security, and reliability updates for Windows 11, visit the Windows Roadmap.

    Lifecycle reminders

    • [W11] [24H2] – On October 13, 2026, Windows 11, version 24H2 Home and Pro editions will reach end of updates. After this date, devices running these editions will no longer receive monthly security and non-security preview updates containing protections from the latest security threats. Enterprise and Education editions remain supported until October 12, 2027.
    • [W10] [LTSB] [LTSC]- On October 13, 2026, Windows 10 Enterprise LTSB 2016 and Windows 10 IoT Enterprise LTSB 2016 will reach the end of extended support. Windows 10 Enterprise LTSC 2021 will reach end of support (EOS) on January 12, 2027. In both cases, we recommend updating to the latest LTSC release, Windows 11 Enterprise LTSC 2024. If you need additional time to complete the transition, explore options and Extended Security Update (ESU) offerings for Windows 10 Enterprise LTSB 2016and Windows 10 Enterprise LTSC 2021.
    • [SERVER] [2022] – On October 13, 2026, Windows Server 2022 will reach end of mainstream support. After this date, Windows Server 2022 will transition to extended support, which includes security updates at no additional cost. These devices will continue to receive monthly security updates through October 14, 2031. For detailed information, see the Windows Server 2022 lifecyclepage.
    • [WMIC] – The Windows Management Instrumentation command-line (WMIC) utility has been removed from Windows 11, version 24H2 and later. WMI itself remains supported and unaffected. If you have applications, scripts, deployment tools, or monitoring systems that use WMIC, migrate them to PowerShell or a supported WMI programming interface.

    Check out our lifecycle documentation for the latest updates on Deprecated features in the Windows client and Windows Server 2025.

    Additional resources

    Looking for the latest news and previews for Windows, Copilot, Copilot+ PCs, the Windows and Windows Server Insider Programs? Find out this and more through the following resources:

    Join the conversation

    Is this update missing areas or topics you want us to include? Drop us a note in the Comments and share your thoughts on what you'd like to see.


    Continue the conversation. Find best practices. Bookmark the Windows Tech Community. Looking for support? Visit Windows on Microsoft Q&A.

    Read the whole story
    alvinashcraft
    26 seconds ago
    reply
    Pennsylvania, USA
    Share this story
    Delete

    Kotlin Toolchain 0.12: Multiplatform Library Publishing, Wasm Apps, and More

    1 Share

    Kotlin Toolchain 0.12.0 is out. This release brings some long-awaited features: multiplatform libraries publication, a preview of Wasm application support, Compose Hot Reload from the command line, and more. 

    Read on for the details, and check the release notes for the full list of changes and bug fixes.

    Additionally, klibs.io now uses the Kotlin Toolchain in production. A real backend and not a sample, it’s built on JDK 21, Spring Boot 4 (with Spring AI), PostgreSQL, and OpenSearch. We’ve converted nine convention plugins to Kotlin Toolchain templates, and two Gradle plugins with no built-in equivalent: Jib and Git Properties, which we’ve implemented as local Kotlin Toolchain plugins. Check out the sources yourself.

    To get support for Kotlin Toolchain’s latest features, use IntelliJ IDEA 2026.2.1 (or newer). Make sure the latest version of the Kotlin Toolchain plugin is installed. 

    Try the Kotlin Toolchain

    Kotlin Multiplatform libraries publication

    Library publishing arrived in preview in 0.11, but only for JVM libraries. Starting with 0.12, multiplatform libraries work too, with exactly the same configuration:

    product:
      type: lib
      platforms: [jvm, android, iosArm64, iosSimulatorArm64, wasmJs]
    
    settings:
      publishing:
        enabled: true
        group: org.example
        version: 1.0.0

    The Kotlin Toolchain publishes everything your users need to depend on your library from any of its targets: the common API, one artifact per platform, the sources, and the module publication metadata that lets build tools pick the right pieces automatically.


    Cinterop bindings are supported as well. They are published both commonized and per platform, so your users get the same C API you compiled against without setting up interop themselves. The result is consumable from Gradle projects like any other multiplatform library.

    For more details, see the documentation.

    Note: Resources of Compose Multiplatform libraries are not part of the publication yet. Follow KTC-5698 for progress.

    Better compliance with Maven Central quotas

    Because of the new quotas on Maven Central publications that Sonatype will soon enforce, we made a few notable changes to reduce the number of files published by default:

    • Checksums of signature files (.asc.sha1) are not necessary and are no longer published.
    • Only the .md5 and .sha1 checksums are published by default now. If you need to continue publishing the .sha256 and .sha512 checksums, use settings.publishing.checksums: [md5, sha1, sha256, sha512].

    Wasm application support

    wasm-js/app modules can now be built into a ready-to-use web application.

    Among the supported features are:

    • Running Wasm apps with the kotlin run command.
    • Customizing index.html and other resources. 
    • Fetching transitive npm dependencies from Kotlin Multiplatform libraries.

    More information on working with Wasm web applications is available in the documentation.

    Terminal UI improvements

    We are actively working to make the output of the kotlin command less verbose and more user-friendly. 

    Diagnostics

    For example, here are some of the recent diagnostics improvements:

    Tests in the status widget

    Running tests are now visible in the status widget under the respective tasks and their suites. There are also short test execution statistics visible during the run.

    There are more things to iron out, but we’ll get there.

    IDE improvements

    Compose preview support

    Android modules and kmp/lib modules that have Android as one of their targets now support the Compose preview feature, powered by the androidx.compose.ui.tooling.preview.Preview annotation and the Android plugin.

    Better support for Compose resources

    The IDE now correctly recognizes Compose resources, updates Res classes on the fly, provides navigation, completion, and refactorings that update both XMLs and your code.

    Android tooling improvements

    Adding to the Compose preview support mentioned above, we have also brought support for more of the Android features you are accustomed to, such as:

    • Android Lint 
    • Live Edit
    • Layout Inspector
    • Resources (R class) navigation and completion

    iOS improvements

    Starting with IntelliJ IDEA 2026.2.1, the experience of working with iOS applications should be closer to what you’re used to in Gradle projects.

    The run configuration now lets you pick a device, configure Xcode options, and choose a debug/release configuration mode.

    We’ve also fixed a few issues with Kotlin/Swift interoperability, which should be more stable now.

    Inlay hints with coordinates of catalog dependencies

    Catalog dependencies in module files and templates now have an inlay hint next to them displaying coordinates that each entry points to.

    Better Compose Hot Reload support

    We now properly support Compose Hot Reload from the command line using the kotlin run --compose-hot-reload-mode command.

    General improvements

    • The very first reload is now much faster and the build should consume fewer resources.
    • The Restart the application action from the DevTools menu is now supported.

    Compose Hot Reload MCP

    We now support an MCP server for agents to interact with applications running with Compose Hot Reload.

    To get started, add the following snippet in your mcp.json:

    {
        "mcpServers": {
            "Compose Hot Reload": {
                "command": "./kotlin",
                "args": [
                    "compose-hot-reload-mcp-server"
                ]
            }
        }
    }

    With this, agents can interact with, reload, restart, and view window snapshots, and dump the tree of composables. Read more about these capabilities here.

    Other improvements

    New recommended local dependency format using the // prefix

    Previously, the only way to define local module dependencies was to use relative paths starting with the . (dot) symbol. This approach had several problems. For example, moving a module from one directory level to another required changing all the dependency paths, such as from../../foo to ../foo. And having a multitude of ../ in deeply nested directory structures generally made paths hard to read.

    The new recommended way to define local module dependencies is to use project-root-relative paths starting with the // prefix. You might be familiar with this syntax from tools like Bazel. The // prefix represents the project root directory and can be used not only in the dependencies block but in any place that expects a path as well, for example, apply.

    Before:

    After:

    The old relative-paths approach still works for now.

    This is a step toward allowing multiple modules with the same directory name.

    Raised minimum JDK and Kotlin versions

    Until now, the minimum JDK version supported by the Kotlin Toolchain was not clearly documented anywhere, and the build would just fail in different places if you used a JDK that was too old. There is now a clear diagnostic and a clear minimum: only JDK 17 and higher are supported to compile your code. You can still use settings.jvm.release to set a lower target if your code should be runnable on lower JREs. 

    The minimum Kotlin compiler version was raised from 2.1.10 to 2.2.20. This allows simplifying our code, and is in line with the new security support policy for the Kotlin standard library. 

    Updated default versions

    We’ve also updated some of the default versions for built-in toolchains and frameworks:

    • Kotlin 2.4.10
    • JDK 25
    • JUnit Platform 6.1.3
    • KSP 2.3.11
    • Ktor 3.5.2
    • Spring Boot 4.1.0
    • DataFrame 1.0.0-rc01
    • Kotlinx.rpc 0.10.3

    Try Kotlin Toolchain 0.12.0

    To get started with the Kotlin Toolchain, check out our Getting started guide. Take a look at some examples, follow the tutorial, or read the comprehensive user guide, depending on your learning style.

    Try the Kotlin Toolchain

    To update an existing project, use the kotlin update command.

    Share your feedback

    The Kotlin Toolchain is still in Alpha and under active development. You can provide feedback about your experience by joining the discussion in the #kotlin-toolchain Slack channel (get invite: https://kotl.in/slack) or by sharing your suggestions and ideas in a YouTrack issue. Your input and use cases help shape the future of the Kotlin Toolchain!

    Read the whole story
    alvinashcraft
    1 minute ago
    reply
    Pennsylvania, USA
    Share this story
    Delete

    How OpenTelemetry Works: A Complete Guide

    1 Share

    If you’re a software developer or DevOps engineer, you've probably come across OpenTelemetry. It comes up a lot, especially when talking about observability, monitoring, or debugging distributed systems.

    You might even know the basic definition, but knowing what OpenTelemetry is vs how it actually works are two different things.

    By the end of this guide, you'll understand how OpenTelemetry works end-to-end, from the moment a request enters your application to the moment you can see it in your observability backend. You'll learn how traces, spans, context propagation, and exporters all fit together into one pipeline.

    If you're completely new to OpenTelemetry, don't worry: the next section will get you up to speed before we go any further.

    Table of Contents

    What is OpenTelemetry?

    OpenTelemetry is an open-source, vendor-neutral observability framework. It gives you a standard way to instrument your application, generate telemetry data, and export that data to any observability backend of your choice.

    Before OpenTelemetry, every monitoring tool had its own way of collecting data. If you used Datadog, you’ll have to instrument your app the Datadog way. If you switched to Jaeger, you started over. OpenTelemetry changed that by giving you one standard way to instrument your application, regardless of which backend you use

    [!NOTE] OpenTelemetry is not a monitoring platform, dashboard, or data store. It provides the tools and standards for collecting and exporting telemetry from your application to an observability backend, where the data can be stored, queried, and analyzed.

    The data OpenTelemetry collects is called telemetry. It's the information your application produces about itself as it runs, and it comes in three forms:

    • Traces tell you how a request traveled through your system.

    • Metrics give you numbers, like how many requests per second your app is handling, or how much memory it's using.

    • Logs are timestamped records of specific events that happened inside your application.

    How OpenTelemetry Works

    When a request hits your application, a lot happens behind the scenes. OpenTelemetry's job is to capture all of that activity (the traces, metrics, and logs) and send them to the right place.

    Here’s what it looks like:

    A flow diagram showing the six stages of the OpenTelemetry pipeline: the application is instrumented, telemetry is processed by the SDK, sent through an exporter, received by the Collector, and finally stored in an observability backend.

    Each stage has a specific job. Let's walk through them one by one.

    Step 1: Instrument Your Application

    Before OpenTelemetry can capture anything, your application needs to be instrumented. Instrumentation is simply the process of adding code that tells OpenTelemetry what to watch and what to record.

    There are two ways to instrument your application: automatically or manually.

    1. Automatic instrumentation

    This is the easiest one to start with. You add a library to your project, and it instruments your application for you with no changes to your existing code.

    For example, if you're running a Node.js Express app, you can add the OpenTelemetry auto-instrumentation package, and it will automatically start capturing incoming HTTP requests, outgoing calls, database queries, and more.

    Here's what that setup looks like:

    const { NodeSDK } = require('@opentelemetry/sdk-node');
    const { getNodeAutoInstrumentations } = require('@opentelemetry/auto-instrumentations-node');
    
    const sdk = new NodeSDK({
      instrumentations: [getNodeAutoInstrumentations()],
    });
    
    sdk.start();
    

    Once this runs before your app starts, OpenTelemetry begins capturing telemetry automatically. For a complete setup guide, see Getting started with OpenTelemetry in Node.js.

    2. Manual instrumentation

    Automatic instrumentation covers a lot, but it can't capture everything that happens inside your own code. If you want to track what happens inside a specific function, like how long it takes to process a payment or validate a user, you need to add that yourself.

    Here's a simple example. Let’s say you have a function that processes an order:

    function processOrder(orderId) {
      // processing logic
    }
    

    With manual instrumentation, you wrap it like this:

    const { trace } = require('@opentelemetry/api');
    
    const tracer = trace.getTracer('order-service');
    
    function processOrder(orderId) {
      return tracer.startActiveSpan('processOrder', (span) => {
        // processing logic
    
        span.end();
      });
    }
    

    What happens is that you created a span. That span now records when processOrder started, when it ended, and how long it took. You'll learn more about spans in Step 3.

    For the full manual instrumentation reference, see OpenTelemetry JavaScript instrumentation.

    Step 2: OpenTelemetry Creates Telemetry Signals

    Once your application is instrumented, OpenTelemetry starts producing telemetry data about what your application is doing. That data comes in three forms, called signals, which we've already briefly talked about: traces, metrics, and logs. Each signal answers a different kind of observability question.

    Traces show you how a request moved through your system, which services it touched, and how long each step took. Metrics give you numbers over time, things like request rate, error rate, and memory usage. Logs are timestamped records of specific events that happened inside your application.

    Here's a quick comparison:

    Signal What to shows Example Question it answers
    Trace The journey of a request through your system A checkout request passing through your API, order service, and database Why is this request slow? Where did it fail?
    Metric A measured value over time 200 requests per second, 95ms average response time Is my application healthy right now?
    Log A record of a specific event ERROR: payment failed for order #1234 What exactly happened at this point in time?

    You don't have to choose between them. In practice, you'll use all three together. A metric tells you something is wrong, a trace shows you where, and a log tells you exactly what happened.

    Step 3: Traces Follow Requests Through Your Application

    When a user sends a request to your application, that request usually touches multiple services before a response comes back. A trace is the complete record of that journey, from the moment the request enters your system to the moment it finishes.

    A trace is actually made up of smaller units called spans. Each span represents one operation, like an API call, a database query, or a function execution, and together they give you the full picture of what happened.

    Every trace gets a unique trace ID, and every span gets its own span ID. The trace ID is what links all the spans together. No matter how many services a request passes through, they all share the same trace ID, so you can follow the request from start to finish in your observability backend.

    Here's a simple example. A user places an order, and the request flows through four services:

    Trace tree diagram showing four spans under trace ID abc123: API Gateway (0–5ms), Order Service (5–20ms), Payment Service (20–45ms), and Database (45–50ms).

    Each span has a start time and an end time, so you can see how long each operation took. If something slowed down or failed, you can pinpoint exactly where it happened just by looking at the spans.

    Step 4: Context Propagation Connects Work Across Services

    In Step 3, you saw how a single trace is made up of spans from multiple services. But here's a question you need to ask: how does OpenTelemetry know that a span in your payment service belongs to the same trace as a span in your order service?

    Without something connecting them, each service would record its own spans independently. Your API gateway would see one operation, your order service would see another, and your payment service would see a third. They'd look like completely separate requests with no relationship to each other, which makes debugging across services nearly impossible.

    That's where context propagation comes in. As a request moves from one service to another, OpenTelemetry attaches the trace context to it, typically as HTTP headers. That context carries the trace ID and the parent span ID, so every service that handles the request knows which trace it belongs to and where it sits in the chain.

    Here's what that looks like in practice:

    Context propagation diagram showing trace ID abc123 traveling across API Gateway (span-id: 001), Order Service (span-id: 002), and Payment Service (span-id: 003) via HTTP headers.

    All three services share the same trace ID. That's what lets your observability backend connect the spans together into one complete trace.

    OpenTelemetry doesn't invent its own rules for this. It follows the W3C Trace Context standard, a widely adopted specification that defines how trace context should be formatted and passed between services, so it works consistently across different languages, frameworks, and vendors.

    The good news is that if you're using automatic instrumentation, context propagation happens automatically. OpenTelemetry handles the headers for you, so you don't have to think about it unless you're working with a custom transport or a non-standard setup.

    Step 5: The OpenTelemetry SDK Processes the Telemetry

    At this point, OpenTelemetry is capturing telemetry and keeping traces connected across services. But between the moment a span is created and the moment it leaves your application, something has to process it. That's the SDK's job.

    When your instrumented code creates a span, it does that through the OpenTelemetry API. The API is what you interact with as a developer, things like trace.getTracer() and tracer.startActiveSpan(). But the API alone doesn't process or send anything. It needs the SDK behind it to actually do the work.

    A flow diagram showing what happens inside OpenTelemetry before data leaves your application: instrumentation creates telemetry, the API receives it, the SDK processes it, a processor prepares it, and the exporter sends it out.

    Once the SDK receives the telemetry, it runs it through a processor. The processor is responsible for things like batching spans together before sending them, adding extra attributes, or filtering out data you don't need. The most common one you'll see is the BatchSpanProcessor, which groups spans and exports them in batches rather than one at a time, making it more efficient in production.

    Before the processor even runs, the SDK also handles sampling. Sampling lets you control how much telemetry you actually collect. In high-traffic applications, recording every single span would generate an enormous amount of data. With sampling, you can tell the SDK to only capture a percentage of traces, which keeps your costs and data volume manageable without losing visibility.

    Once the processor is done, it hands the data to the exporter, which is what actually sends it to its destination. You'll see how that works in the next step.

    Step 6: Exporters Send the Telemetry

    The exporter's job is simple: take the telemetry the SDK prepared and send it to whatever destination you've configured.

    OpenTelemetry uses OTLP, the OpenTelemetry Protocol, to transport telemetry data. It's a standard wire protocol designed specifically for transmitting traces, metrics, and logs, and it runs over either HTTP or gRPC.

    [!NOTE] OTLP and OpenTelemetry are not the same thing. OpenTelemetry is the full framework, covering instrumentation, the SDK, the Collector, and more. OTLP is just the protocol it uses to transport data.

    Although OTLP is the default, not every exporter uses it. Some exporters send data directly to specific backends in their own format, like Jaeger or Prometheus. So depending on your setup, you might use an OTLP exporter to send data to a Collector or backend, or a vendor-specific exporter to send it directly."

    Step 7: The OpenTelemetry Collector Receives and Processes the Data

    The OpenTelemetry Collector is a standalone service that sits between your application and your observability backend. It receives telemetry data, processes it, and forwards it to one or more destinations.

    Using the Collector is common but not mandatory. You can configure your exporter to send data directly to your backend and skip the Collector entirely. But in most production setups, teams add a Collector because it gives them a central place to manage telemetry, without touching application code.

    The Collector has three stages:

    • Receivers accept incoming telemetry from your applications, typically over OTLP.

    • Processors transform the data at the Collector level, things like batching spans, filtering out noise, or adding attributes before forwarding.

    • Exporters send the processed data to your backend, or multiple backends if needed.

    Here's a minimal Collector configuration:

    receivers:
      otlp:
        protocols:
          grpc:
            endpoint: 0.0.0.0:4317
    
    processors:
      batch:
    
    exporters:
      otlphttp:
        endpoint: https://your-backend.com
    
    service:
      pipelines:
        traces:
          receivers: [otlp]
          processors: [batch]
          exporters: [otlphttp]
    

    This config accepts traces over gRPC, batches them for efficiency, and forwards them to an observability backend over HTTP.

    The Collector can also receive data from multiple applications simultaneously and route it to one or more destinations. So instead of each application shipping telemetry directly to your backend, they all send it to the Collector, and the Collector handles the rest.

    For the full configuration, see the OpenTelemetry Collector configuration docs.

    Step 8: An Observability Backend Stores and Analyzes the Telemetry

    This is where OpenTelemetry's job ends. Once your telemetry leaves the Collector, it arrives at your observability backend.

    The backend is what stores your data, lets you query it, and gives you the dashboards and alerts you actually interact with day to day. OpenTelemetry doesn't provide any of that. It gets the data there, and the backend does the rest.

    A few popular backends that support OpenTelemetry natively:

    • Open-source: Jaeger, Prometheus, Grafana Tempo

    • Commercial: Datadog, New Relic, Honeycomb, Dynatrace, Elastic, Lightstep, Grafana Cloud, Middleware.

    Once your data is in the backend, you can search through traces to debug a slow request, build dashboards to monitor your application's health, and set up alerts when something goes wrong.

    Putting the OpenTelemetry Flow Together

    Let’s assume a user initiates a bank transfer on a mobile banking app. The request hits your API gateway, and because your application is instrumented, OpenTelemetry immediately starts capturing what’s happening. It creates a span for the incoming request and assigns it a trace ID.

    As the request moves to the authentication service, context propagation carries that trace ID along in the request headers. The authentication service creates its own span and attaches it to the same trace. The same thing happens when the authentication service calls the transaction service, and when the transaction service hits the database to process the transfer. Four services and four spans, with one trace ID connecting them all.

    Meanwhile, the SDK processes the telemetry in the background, runs the spans through the batch processor, and hands them to the exporter. The exporter packages everything into OTLP and sends it to the Collector, which applies your processing rules and forwards it to your observability backend.

    Here’s a summary of every component involved in that flow:

    Component Role
    Instrumentation Captures what’s happening inside your application
    API Exposes the methods your code calls to create spans, metrics, and logs
    SDK Processes and prepares telemetry for export
    Exporter Packages and sends telemetry via OTLP
    Collector Receives, processes, and routes telemetry to your backend
    Observability backend Stores, queries, and visualizes your telemetry

    From that single transfer request, you now have a complete trace in your backend. When you open your dashboard and search the trace ID, you'll see every service, every span, and every millisecond of that transaction laid out in front of you.

    Do You Need Every OpenTelemetry Component?

    To be honest, you don’t need every component to get started with OpenTelemetry. The pipeline you’ve seen throughout this article is the full setup, but not every team uses all of that.

    1. Without the Collector: Your exporter sends telemetry directly to your backend with nothing in between. Works well for smaller projects or when you're just getting started.

    2. With the Collector: The more common production setup. Teams add the Collector when they need more control, like routing telemetry to multiple backends, filtering sensitive data, or managing telemetry from dozens of services in one place.

    The Collector is powerful, but it’s not mandatory. Start without it if your setup is simple, and add it when you actually need it.

    Why Use OpenTelemetry?

    You've now seen how every piece of OpenTelemetry fits together. Here's why it's worth using:

    • Vendor-neutral instrumentation: Before OpenTelemetry, switching observability tools meant you had to re-instrument your entire application from scratch. With OpenTelemetry, you instrument once and switch backends freely.

    • Consistent telemetry across services and languages: Your backend might be in Go, your microservices in Python, and your data pipeline in Java. OpenTelemetry has SDKs for all of them, and they all produce telemetry in the same format, so your whole stack speaks the same language.

    • Correlated observability signals: Traces, metrics, and logs all flow through the same pipeline. So when something goes wrong, a spike in your metrics leads you to a trace, and that trace points you to the exact log entry where things broke down.

    • It's becoming the industry standard: Most observability backends already support OpenTelemetry natively. Instead of learning a vendor-specific instrumentation approach every time you adopt a new tool, you learn OpenTelemetry once and it works everywhere.

    Conclusion

    OpenTelemetry gives you a standard way to instrument your application, collect telemetry, and ship it to any backend you choose, without locking you into a specific vendor or tool.

    If you remember nothing else from this article, remember this: you instrument your application, generate telemetry, process it, export it, and analyze it. Every step has a component behind it, and now you know what each one does.

    If you're just getting started, you don't need to set everything up at once. Start with instrumentation, get your telemetry flowing to a backend, and add the Collector when you need it. You can always add more as your needs grow.

    If you found this helpful, I'd love to connect. You can find me on LinkedIn or X. Feel free to reach out if you have questions or just want to talk about observability and developer tooling.



    Read the whole story
    alvinashcraft
    1 minute ago
    reply
    Pennsylvania, USA
    Share this story
    Delete
    Next Page of Stories