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

Microsoft’s new Copilot turns into a Windows 11 sidebar that pushes your apps aside to make room

1 Share

Microsoft still can’t figure out how to integrate Copilot into Windows 11, as it appears to be going back to the original idea where AI is docked to the desktop, pushing your apps aside to make room. This change was first spotted by Windows Latest and is slowly rolling out to everyone.

I tested Copilot’s new docking capabilities on Windows 11

By default, Copilot still opens as an app, but if you hover over the new drop-down menu that appears in the title bar, you can access “snapping” options.

Copilot for Windows 11 with new snapping options
New Copilot app has custom snapping layout

Now, if you carefully look at the screenshot, you’ll realize that Copilot’s new window snap suggestions are similar to the native Snap Layouts experience for app windows in Windows 11. However, they’re two separate options.

When I hovered over Copilot’s new menu, it revealed dedicated layouts for Copilot. One is the current experience, where Copilot appears as an app, and another is the existing picture-in-picture mode. Then, there are two new options. One docks Copilot to the left side, and the other docks it to the right side.

Copilot docked to left
You can dock Copilot to the left side

Windows 11’s interface automatically resizes, moving your desktop watermark or desktop to the other side. It also repositions your other apps to fill the remaining space.

For example, if you look at the screenshot below, I’ve opened File Explorer in full screen, and yet Copilot is occupying its space on the right side. This is the new “docking” experience.

Copilot docked to right side on Windows 11
Copilot docked to right side on Windows 11

The idea is similar to the original Windows 11 Copilot experience, where AI lived alongside your apps instead of floating as a separate window. Once docked, Copilot stays pinned to the edge of the screen, and the rest of your desktop adjusts around it.

Unlike the old implementation, this version gives you greater control over how you’d like Copilot to appear on Windows. You can also dock it to the left or turn it into a small window that stays on top of your apps, similar to picture-in-picture mode.

Copilot is going back to the original UI/UX routes after several design revamps

Copilot on Windows 11 has been revamped countless times. In fact, Microsoft has redesigned Copilot almost six times in Windows 11, but the original idea was still more appealing because it felt more native. For those who don’t remember, Copilot originally shipped on Windows 11 as a sidebar, which was later replaced.

Here’s what Copilot looked like when it first shipped on Windows 11, and later on Windows 10:

Copilot sidebar of Windows 11
Copilot’s original design on Windows 11 from 2024

At that point, Microsoft wanted Copilot to appear alongside your apps, so you could ask it anything related to what was on your screen. It wasn’t exactly a horrible idea, but the implementation was poor because Copilot was entirely powered by web technologies and barely integrated with other apps.

Later, Microsoft dropped Windows 11’s Copilot sidebar integration in favor of a full-fledged Copilot app, which was recently converted into a web app again.

Windows Latest recently found that Copilot on Windows is now an Edge-based wrapper, and it also ships with a private copy of Microsoft’s browser. It’s unclear why Microsoft is bundling Copilot with its own private Edge instance, but there’s a chance it helps with the new docking experience.

What do you think about this new Copilot UI? Let me know in the comments below.

The post Microsoft’s new Copilot turns into a Windows 11 sidebar that pushes your apps aside to make room appeared first on Windows Latest

Read the whole story
alvinashcraft
44 minutes ago
reply
Pennsylvania, USA
Share this story
Delete

AI’s New Acceleration Phase

1 Share
From: AIDailyBrief
Duration: 20:20
Views: 531

A week of AI news added up to something bigger than any single story: Anthropic’s path to profitability, OpenAI’s math breakthrough, Google pushing AI deeper into Search and Docs, Cursor’s cheaper coding model, SpaceX becoming an AI compute player, Andrej Karpathy joining Anthropic, and the political fight over AI policy all pointed in the same direction. AI acceleration is showing up across business models, model capabilities, consumer products, compute infrastructure, and regulation at the same time.

The AI Daily Brief helps you understand the most important news and discussions in AI.
Subscribe to the podcast version of The AI Daily Brief wherever you listen: https://pod.link/1680633614
Get it ad free at http://patreon.com/aidailybrief
Learn more about the show https://aidailybrief.ai/

