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

Rotation revisited: Cycle decomposition in clang’s libcxx

1 Share

We got distracted by the rotation algorithm in gcc’s libstdc++, but let’s get back to the cycle decomposition algorithm in clang’s libcxx.

The implementation in clang’s libcxx performs the minimum number of swaps, roughly n/2, where n is the total number of elements. It does so by viewing the rotation as a permutation and walking through each of the cycles.

For notational convenience, let a be |A| and n be |A| + |B| (the total number of elements). The number of cycles is gcd(a, b), and the k‘th cycle consists of the elements starting at first + k, and then stepping to the next element by moving forward another a elements, with wraparound, until you return back to the starting point.

For example, if you have |A| = 4 and |B| = 6, then the cycle that starts at A1 takes 4 steps forward to continues to B1; takes another 4 steps forward to B5; then takes 2 steps forward, wraps around, and then two more steps forward, landing on A3; then takes 4 steps forward to B3; and then takes 4 steps forward and wraps around to A1, which is the starting point.

A1 A2 A3 A4 B1 B2 B3 B4 B5 B6
A1 A2 A3 A4 B1 B2 B3 B4 B5 B6
A1 A2 A3 A4 B1 B2 B3 B4 B5 B6
A1 A2 A3 A4 B1 B2 B3 B4 B5 B6
A1 A2 A3 A4 B1 B2 B3 B4 B5 B6
A1 A2 A3 A4 B1 B2 B3 B4 B5 B6

There’s another cycle that starts at A2 and continues to B2, B6, A4, B4, then back to A2.

Now, we’ve been counting swaps, but a single-element rotation is not done as a sequence of swaps, but rather by picking up the first element, sliding all the other elements over, and then putting the original first element at the end. I’ve been informally calling an assignment “half of a swap”, though a swap is really a constructor, two assignments, and a destructor. But let’s stick with the “half a swap” accounting fiction.

The rotation algorithm goes like this:

auto a = std::distance(first, mid); // number of "A" elements
auto n = std::distance(first, last); // total elements
auto g = gcd(a, n); // number of cycles

for (auto k = 0; k < g; ++k) {
    // Rotate the elements in the cycle starting at k
    auto save = std::move(first[k]);
    auto i, next = k;
    while (i = next, next = (i + a) % n, next != k) {
        first[i] = std::move(first[next]);
    }
    first[i] = std::move(save);
}

For example, if rotating A1, A2, B1, B2, B3, B4, there are two cycles: A1, B1, B3; and A2, B2, B4. The elements within each cycle rotate one position.

  A1 A2 B1 B2 B3 B4

And when you’re done with all the cycles, you’ve rotated the entire A and B blocks.

B1 B2 B3 B4 A1 A2

This performs n/2 swaps, which is the fewest swaps of all the algorithms we’ve looked at so far. However, it has terrible locality because the elements in the cycle are all spread out.

Calculating the greated common divisor of two numbers can be done in O(log n) steps via Euclid’s algorithm.

int gcd(int a, int b)
{
    do {
        auto r = a % b;
        a = b;
        b = r;
    } while (r);
    return a;
}

Commenter Brent thought that the cycle decomposition algorithm was obvious. Of course, the trick is the step they called “Repeat”. How many times do you repeat?

The clang libcxx algorithm calculates the number of repeats by taking the gcd. But there’s a trick so we don’t have to calculated it at all. We’ll look at that trick next time.

Bonus chatter: I think it’s interesting that of the three major implementations of the C++ standard library, each one uses a different rotation algorithm when given random-access iterators!

The post Rotation revisited: Cycle decomposition in clang’s libcxx appeared first on The Old New Thing.

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

We Need to Talk About How AI Actually Makes You Feel

1 Share

Can I be honest with you for a second? We need to talk about how AI actually makes you feel, because I don’t think most of what we say about AI is really about AI at all. I think it’s about us.

