Hello Windows Insiders, today we are releasing Windows 11 Insider Preview Build 26300.7760 (KB5077202) to the Dev Channel.
Changes in Dev Channel builds and updates are documented in two buckets: new features, and improvements (including notable fixes) that are being gradually rolled out for Insiders who have turned on the toggle to get the latest updates as they are available (via Settings > Windows Update*) and then new features, and improvements (including notable fixes) rolling out to everyone in the Dev Channel. For more information, see the Reminders section at the bottom of this blog post.
New features gradually being rolled out with toggle on*
[Emoji 16.0]
We’re starting to roll Emoji 16.0 back to Insiders.
The Emoji 16.0 release introduces a small but thoughtfully curated set of new emojis—one from each major category—designed to resonate across cultures and contexts. With this build, you will see these new emoji available in the emoji panel.
[caption id="attachment_178600" align="alignnone" width="609"] New Emoji 16.0 emoji from left to right: Face with Bags Under Eyes, Fingerprint, Root Vegetable, Leafless Tree, Harp, Shovel, and Splatter.[/caption]
Feedback: Share your thoughts in Feedback Hub (WIN + F) under Input and Language > Emoji panel.
[Camera Settings]
We are adding the option to directly control pan and tilt for supported cameras in the Settings app. These new controls appear in the camera settings page (Settings > Devices & drivers > Cameras) under the "Basic settings" of your selected camera.
[caption id="attachment_178599" align="alignnone" width="1633"] UI showing new pan and tilt controls for supported cameras in Settings.[/caption]
Feedback: Share your thoughts in Feedback Hub (WIN + F) under Devices and Drivers > Device Camera or Webcams.
Changes and Improvements gradually being rolled out with toggle on*
[General]
Improved the visual experience and performance for several scenarios including at the bottom of the screen when the taskbar is set to autohide, desktop icons unexpected flashing (and decreased performance interacting with your PC), and Windows Security pop up for credentials.
Reminders for Windows Insiders in the Dev Channel
Updates are based on Windows 11, version 25H2 via an enablement package (Build 26300.7760).
Many features are rolled out using Controlled Feature Rollout technology, starting with a subset of Insiders and ramping up over time as we monitor feedback to see how they land before pushing them out to everyone in this channel.
The desktop watermark shown at the lower right corner of the desktop is normal for Windows Insider pre-release builds.
For Windows Insiders who want to be the first to get features gradually rolled out to you, you can turn ON the toggle to get the latest updates as they are available via Settings > Windows Update*. Over time, we will increase the rollouts of features to everyone with the toggle turned on. Should you keep this toggle off, new features will gradually be rolled out to your PC over time once they are ready.
Features and experiences included in these builds may never get released as we try out different concepts and get feedback. Features may change over time, be removed, or replaced and never get released beyond Windows Insiders. Some of these features and experiences could show up in future Windows releases when they’re ready.
Some features in active development we preview with Windows Insiders may not be fully localized and localization will happen over time as features are finalized. As you see issues with localization in your language, please report those issues to us via Feedback Hub.
Check out Flight Hub for a complete look at what build is in which Insider channel.
Install it. Write a prompt. Let AI work autonomously for hours. Come back to a finished app. Sounds incredible.
Here’s what actually happens: You write a prompt. Ralph runs for 45 minutes. It declares victory. You check the output. Half the requirements are missing. iOS doesn’t compile. The “persistence” layer saves to memory that vanishes on restart.
What went wrong? Nothing, actually.
Ralph did exactly what you asked. The problem is what you asked for.
Why "Better Prompts" Doesn't Help
The standard advice is “write better prompts.” More detail. More specificity. That’s like saying “write better requirements” when your app has bugs. True, but useless.
Here’s the non-obvious part: Ralph Wiggum is a loop. It runs, checks your success criteria, and keeps going until all criteria pass. That’s it. That’s the whole trick.
Which means everything depends on the criteria. Vague criteria? Ralph satisfies them vaguely and stops. You asked for “app works on all platforms.” It ran on desktop once, saw no crash, declared success. Technically correct.
The skill isn’t “prompt engineering.” It’s criteria design. And there’s a much simpler way to think about it.
part 1
This is Part 1 of a series on building Uno Platform apps with Studio and a Ralph Loop workflow.
The big idea in this post: constraints beat instructions.
Next up: the full Ralph Wiggum Loop system, end-to-end.
Forget what you want. Focus on what would block your PR.
You already know this list:
Does it build on iOS?
Does it build on Android?
Do the analyzers pass?
Are there warnings?
Does the app actually launch?
These are constraints. Binary. Pass or fail. No interpretation required.
Ralph’s success criteria should be the same thing. Not “works correctly” but “`dotnet build -f net10.0-ios` exits 0.” Not “follows best practices” but “no classes implement INotifyPropertyChanged in the Models folder.”
This is the entire insight. Convert wishes into gates.
The Test: Can a Script Check It?
Here’s a simple filter. For each success criterion, ask: “Can a script verify this?”
If yes, it’s a constraint. If no, it’s a wish.
Wish
Constraint
"Works on iOS"
dotnet build -f net10.0-ios exits 0
"Uses MVUX correctly"
IState<T> found in Model classes
"Responsive design"
VisualStateManager defines states at 641px and 1008px
"Data persists"
File exists at specific path after app restart
"Good UX"
All touch targets MinHeight >= 44
Ralph can grep. Ralph can run build commands. Ralph can check file existence. Ralph cannot evaluate “good.”
Every wish becomes a gate. Every gate is binary. That’s the whole approach.
Three Examples That Actually Work
Let me show you weak criteria, what goes wrong, and how to fix them. All three are Uno Platform scenarios because that’s what I work with, but the pattern applies anywhere.
01Cross-Platform Build
The Task
Create an Uno Platform app with TabBar navigation.
What you might write
✗App works on all platforms
✗No major errors
✗Navigation functions correctly
What actually works
✓dotnet build -f net10.0-ios exits 0, zero warnings
✓dotnet build -f net10.0-android exits 0, zero warnings
✓dotnet build -f net10.0-desktop exits 0, zero warnings
✓dotnet build -f net10.0-browserwasm exits 0, zero warnings
✓TabBar contains min 3 TabBarItem elements in XAML
✓Each TabBarItem has distinct Content page
✓No TODO comments in generated code
What happens with vague criteria → Ralph builds it. Runs it once on desktop. Tabs switch. No crash visible. Done. Three weeks later you try the iOS build. Linker error. Android crashes on startup.
02MVUX State Management
The Task
Implement user preferences with MVUX and persistence.
What you might write
✗MVUX pattern implemented correctly
✗Settings persist between sessions
✗UI updates reactively
What actually works
✓PreferencesModel.cs uses IState<UserPreferences>
✓No classes implement INotifyPropertyChanged in Models
✓Settings serialized to LocalFolder/preferences.json
What happens with vague criteria → Ralph uses INotifyPropertyChanged instead of IState<T> because that's more common in training data. Saves settings to a dictionary in memory. "Persists" until you close the app.
What happens with vague criteria → Ralph adds Grid columns with arbitrary breakpoints. "Responsive" technically achieved. "Looks good" evaluated by nobody. Sidebar disappears entirely or overlaps content.
The Constraint Stack
Here’s how I build success criteria now. Four layers, in order:
1Build Gates
✓dotnet build -f net10.0-ios exits 0
✓dotnet build -f net10.0-android exits 0
✓dotnet build -f net10.0-desktop exits 0
✓dotnet build -f net10.0-browserwasm exits 0
2Type Contracts
✓Required types exist where expected (IState, IFeed, interfaces)
✓Anti-patterns are absent (no INotifyPropertyChanged, no ObservableCollection)
✓NuGet packages referenced
3Structural Contracts
✓Required files exist at expected paths (Models/Task.cs, Services/ITaskService.cs)
✓Patterns present in specific files (uen:Navigation.Request in page XAML)
✓Folder structure matches architecture (no code-behind navigation calls)
4Runtime Verification Contracts
✓App launches without exception
✓Specific behavior verified (nav, persistence)
✓Debug output clean
Stack these. Ralph checks all of them, every loop. If it doesn’t compile on all targets, nothing else matters.
Runtime verification
We'll cover runtime UI verification via App MCP screenshots and visual tree inspection in more depth later in this series.
Iteration Budget: A Real Tradeoff
The --max-iterations flag matters more than people realize.
Loose criteria with high iteration cap: Ralph loops forever trying to satisfy something unmeasurable. Burns your usage. Produces garbage. Tight criteria with reasonable cap: Ralph converges fast because exit conditions are clear. 30 iterations is usually enough for a well-specified task.
Tight criteria reduce iteration count, which reduces cost. Vague criteria do the opposite.
Performance at scale: “Handles 10K items” or “loads in under 2 seconds” requires load testing. Ralph can build it. You benchmark it.
Security vulnerabilities: XSS, injection, exposure of secrets. Ralph doesn’t audit for these. Run your security tooling separately.
Business logic correctness: “Calculates tax correctly” or “handles edge cases” requires domain knowledge. Constrain the structure, verify the math yourself.
Integration complexity: External APIs, authentication flows, device-specific behavior. Ralph can scaffold. You verify.
The judgment problem: Some decisions are subjective. Ralph will make choices. You might disagree. That’s not a bug.
The pattern: constrain what you can (structure, types, patterns), review what you can’t (aesthetics, security, business logic).
Remember
Autonomous doesn't mean unsupervised. Know when to stop Ralph and review.
Takeaway
Ralph Wiggum isn’t magic. It’s a loop with a termination condition. Your success criteria are that condition.
Vague criteria produce vague results. Binary constraints produce verifiable results. The skill is converting what you want into what can be checked
You already do this for CI pipelines. Do the same thing for Ralph.
Shoutout
Shout out to Geoffrey Hutley, the creator of Ralph and a former contributor to Uno Platform project a few years ago — thanks for building Ralph and pushing the space forward.
This blog post was created with the help of AI tools. Yes, I used a bit of magic from language models to organize my thoughts and automate the boring parts, but the geeky fun and the in C# are 100% mine.
GitHub Copilot just crossed a very interesting line.
It’s no longer “just” helping you write code — it can now run as an agent, with goals, tools, and autonomy, using Microsoft Agent Framework (MAF).
Watch the full video here:
In the video, I walk through three simple C# samples showing how Copilot can be used as an agent, not just a coding assistant.
From autocomplete to autonomy
The mental model shift is simple:
Copilot as a tool → prompt → suggestion
Copilot as an agent → goal → plan → act
With Microsoft Agent Framework, GitHub Copilot becomes part of your agent runtime, not just your editor UI.
Sample 1 – Creating a Copilot-backed agent
At its core, you define an agent and tell it what it is allowed to do.
usingGitHub.Copilot.SDK;
usingMicrosoft.Agents.AI;
awaitusingCopilotClientcopilotClient=new();
awaitcopilotClient.StartAsync();
AIAgentagent=copilotClient.AsAIAgent(
instructions: "You are a helpful agent.");
No hacks. No wrappers. This agent is powered directly by GitHub Copilot.
Sample 2 – Giving the agent a goal
Instead of prompting, you assign tasks.
awaitagent.RunAsync("""
ReviewthisC#projectandexplainwhatitdoes.
Focusonarchitectureandmainresponsibilities.
""");
This is where Copilot stops responding and starts working.
Sample 3 – Applying it to real dev workflows
In the video, I show how the same agent can be used for things like:
Understanding unfamiliar repositories
Explaining legacy code
Supporting real developer workflows
awaitagent.RunAsync("""
Analyzethisrepositoryandsuggestimprovements.
Createasummarysuitableforapullrequestdescription.
RuntheanalisysusingCODEXandOPUS.
""");
This feels much closer to a junior developer teammate than a chat window.
Why this matters for .NET developers
If you’re building in C# today:
You already know GitHub Copilot
You already write .NET services
You already work with repositories and PRs
Microsoft Agent Framework + Copilot is the shortest path from AI ideas to real systems.