release: bump the lockstep anchor so the .NET server actually ships #348 + #352 - #354
Merged
Conversation
+ #352 SmooAI.SmoothOperator.Server is stamped from the lockstep anchor (@smooai/smooth-operator, typescript/package.json) by sync-versions.mjs. #348's changeset named only @smooai/smooth-operator-server — which is the TYPESCRIPT server npm package — so release #349 bumped that to 1.8.0 and left the anchor at 1.39.0. The .NET NuGet was therefore never republished, and 1.39.0 consumers see no TurnContext, no directive sink and no images[]/files[] ingest despite main carrying all of it since 2026-08-11. #352 (skill resolution) inherited the same mistake by copying #348's changeset header. The sibling TS PR #346 named BOTH packages, which is why the TS lane shipped and the .NET lane silently did not. Reported by a downstream consumer who checked the published package rather than main — the report was right about the artifact and wrong about the code. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012iM1Q8JC1H83H2FXQVQNs9
🦋 Changeset detectedLatest commit: a414896 The changes in this PR will be included in the next version bump. This PR includes changesets to release 2 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The report
A downstream consumer asked us to port the 1.39.0 file-transfer contract to the .NET server — no
ToolContext, no directive sink, noimages[]/files[]ingest inSmooAI.SmoothOperator.Server1.39.0.They were right about the artifact and wrong about the code.
mainhas had all of it since 2026-08-11 (#348). It was never published.Root cause
SmooAI.SmoothOperator.Server's<Version>is stamped byscripts/sync-versions.mjsfrom the lockstep anchor@smooai/smooth-operator(typescript/package.json).@smooai/smooth-operator-serveris a different package — the TypeScript server on npm, currently 1.8.0.…-server+@smooai/smooth-operator…-serveronlyRelease #349 consumed
.changeset/dotnet-file-transfer.mdand touched onlytypescript/server/{CHANGELOG.md,package.json}— visible right there in the release commit's diffstat.#352 (skill resolution, merged an hour ago) inherited the same mistake, because I copied #348's changeset header. So two .NET features were stranded, not one.
Fix
One changeset naming the anchor.
changeset versionbumps it →sync-versionsstamps the csproj (plus the AspNetCore and Postgres add-ons) → the release workflow publishes npm → NuGet → PyPI → crates.io at the shared version. Consumers get file transfer and skill resolution in the same release.No source change.
Follow-up
Nothing prevents a recurrence: a PR can touch
dotnet/**with a changeset that names no anchor and CI is perfectly happy. Worth a guard that fails when a PR touches a lockstep-stamped manifest's source tree without naming@smooai/smooth-operator— filing separately rather than widening this one.🤖 Generated with Claude Code
https://claude.ai/code/session_012iM1Q8JC1H83H2FXQVQNs9