About the quiet little worry that wakes some of us at midnight, the one we’d never say out loud in a meeting. So we wrap it in big confident words instead, and we say those words to each other, and everybody nods, and nobody admits what’s underneath.

So let’s go underneath. Just you and me. Ten of these worn-out lines, one at a time, and the real human thing hiding behind each one. Some of them I’ll defend. Some I’ll gently push on. All of them, I think, you’ll recognize a little too well.

We Need to Talk About How AI Actually Makes You Feel ImageAI-summary-800x600

1. “We need to be an AI-first company”

You’ve heard someone say this. Maybe you’ve said it. And I want you to notice the feeling that came right before the words, because it usually isn’t a strategy. It’s a fear. It’s the sound of someone who lay awake wondering if the thing they spent twenty years of their life building still matters tomorrow.

Nobody says “AI-first” because they understand AI. They say it because they’re terrified of being last.

And you know what? That fear is not silly. It’s human. The honest version of this sentence isn’t “AI-first.” It’s “I’m scared we’re falling behind and I don’t fully know what to do about it yet.” But you can’t put that on a slide. It doesn’t sound like a leader. It just sounds like a person. Which is the whole problem, isn’t it. We’ve forgotten that the two are allowed to be the same thing.

We Need to Talk About How AI Actually Makes You Feel ImageAI-1-800x600

2. “AI won’t replace you, but a person using AI will”

This one always gets a knowing little chuckle in the room. But sit with it for a second, because it’s doing something almost cruel. It hands you comfort and a threat in the very same breath. “You’re safe.” (you are not safe.) “Just adapt.” (or else.) It’s a smile with all the teeth showing.

What actually hurts comes a beat later. The whole world is shifting under everyone’s feet at once, but somehow this line makes it your personal homework to fix over the weekend. It takes a giant, shared, frightening thing and sets it down on your shoulders alone. And the truth nobody says back to you is so much softer than that. Nobody actually knows who gets replaced. The people repeating this line are whispering it to calm themselves down at least as much as they’re saying it to warn you.

It isn’t really advice. It’s a hand on your back, and you can’t quite tell if it’s steadying you or pushing you.

We Need to Talk About How AI Actually Makes You Feel ImageAI-2-800x600

3. “It’s not about the AI, it’s about the data”

I’ll give this one some love, because it’s almost wise. The catch is that it’s usually said by someone standing on a mountain of data they have never once climbed up and actually looked at. But the instinct buried in it is real. The model is the first date. The data is the ten years of doing the dishes together. One is the part you brag about. The other is the part that actually holds.

Your data is just your past, written down. The machine never judges it. Sometimes we’re the ones who can’t bear to look.

And there’s something tender in here if you slow down. When people squirm at the words “data quality,” it’s so often a deeper discomfort wearing a technical costume. It’s the discomfort of looking square at the messy, half-finished record of everything you already did, and everything you said you’d get to and never did.

We Need to Talk About How AI Actually Makes You Feel ImageAI-3-800x600

4. “Don’t worry, humans stay in the loop”

We love saying this. It makes the room exhale. But read the small print on the role we just wrote for ourselves, because it’s not the hero role we think it is. The human isn’t the author anymore. The human is the conscience. The one who sits between the cold decision and the warm consequence, ready to feel bad about it so the system doesn’t have to.

“Human in the loop” can quietly turn into “human holding the bag.”

And yet I refuse to mock this one, because the instinct behind it is genuinely beautiful. We’re insisting, almost stubbornly, that somewhere inside every automated decision there should be something that can flinch. Something that can hesitate. Something that can lie awake about it later. That’s not a bug in the process. That hesitation is the most human thing we’ve got. The only thing I’d beg you to check is whether the human in that loop has any real power left, or whether we just put them there to have somewhere soft for the blame to land.

We Need to Talk About How AI Actually Makes You Feel ImageAI-4-800x600

5. “AI is just a tool, like fire, or electricity, or the printing press”