Read the whole story
alvinashcraft
44 minutes ago
reply
Pennsylvania, USA
Share this story
Delete

The AI paradox: More automation, more humans, more work | Dan Shipper

1 Share

Dan Shipper is the co-founder and CEO of Every, a media and software company that’s become a living laboratory for the future of work. Everyone at his company of about 30 people is an AI early adopter; from editors to ops people, they use AI to do much of their work, giving Every a unique lens into where the world is heading. A year ago on this show, Dan predicted that people were sleeping on Claude Code for nontechnical work, which proved to be remarkably prescient. Today he’s back with another set of calls: the SaaS apocalypse is dumb, CLIs are over, the forward deployed engineer is the most valuable new hire, and the only thing you need to do to stay employed is ride the models.

Dan’s predictions:

1. The future of work will happen inside Codex or Claude Code.

2. Every company will have one “super-agent” inside their Slack that every employee talks to regularly.

3. SaaS is not dead—in fact, Dan is bullish on SaaS stocks. His contrarian take: “I would buy SaaS stocks right now.”

4. SaaS economics will shift: users will bring their own AI tokens into apps, which actually improves SaaS margins.

5. PMs will thrive in the AI era.

6. Full-stack designers will become superheroes.

7. The AI job apocalypse is not happening.

8. Forward deployed engineer is the new most essential role.

9. CLIs are over.

10. Automation is a lie.

11. We will read way more AI-generated writing and we will like it.

12. We’ll be building software for humans and agents to use together.

Brought to you by:

WorkOS—Make your app enterprise-ready, with SSO, SCIM, RBAC, and more: https://workos.com/lenny

Vanta—Automate compliance, manage risk, and accelerate trust with AI: https://vanta.com/lenny

Episode transcript: https://www.lennysnewsletter.com/p/the-ai-paradox-dan-shipper

Archive of all Lenny's Podcast transcripts: https://www.dropbox.com/scl/fo/yxi4s2w998p1gvtpu4193/AMdNPR8AOw0lMklwtnC0TrQ?rlkey=j06x0nipoti519e0xgm23zsn9&st=ahz0fj11&dl=0

Where to find Dan Shipper:

• X: https://x.com/danshipper

• LinkedIn: https://www.linkedin.com/in/danshipper/

• Podcast: https://every.to/podcast

• Website: https://danshipper.com

Where to find Lenny:

• Newsletter: https://www.lennysnewsletter.com

• X: https://twitter.com/lennysan

• LinkedIn: https://www.linkedin.com/in/lennyrachitsky/

In this episode, we cover:

(00:00) Introduction to Dan Shipper

(02:56) Dan’s unique position living in the AI future

(09:17) How the way we work will change in the coming year

(16:39) The case for general agents

(18:08) Codex and Claude Code as the new operating system for work

(25:39) How Cursor fits in

(27:42) How this changes what SaaS companies should build

(31:13) Why CLI is already over

(33:34) Two agents are better than one

(36:22) Why Dan is bullish on SaaS stocks

(39:01) Why automation doesn’t reduce human work

(47:00) The value of human-written code

(48:36) Quick recap

(50:15) How work is changing

(56:17) Why data scientists are drowning in bad analysis

(58:24) Which product/tech roles are least changed by AI

(1:02:17) We will read way more AI-generated writing and we will like it

(1:08:28) Why product managers will dominate the AI era

(1:11:05) Full-stack designers are the other big winners

(1:13:11) The AI job apocalypse won’t happen

(1:16:00) How to “ride the models” to stay relevant

(1:21:02) Final predictions and advice

(1:25:24) Lightning round

References: https://www.lennysnewsletter.com/p/the-ai-paradox-dan-shipper

Production and marketing by https://penname.co/. For inquiries about sponsoring the podcast, email podcast@lennyrachitsky.com.

Lenny may be an investor in the companies discussed.



To hear more, visit www.lennysnewsletter.com