Here’s a little tell I want to share with you. The bigger the comparison someone reaches for, the less they actually want to talk about today. Fire. Electricity. The wheel. These huge words let a person feel enormous and certain without ever having to be specific about Monday morning. Cosmic is comfortable. Cosmic doesn’t ask anything of you.

But I’m going to defend the clichÊ anyway, because by accident it’s telling the truth. Every one of those tools didn’t just change what we did. It changed who we thought we were. Fire turned us into cooks and storytellers leaning into the light. Writing let us hand our memory to the page, and it quietly rewrote what it even meant to be wise.

The question was never “what will AI do for me?” It’s “who am I going to become while I’m standing next to it?”

We Need to Talk About How AI Actually Makes You Feel ImageAI-5-800x600

6. “We’re sprinkling a little AI into the product”

Oh, the sprinkle. The little dusting of magic over the same old casserole. I can’t even be mad at this one, because you can hear the hope inside it. It’s the wish that you could become modern without becoming uncomfortable. That you could change without actually having to change. That transformation might, please, arrive as a garnish you add at the end.

You cannot sprinkle your way into a different meal. Sooner or later you have to change the recipe, and changing the recipe is frightening, and that is exactly why everyone keeps reaching for the sprinkles.

And here’s the part that aches a little. People can always taste the difference. They can feel when something was genuinely rethought for them, and they can feel when a chatbot got bolted onto the corner so a team could say they shipped it. The sprinkle was rarely about the user at all. It’s a way of putting off a much harder conversation, the one you have alone with yourself, about whether you are actually willing to change.

We Need to Talk About How AI Actually Makes You Feel ImageAI-6-800x600

7. “It’s still early days for AI”

This is the most comforting sentence in the whole industry, and that’s exactly why it never expires. It was true in 2017. It was true in 2023. Someone will murmur it, soothingly, in 2040.

“Early days” isn’t a date. It’s a place we move into so we never have to decide that any of this is real yet.

And I understand the pull of it, I really do. “Early” means there’s still time. Time to learn it. Time to catch up. Time before anyone gets to judge you for not knowing. But somewhere along the way, “it’s early” stops being humility and starts being a soft bed we refuse to get out of. The braver sentence, and the kinder one, is harder to say. It’s not early for everyone. It’s just early for me. And that’s okay. And I think it might be time to start.

We Need to Talk About How AI Actually Makes You Feel ImageAI-7-800x600

8. “AI will augment, not replace, human workers”

This is number two’s gentler cousin, the same idea wearing a nicer sweater to the family dinner. And “augment” is such a lovely, soft word, doing such a lot of quiet diplomatic work. It can mean “you’re about to get more powerful.” It can also mean “you’re about to do the work of three people, and we’re going to call that a promotion.”

But I want to believe it, and the truth is sometimes it’s real. The best kind of augmentation was never about output at all. It’s about handing people back the parts of their work they secretly loved, by taking away the parts that were quietly grinding them down. So whenever someone tells you “augment,” ask them one simple thing and watch their face.

Augment toward what? Toward more of your humanity, or just more of your throughput? Their honest answer tells you everything.

We Need to Talk About How AI Actually Makes You Feel ImageAI-8-800x600

9. “Every company is an AI company now”

When everybody is something, nobody is. This sentence is the sound of a whole category dissolving in real time. And it’s always said with so much confidence. But press your ear to it and you’ll hear a very small, very human panic underneath. If I don’t grab this label, do I still count? Am I still in the room? Am I still relevant, or did I become the past while I wasn’t looking?

“Every company is an AI company” is what we say when we’re more afraid of being left out of the sentence than of being wrong inside it.

Let me hand you a gentler way to hold it. You don’t become an AI company by announcing it, the same way you don’t become brave by describing yourself as brave at a party. The ones who actually mean it almost never say it. They’re too busy, head down, quietly rebuilding the boring middle of how they actually work. Because that’s where the real change always lives. Far from the stage. Far from the press release. In the unglamorous place nobody claps for.