Download audio: https://api.substack.com/feed/podcast/197415169/e6f61576fee34273e74bdcc89597014f.mp3
Read the whole story
alvinashcraft
44 minutes ago
reply
Pennsylvania, USA
Share this story
Delete

Practice Isn't Enough for Senior Engineers - Adaptation Is a Key Skill in an AI-First Industry

1 Share

If you're a software engineer right now, you likely feel like your world is changing overnight. We are writing half or less the amount of code that we wrote even a year ago, which represents a seismic, groundbreaking shift in our industry. For many of us, this career has always been engaging for deeply creative and intellectual reasons—and that excitement is still here. But our mental models of what it means to be a good engineer, and what it means to keep improving, have gone a little stale. In today's episode, I want to talk about a distinction that I believe will become the cornerstone mistake for seasoned engineers: confusing _practice_ with _adaptation_, and leaning on the wrong one at the worst possible moment.

  • Two Surfaces Coming Into Contact: Picture your knowledge, skills, and toolset as one surface, and the actual state of the art as another. We've always known the surface area we could learn far exceeds what we can learn, which forces us to place bets on a learning strategy. What's changing is how fast that second surface is moving underneath us.
  • Improvement by Practice vs. Improvement by Change: Practice is wielding what you've already adopted—smoothing out errors, building muscle memory, refining what you already know. Adaptation is fundamentally folding something new into your repertoire. Both are real forms of improvement, but they are not interchangeable.
  • The Cornerstone Mistake for Senior Engineers: Later in your career, the time you spend adapting naturally goes down as you settle into practice. The biggest error I'm already watching engineers make is moving too quickly toward practice when the industry is loudly calling for adaptation instead.
  • Inspect and Adapt—at the Right Altitude: Sprint retros were never really about getting marginally better at the thing you already do. The intent of "inspect and adapt" is to step up one level and examine the system. The trap is treating adaptation like a minor refinement—getting a little better at prompting—when it should mean asking whether you're thinking about prompting in the wrong way entirely.
  • Question the Ratio, Not Just the Output: Real adaptation looks like asking whether you have the right mix of human and agent on a problem. Are you leaning on the agent for things you shouldn't, or failing to lean on it for the things you should? Have you genuinely thought about how sub-agents or an agent team are working the problem you're producing?
  • A Spectrum, Not a Binary: On one end, you make micro-adjustments to your refinement process. On the other end of experimentation, you ask whether refinement—or even having engineers plan the work—is the right thing at all. The point isn't that practice is dead; it's that the industry is changing fast enough that the adaptive end of that spectrum deserves far more of your attention than it used to.
  • Episode Homework: Take something you currently treat as a practice problem—"how do I refine tickets faster?"—and step up a level. Ask the adaptive version of the question instead: "Is refinement even the right thing anymore?"

🙏 Today's Episode is Brought To you by: SerpApi

No matter what you're building, SerpApi is the web search API for your needs. If you're building an application that needs real-time search data—whether that's an AI agent, an SEO tool, or a price tracker—SerpApi handles it for you. ● Make an API call and get back clean JSON. ● They handle the proxies, CAPTCHAs, parsing, and all the scraping so you don't have to. ● They support dozens of search engines and platforms, and are trusted by companies like NVIDIA, Adobe, and Shopify. ● If you're building with AI, they even have an official MCP to make getting up and running a simple task. Get started with a free tier to build and test your application before you commit. Go to serpapi.com.

📮 Ask a Question

If you enjoyed this episode and would like me to discuss a question that you have on the show, drop it over at: developertea.com.

📮 Join the Discord

If you want to be a part of a supportive community of engineers (non-engineers welcome!) working to improve their lives and careers, join us on the Developer Tea Discord community today!

🗞️ Subscribe to The Tea Break

We are developing a brand new newsletter called The Tea Break! You can be the first in line to receive it by entering your email directly over at developertea.com.

🧡 Leave a Review

If you're enjoying the show and want to support the content head over to iTunes and leave a review!





Download audio: https://dts.podtrac.com/redirect.mp3/cdn.simplecast.com/audio/c44db111-b60d-436e-ab63-38c7c3402406/episodes/561a5653-4050-4cdf-afdf-d2bdfb8a6bc9/audio/6adb5646-8ddf-48bf-b364-d0595fe9f516/default_tc.mp3?aid=rss_feed&feed=dLRotFGk
Read the whole story
alvinashcraft
44 minutes ago
reply
Pennsylvania, USA
Share this story
Delete

Automatically getting API difference diagrams in your .NET PRs

1 Share

A while back I built a tool that could analyze .NET Source Files as well as assemblies, and generate an Object Model Diagram. I found having OMDs of the APIs you're working on is a really great way to quickly get an overview of what an API looks like and how you could work with it. The public API surface should generally not change once you ship it, so getting it right the first time is important. In addition it was able to also compare two assemblies or two sets of source folders and just give you the difference. This allowed you to review just what is getting added, and if there are any breaking changes that might not have been intended. The end goal was to one day have these OMDs in the PR itself. You can get this tool today as a dotnet tool by running the following command:

   dotnet tool install --global dotMorten.OmdGenerator

For a long time, I’d wanted one specific feature in my .NET Object Model Diagram Generator: the ability to compare API surface directly between git refs. This would simplify comparing against a PR.

As mentioned, the tool could already compare one set of source files against another, and it could generate a clean object model diff from that. But what I really wanted was something more natural for real-world development: compare the code in my working tree to a tag, compare one branch to another, or compare two commits from a remote repository without having to manually check out folders, create temp copies, or script around the tool.

It was one of those ideas that sat on my “I should really add this someday” list for years.

This time, I finally built it — mostly because with AI agents now it's so much faster to iterate on without having to do all the manual work of actually typing :-)  So with GitHub Copilot helping me work through the design, implementation, tests, and documentation, I was able to add the feature much faster than I would have otherwise. Copilot didn’t magically do the work for me, but it absolutely helped me turn a long-delayed idea into a finished feature.

What the new feature does

The generator can now compare source code against a specific commit, branch, or tag.

That means you can now:

  • compare your current checkout against a release tag
  • compare two branches
  • compare two commits
  • compare two refs from a remote git repository

The key new arguments are:

  • gitRepo — a local repository path or remote git URL
  • sourceRef — the git ref for the “new” side of the diff
  • compareRef — the git ref for the “old” side of the diff
  • source — the source path to analyze

The important detail is that source still tells the tool what part of the repository to analyze. The git ref options tell it which versions of that source to compare.

Comparing API changes between two refs

Here’s the simplest case: compare your current source tree against a tag from the same repository.

generateomd --source=C:\github\dotnet\runtime\src\libraries\System.Text.Json\src --compareRef=v8.0.0 --format=html

That says:

  • analyze the current contents of System.Text.Json
  • compare them against the v8.0.0 tag
  • emit html output (you can use md if you want markdown format)

If you want to compare two refs from a remote repository, you can do that too:

generateomd --source=src/libraries/System.Text.Json/src --gitRepo=https://github.com/dotnet/runtime.git --sourceRef=main --compareRef=v8.0.0 --format=md

In this case:

  • gitRepo points to the remote repo
  • source is now a repo-relative path
  • sourceRef is the “new” side
  • compareRef is the baseline

You can also compare two commits directly:

generateomd --source=src/MyLibrary --gitRepo=https://github.com/your-org/your-repo.git --sourceRef=9f4f4cf --compareRef=28630aaf8d27367248358ef064b57d6214b0f103 --format=md

That gives you a markdown API diff suitable for release notes, PR discussions, or review workflows.

Why this is useful

This ends up being much more practical than folder-to-folder comparisons.

Instead of manually exporting source trees or checking out branches into separate directories, you can compare API
shape straight from version control. That makes it far easier to answer questions like:

  • What public API changed in this pull request?
  • What changed between this release tag and main?
  • Did this commit actually alter the public surface area?
  • Are these changes additive, breaking, or just refactorings?

For a tool built around API visualization and change tracking, git-based comparison feels like the missing piece.