We Need to Talk About How AI Actually Makes You Feel ImageAI-9-800x600

10. “We’re democratizing AI, putting it in everyone’s hands”

I love this one and I don’t fully trust it, and I’ve made my peace with feeling both at once. “Democratizing” is one of the most beautiful words a company can reach for, and one of the easiest to betray once the lights go down. It tends to show up right before a pricing page. Or a waitlist. Or an “enterprise tier.” Power to the people, billed monthly, cancel anytime.

But strip the marketing off it and something almost moving is standing there underneath. The idea that a kind of power which used to belong only to the few could end up in the hands of the kid building something in their bedroom at midnight. The tiny shop. The person who was never once invited into the room where these things got decided. And the wild part is that it has actually, partly, really happened. Honestly that might be one of the most hopeful things about this whole strange, frightening, electric moment we’re living through.

The word isn’t the lie. The word is the promise. Whether it turns out to be a lie depends completely on what they do the morning after they say it.

We Need to Talk About How AI Actually Makes You Feel ImageAI-10-800x600

Where I land, if you’ve stayed with me this far

We don’t repeat these ten sentences because they’re true. We repeat them because each one lets us feel something we’d otherwise have to say out loud, in a quiet voice, to someone we trust. That we’re scared of being left behind. That we don’t fully understand what’s coming. That we badly want to still matter on the other side of it.

None of that is weakness. It’s just being a person in a year that asks a lot of you. And if you felt even one of these land a little too close, I want you to know something. So did the person who said it to you.