Using it in GitHub Actions

Once the tool can compare two git refs, the next obvious step is automation.

A really nice workflow is to generate an API diff for every pull request and post it as a PR comment. That gives reviewers a focused view of API changes without having to inspect every file manually.

The flow looks like this:

  1. trigger on pull_request
  2. compare the PR head SHA to the PR base SHA
  3. generate markdown output
  4. detect whether the markdown actually contains API changes
  5. create or update a PR comment with the result

At a high level, the command looks like this inside the workflow:

generateomd \
--source=src/MyLibrary \
--gitRepo=${{ github.server_url }}/${{ github.repository }} \
--sourceRef=${{ github.event.pull_request.head.sha }} \
--compareRef=${{ github.event.pull_request.base.sha }} \
--format=md \
--output=api-diff

This is a great fit for pull requests because GitHub already gives you the exact two SHAs you care about:

  • github.event.pull_request.head.sha
  • github.event.pull_request.base.sha

That means the comment always reflects the actual API delta introduced by the PR.

The important GitHub Action pieces

Here are the parts of the workflow that matter most.

 

1. Install the tool

- uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.x

- run: dotnet tool install --global dotMorten.OmdGenerator

That makes generateomd available in the workflow.

2. Generate markdown output

- name: Generate API diff
run: |
generateomd \
--source=src/MyLibrary \
--gitRepo=${{ github.server_url }}/${{ github.repository }} \
--sourceRef=${{ github.event.pull_request.head.sha }} \
--compareRef=${{ github.event.pull_request.base.sha }} \
--format=md \
--output=api-diff

The output is written to api-diff.md.

3. Only comment when there’s an actual API diff

The workflow checks whether the generated markdown contains any namespace entries:

- name: Check whether API changes were found
id: api_diff
run: |
if grep -q '^namespace ' api-diff.md; then
echo "has_changes=true" >> "$GITHUB_OUTPUT"
else
echo "has_changes=false" >> "$GITHUB_OUTPUT"
fi

That means the bot won’t spam pull requests when nothing in the API surface actually changed.

Auto-updating the original PR comment

This is the part I especially like.

The workflow uses a hidden marker in the PR comment body, such as:

<!-- dotnet-omd-api-diff -->

When the action runs again, it looks for an existing bot comment containing that marker. If it finds one, it updates that comment instead of creating a new one.

That gives you two nice behaviors:

  • if new commits change the API diff, the original comment is refreshed.
  • if the API changes are later reverted, the existing comment can be updated to say that no API changes are detected any longer.

That second behavior matters a lot. It means the bot comment tracks the current truth of the PR, not just the first interesting state it saw.

In practice, the logic becomes:

  • if there are API changes and no prior comment, create one
  • if there are API changes and a prior comment exists, update it
  • if there are no API changes but a prior comment exists, update it to say so
  • if there are no API changes and no prior comment exists, do nothing

That keeps noise low while still making the automation feel smart and stateful.

Why this workflow is valuable

I like this approach because it adds useful review context without adding much maintenance overhead.

Reviewers get a dedicated summary of API changes. Authors get immediate feedback if they accidentally alter public surface area. And because the comment updates in place, the pull request stays clean instead of filling up with bot spam every time a new commit is pushed.

It also turns the tool from something you run manually into something that can enforce visibility around API changes as part of normal team workflow.

 

Closing

This git-based diff support makes the Object Model Diagram Generator much more useful in day-to-day development. Comparing API shape between commits, branches, and tags is now built in, and the GitHub Actions integration makes it easy to surface those changes directly in pull requests.

You can see the full github action documented here: https://github.com/dotMorten/DotNetOMDGenerator/tree/main#github-actions-comment-pr-api-changes 

And here's an example of one of my repos now using this action to validate PRs: https://github.com/dotMorten/WinUIEx/blob/main/.github/workflows/apidiff.yml 

Read the whole story
alvinashcraft
45 minutes ago
reply
Pennsylvania, USA
Share this story
Delete

Unit Tests: Keep Your CRAP Score from Wrecking the Show

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