Reference: Pinal Dave (https://blog.sqlauthority.com/), X

First appeared on We Need to Talk About How AI Actually Makes You Feel

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

The Ultimate Checklist For Writing A Memoir

1 Share

Writing a memoir? Use this checklist to review your story, strengthen your writing, and make sure your memoir is ready for readers.

I’ve created a checklist for memoir writers to help you see if your story is on the right track. Mary Karr’s Memoir Checklist in The Art of Memoir inspired me. My version is more practical and especially useful for first-time memoir writers.

The Ultimate Checklist For Writing A Memoir

  1. Are you writing a memoir or an autobiography? Remember that a memoir is not an autobiography. It is not about your entire life. Autobiographies are usually history textbooks about famous people. Read: What’s The Difference Between An Autobiography And A Memoir?
  2. Should you rather be writing fiction? If you are not writing the truth about what happened, you should consider writing fiction. Read: 6 Differences Between A Novel & A Memoir
  3. Have you done your research? Have you interviewed people and collected all the data you need? Have you made lists to help you jog your memory? Read: The 5 Top Tips For Turning Memories Into A Book
  4. Has something changed? Why is this day different? We read memoirs to experience somebody else’s life vicariously. We read to experience an interesting or inspiring or frightening account of a life. So, ask yourself: What changed? What happened that put me on this path? This is usually where you start your memoir.
  5. Are you empathetic and relatable? Readers need to feel for you. This does not mean that you need to hide the dark side of your character. It means that you need to show reasons why you behaved the way you did. Read: 5 Essential Tips For Writing A Memoir
  6. Have you focused on one theme? Have you narrowed your focus for this project? ‘A memoir focuses on a time, or an event, or series of events, or a choice, that is tied together with a theme. It is not your entire life story.’ Read: Writing A Memoir? Narrow Your Focus and 12 Types Of Memoirs – Which One Is Yours?
  7. Have you re-created your settings? Readers must be able to picture the setting as they read your story. The settings must be as real to them as they were to you. Read: How To Create Perfect Settings In Your Memoir
  8. Are your descriptions specific? Be as specific as you can be. Include vegetation, time, seasons, and weather. Use street names and name places to make them come to life. Read: How To Create Perfect Settings In Your Memoir
  9.  Have you used the five senses? Anton Chekhov said: ‘Don’t tell me the moon is shining; show me the glint of light on broken glass.’ Using the five senses helps you to show the story. If you do, the reader will be able to tastesmellheartouch, and see your story with you. Read: The Power Of The 5 Senses In Stories
  10. Have you included dialogue? Dialogue helps you to show and not tell. It is an excellent way to write about real people in your story. Dialogue is part of life and the people in your life spoke. So, use it to to show conflict and to increase suspense in your memoir.
  11. Have you written in first person present tense? This is really the best way to write a memoir. Because of the personal, confidential aspects of memoirs, it is preferable to write in first person. To create the immediacy of the experience, it is preferable to write in present tense. Read: Why First Person Present Tense Is Perfect For Your Memoir
  12. Have you followed a timeline? Does your story make sense? Does it follow a logical sequence of events? Creating a timeline for your memoir may be one way of checking that this works.
  13. Have you included scenes and sequels? You need 50-60 of these storytelling units in your book. Please read: Yes, You Do Need Scenes And Sequels In Memoirs
  14. Have you included enough conflict? Don’t shy away from outer conflict by focusing on inner conflict. Make sure you have enough of both. Read: Mistakes Writers Make With Conflict In Memoirs
  15. Have you learned something? People read memoirs to find out what you learned along the way – and how you coped. Have you been transformed in some way? Read: 7 Really Good Reasons To Write A Memoir
  16. Have you been fair to others in your story? Other people should not be caricatures. They should be three-dimensional people. Read: 5 Ways To Write About Real People In Memoirs
  17. Have you been true to yourself? Have you told your story as honestly as you could? Do you feel good about the way you have told it? This is the most important question in the memoirist’s checklist.

The Last Word

Even though you’re not writing fiction, you still need to use many fiction writing techniques to keep your readers turning the page. It can be hard to know if you have included everything you need. This checklist will help you assess your work and improve your story.

Top Tip: If you want to learn how to write a memoir, buy our Secrets of a Memoirist course.


by Amanda Patterson
© Amanda Patterson

If you liked this blogger’s writing, you may enjoy:

  1. 40 Ways To Write About Empathy
  2. How To Choose Your Genre
  3. What Is An Analogy & How Do I Write One?
  4. 10 Tips For Retelling A Classic Tale
  5. Characterisation Exercise: Then & Now

If you want to read more about memoirs:

  1. 5 Ways To Write About Real People In Memoirs
  2. 5 Common Traits Of A Successful Memoir
  3. 6 Differences Between A Novel & A Memoir
  4. 12 Types Of Memoirs – Which One Is Yours?
  5. 7 Tips From Journalists To Write A Better Memoir

Top Tip: Sign up for our free daily writing links

The post The Ultimate Checklist For Writing A Memoir appeared first on Writers Write.

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

Windows Package Manager 1.29.250

1 Share

This is a release candidate of Windows Package Manager v1.29. If you find any bugs or problems, please help us out by filing an issue.

New in v1.29

New Feature: Source Priority

Note

Experimental under sourcePriority; defaulted to disabled.

With this feature, one can assign a numerical priority to sources when added or later through the source edit
command. Sources with higher priority are sorted first in the list of sources, which results in them getting put first
in the results if other things are equal.

Tip

Search result ordering in winget is currently based on these values in this order:

  1. Match quality (how well a valid field matches the search request)
  2. Match field (which field was matched against the search request)
  3. Source order (was always relevant, but with priority you can more easily affect this)

Beyond the ability to slightly affect the result ordering, commands that primarily target available packages
(largely install) will now prefer to use a single result from a source with higher priority rather than prompting for
disambiguation from the user. Said another way, if multiple sources return results but only one of those sources has
the highest priority value (and it returned only one result) then that package will be used rather than giving a
"multiple packages were found" error. This has been applied to both winget CLI and PowerShell module commands.

REST result match criteria update

Along with the source priority change, the results from REST sources (like msstore) now attempt to correctly set the
match criteria that factor into the result ordering. This will prevent them from being sorted to the top automatically.

Minor Features

Preserve installer arguments across export and import

winget export now captures the --override and --custom arguments that were used when a package was originally installed and saves them into the export file. When subsequently running winget import, those values are automatically re-applied during installation — --override replaces all installer arguments and --custom appends extra switches — so packages can be reinstalled with the same customizations without any manual intervention. Both fields are optional and independent of each other; packages without stored installer arguments are unaffected.

--no-progress flag

Added a new --no-progress command-line flag that disables all progress reporting (progress bars and spinners). This flag is universally available on all commands and takes precedence over the visual.progressBar setting. Useful for automation scenarios or when running WinGet in environments where progress output is undesirable.

MCP upgrade support

The WinGet MCP server's existing tools have been extended with new parameters to support upgrade scenarios:

  • find-winget-packages now accepts an upgradeable parameter (default: false). When set to true, it lists only installed packages that have available upgrades — equivalent to winget upgrade. The query parameter becomes optional in this mode, allowing it to filter results or be omitted to list all upgradeable packages. AI agents can use this to answer requests like "What apps can I update with WinGet?"
  • install-winget-package now accepts an upgradeOnly parameter (default: false). When set to true, it only upgrades an already-installed package and returns a clear error if the package is not installed (pointing to install-winget-package without upgradeOnly instead). AI agents can use this to answer requests like "Update WinGetCreate" or, in combination with find-winget-packages with upgradeable=true, "Update all my apps."

Authenticated GitHub API requests in PowerShell module

The PowerShell module now automatically uses GH_TOKEN or GITHUB_TOKEN environment variables to authenticate GitHub API requests. This significantly increases the GitHub API rate limit, preventing failures in CI/CD pipelines. Use -Verbose to see which token is being used.

Default priority of installer types

Installer type selection no longer depends on the order defined on the manifest. Instead, preference is given in this order:

  • MSIX
  • MSI / Wix / Burn
  • Nullsoft / Inno / EXE
  • Portable

When a user configures installer type requirements or preferences, the order in which they are listed is now respected during installer selection.

Improved list output when redirected

  • winget list (and similar table commands) no longer truncates output when stdout is redirected to a file or variable — column widths are now computed from the full result set.
  • Spinner and progress bar output are suppressed when no console is attached, keeping redirected output clean.

Log file naming strategy

Added a user setting (logging.fileNameStrategy) for controlling the default naming strategy for installer log files. Supported values are manifest (default), timestamp, guid, and shortguid. Only applies to logs generated by installers if the installer itself supports the logging switch / parameter.

Setting Description
manifest Uses the name of the manifest and a timestamp. Has the same behavior as WinGet 1.28
timestamp The log name is just a timestamp
guid The log name is a GUID
shortguid The log name is the first 8 characters of a GUID

Sortable list output

winget list now supports sorting results via --sort <field> (repeatable for multi-field sorting), --ascending/--descending direction flags, and a persistent output.sortOrder setting. Available sort fields: name, id, version, source, available, relevance. By default, results are sorted alphabetically by name when no query is present; use --sort relevance to preserve the previous source-determined ordering.

Bug Fixes

  • winget export now works when the destination path is a hidden file
  • Fixed the useLatest property in the DSC v3 Microsoft.WinGet/Package resource schema to emit a boolean default (false) instead of the incorrect string "false".
  • SignFile in WinGetSourceCreator now supports an optional RFC 3161 timestamp server via the new TimestampServer property on the Signature model. When set, signtool.exe is called with /tr <url> /td sha256, embedding a countersignature timestamp so that signed packages remain valid after the signing certificate expires.
  • File and directory paths passed to signtool.exe and makeappx.exe are now quoted, fixing failures when paths contain spaces.
  • DSC export now correctly exports WinGet Admin Settings
  • winget validate now performs case-insensitive comparison for file extensions where applicable
  • winget source reset now properly resets default sources instead of removing them
  • DSC v3 Microsoft.WinGet/Package resource now honors the installMode property to use silent or interactive installer switches as specified

What's Changed

New Contributors

Full Changelog: v1.28.240...v1.29.250

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

python-1.8.0

1 Share

[1.8.0] - 2026-06-04

Added

  • agent-framework-core: Add MCP-based skills discovery (McpSkillsSource) (#6169)
  • agent-framework-core: Progressive tool exposure via FunctionInvocationContext (#6233)
  • agent-framework-core: Add background agent support to harness agent (#6155)
  • agent-framework-core: Add AgentFileStore and FileAccessProvider for file access operations (#6099)
  • agent-framework-core: Coalesce code interpreter history chunks (#5801)
  • agent-framework-core: Run sync tools off the event loop (#5773)
  • agent-framework-bedrock: Implement native structured output support via Converse API (#6052)
  • agent-framework-foundry: Add Foundry Adaptive Evals integration for rubric-generation (#6101)
  • agent-framework-foundry: Add timeout parameter to FoundryAgent to fix ConnectTimeout on multi-turn conversations (#6263)
  • agent-framework-mistral: Add Mistral AI embedding client package (#5480)
  • agent-framework-a2a: Expose supported_protocol_bindings as configurable parameter (#6098)
  • agent-framework-a2a: Set message_id on AgentResponseUpdate for message-bearing paths (#6163)
  • agent-framework-foundry-hosting: Persist hosted MCP call/results as canonical mcp_call output (#6070)

Changed

  • agent-framework-github-copilot: [BREAKING] Upgrade github-copilot-sdk to v1.0.0 (stable) (#6292)
  • agent-framework-core: [BREAKING — experimental] Refactor Skill API to async resource and script lookup (#6135)
  • agent-framework-github-copilot: Promote to release candidate (1.0.0rc1)
  • agent-framework-declarative: Promote to release candidate (1.0.0rc1) (#6256)

Fixed

  • agent-framework-core: Fix compaction message-id collisions and tool-loop summary persistence (#6299)
  • agent-framework-core: Fix observability unsafe serialization of function-call arguments containing dataclass/framework objects (#6026)
  • agent-framework-core: Consolidate MCP reliability fixes (#6145)
  • agent-framework-core: Backfill chat span request model if unknown and response model is available (#6160)
  • agent-framework-anthropic: Skip orphan anthropic thinking signatures (#5784)
  • agent-framework-foundry: Fix FoundryAgent stripping model from PromptAgent requests (#5526)
  • agent-framework-foundry-hosting: Fix toolbox consent flow in hosted agent (#6249)
  • agent-framework-foundry-hosting: Drop hosted MCP calls when reasoning is stripped (#6210)
  • agent-framework-openai: Fix OTLP HTTP base-endpoint losing /v1/{signal} auto-append (#5913)
  • agent-framework-openai: Drop hosted MCP calls when reasoning is stripped (#6210)
  • agent-framework-orchestrations: Fix spurious Magentic custom manager warning (#6261)
  • agent-framework-azurefunctions: Fix integration test worker crashes on Py3.13 (#4260)
Read the whole story
alvinashcraft
1 minute ago
reply
Pennsylvania, USA
Share this story
Delete

Valve says it’s ready to launch the Steam Machine this summer

1 Share
The e-paper display that Valve internally built for this Steam Machine displays system stats like CPU and GPU temperature and fan speed.

Valve now says that the delayed Steam Machine PC and Steam Frame VR headset are set to launch sometime this summer. In a Thursday blog post detailing its Verified programs for both pieces of hardware, Valve concludes by saying that "We're excited for players to try your titles on the new Steam hardware once they launch this summer."

When the company originally announced the Machine and Frame alongside its new Steam Controller late last year, it said that it would start shipping the new gadgets in early 2026. But in February, the company announced that the ongoing memory and storage crunch had forced it to revisit its pricing and shipping pl …

Read the full story at The Verge.

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