QVAC-17940 chore[skiplog]: backmerge release-sdk-0.11.0 — version bump, changelog, NOTICE, tooling#2091
Merged
NamelsKing merged 2 commits intoMay 17, 2026
Conversation
Release metadata for @qvac/sdk v0.11.0:
- packages/sdk/package.json: 0.10.2 → 0.11.0
- packages/sdk/changelog/0.11.0/: CHANGELOG.md, CHANGELOG_LLM.md, breaking.md, api.md, models.md
- packages/sdk/CHANGELOG.md: rebuilt aggregate (15 versions, 0.11.0 first, prefers per-version CHANGELOG_LLM.md)
- packages/sdk/NOTICE: regenerated against 178 production JS deps + 209 models
Tooling improvements bundled with the release (`infra`-scope work surfaced
during changelog generation, kept together for a single release-line touch):
- scripts/sdk/generate-changelog-sdk-pod.cjs:
- Guard against PR titles that bypass format validation (Revert / Merge /
version bumps) — previously crashed processSDKPRs with
"Cannot read properties of undefined (reading 'tags')". Now warned and
skipped (e.g. PR #2059 "Revert qvac 17869 parakeet ggml").
- Add per-package EXCLUDED_PRS table for already-merged cross-cutting
chores that incidentally touch a package path. Seeded with #1860
(monorepo-wide path simplification across 26+ packages).
- Rewrite generateAnnouncementPost to emit short Slack-ready format
(header + 3 links + optional breaking block + footer); drop ~180 lines
of now-dead parsing/bullet-rendering helpers.
- .cursor/skills/sdk-changelog/SKILL.md: document the new short
announcement-post format and breaking-changes file-presence detection.
(cherry picked from commit 74edae7)
gianni-cor
approved these changes
May 16, 2026
opaninakuffo
approved these changes
May 16, 2026
Contributor
Author
|
/review |
Contributor
Tier-based Approval Status |
Contributor
Author
|
/review |
Proletter
pushed a commit
that referenced
this pull request
May 24, 2026
Release metadata for @qvac/sdk v0.11.0:
- packages/sdk/package.json: 0.10.2 → 0.11.0
- packages/sdk/changelog/0.11.0/: CHANGELOG.md, CHANGELOG_LLM.md, breaking.md, api.md, models.md
- packages/sdk/CHANGELOG.md: rebuilt aggregate (15 versions, 0.11.0 first, prefers per-version CHANGELOG_LLM.md)
- packages/sdk/NOTICE: regenerated against 178 production JS deps + 209 models
Tooling improvements bundled with the release (`infra`-scope work surfaced
during changelog generation, kept together for a single release-line touch):
- scripts/sdk/generate-changelog-sdk-pod.cjs:
- Guard against PR titles that bypass format validation (Revert / Merge /
version bumps) — previously crashed processSDKPRs with
"Cannot read properties of undefined (reading 'tags')". Now warned and
skipped (e.g. PR #2059 "Revert qvac 17869 parakeet ggml").
- Add per-package EXCLUDED_PRS table for already-merged cross-cutting
chores that incidentally touch a package path. Seeded with #1860
(monorepo-wide path simplification across 26+ packages).
- Rewrite generateAnnouncementPost to emit short Slack-ready format
(header + 3 links + optional breaking block + footer); drop ~180 lines
of now-dead parsing/bullet-rendering helpers.
- .cursor/skills/sdk-changelog/SKILL.md: document the new short
announcement-post format and breaking-changes file-presence detection.
(cherry picked from commit 74edae7)
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.
Companion release PR
This PR lands the same release metadata on
mainper gitflow.md "Keep main aligned". Content is identical to PR #2090 (same single cherry-picked commit). Tagged[skiplog]so it does not appear in future changelogs.🎯 What problem does this PR solve?
@qvac/sdkis ready to cut v0.11.0. 29 PRs have landed onmainbetween thesdk-v0.10.0tag and the currentrelease-sdk-0.11.0tip (e282e704), and the package version bump + changelog set need to land on the release branch so the publish workflow can ship to npm.The release completes the request-lifecycle and cancellation overhaul that began in 0.10.0: every long-running SDK call now flows through a unified
RequestRegistry, exposes itsrequestIdsynchronously on the returned promise, and can be cancelled individually withcancel({ requestId }). Thecancel(...)wire envelope is consolidated to two shapes, two legacy call signatures are removed (cancel({operation:"downloadAsset", downloadKey})andcancel({operation:"rag", workspace})), and the SDK gains typedinstanceoffor policy/cancel errors across the RPC boundary.Alongside the lifecycle work the release adds: Harmony / Qwen3.5 / Gemma4 tool-call dialects, FLUX.2 multi-reference fusion + per-call LoRA on diffusion, ESRGAN upscaling (post-step + standalone
upscale()API), Whisper VAD + end-of-turn events, multi-GPUsplit-mode/tensor-split/main-gpuon LLM and embed, areasoning_budgetknob for thinking models, and a Parakeet 0.4.0 GGUF backend with duplex streaming.Full per-PR breakdown in
changelog/0.11.0/CHANGELOG.md; human-readable narrative inCHANGELOG_LLM.md; breaking-change migration guides inbreaking.md; API code samples inapi.md.📝 How does it solve it?
Release metadata:
packages/sdk/package.jsonfrom0.10.2to0.11.0.packages/sdk/changelog/0.11.0/with:CHANGELOG.md— sectioned entries (✨ Features, 🔌 API, 🐞 Fixes, 📦 Models, 🧪 Tests, 🧹 Chores, ⚙️ Infrastructure), one bullet per valid PR (29 total after filtering [skiplog] / invalid-format / revert / exclusion-listed).breaking.md— auto-extracted BEFORE/AFTER for the three[bc]PRs (QVAC-17869 feat[bc]: migrate SDK parakeet plugin to 0.4.0 GGML + duplex streaming #2018 parakeet GGUF migration, QVAC-18827 feat[bc|api]: add unloadModel autoClose option, default-off on Bare #2024unloadModelautoClose, QVAC-18183 feat[bc]: CLI cancel bridge + cancelHandler retirement #2074 cancel-shape removals).api.md— auto-extracted code samples for the 13[api]PRs.models.md— added/removed model constants (Parakeet GGUF additions, Marian Opus NMT removals).CHANGELOG_LLM.md— hand-authored narrative release notes following the v0.10.0 shape.packages/sdk/CHANGELOG.mdaggregate (15 versions, 0.11.0 first; prefers per-versionCHANGELOG_LLM.md).packages/sdk/NOTICEagainst the currentpackages/sdkproduction dependency tree (178 JS deps + 209 models).Tooling improvements bundled with the release (surfaced during changelog generation, kept together for a single release-line touch — see "🧪 How was it tested?" for the specific failure modes that motivated each):
scripts/sdk/generate-changelog-sdk-pod.cjs:processSDKPRsno longer throwsCannot read properties of undefined (reading 'tags')when a PR title matches a validator exception (Merge/Revert/Squash/ version-bump /release(...)). Previously fatal; now warned and skipped. Triggered in this release by PR Revert qvac 17869 parakeet ggml #2059 (Revert qvac 17869 parakeet ggml).EXCLUDED_PRS) for already-merged cross-cutting chores that incidentally touch a package path. Seeded withsdk.1860(monorepo-wide path simplification across 26+ packages — only incidentally touchedpackages/sdkvia a test executor and a historical changelog doc).announcement-post.txtformat —generateAnnouncementPostrewritten to emit a Slack-ready post containing header + 3 links + optional breaking-changes block + thanks footer, matching the team's new convention (mirrors the 0.10.0 Slack post). Dropped ~180 lines of dead helpers (parseChangelogMarkdown,formatAnnouncementBullet,CHANGELOG_HEADING_TO_KEY,SLACK_SECTION_HEADINGS,MAX_ANNOUNCEMENT_BULLETS). Breaking-changes detection now keys onbreaking.mdfile presence (structurally direct — if there's a migration guide, link to it) instead of re-parsing CHANGELOG.md..cursor/skills/sdk-changelog/SKILL.md— Step 5 updated to document the new short format and the file-presence detection contract.🧪 How was it tested?
node scripts/sdk/generate-changelog-sdk-pod.cjs --package=sdk— exited cleanly after the bypass-validation crash guard + QVAC-16441 feat: simplify package folders, files and paths in the monorepo #1860 exclusion landed; fetched all 47 candidate PRs, filtered to 29 valid, generatedCHANGELOG.md/breaking.md/api.md/models.mdand rebuilt the root aggregate.node scripts/sdk/generate-changelog-sdk-pod.cjs --package=sdk --update-root-changelog— picked up the hand-authoredCHANGELOG_LLM.mdand re-rendered the root aggregate (root prefers LLM file when present).node scripts/sdk/generate-changelog-sdk-pod.cjs --package=sdk --generate-announcement-post— emits the new short format. Cross-validated against the v0.10.0 Slack post screenshot: header / 3 links / breaking-changes block (gated onbreaking.mdpresence) / footer. Smoke-tested the no-breaking branch by re-generating against v0.9.1 (which has nobreaking.md) — confirmed the breaking-changes block is correctly skipped.node .cursor/skills/notice-generate/scripts/generate-notice.js sdk— license-checker againstpackages/sdk/node_modules(178 production JS deps) + model attributions frommodels.prod.json(209 models). Sorted deterministically; re-runs produce byte-identical output.[mod]tag requires a Models section in the body — missing) and chore[notask] sdk: upgrade ocr-onnx and translation-nmtcpp #1999 (extra space before colon in title). Both excluded from the changelog with explicit warnings; will be flagged to PR authors for fix-and-backport if desired.packages/sdk/itself — release content + tooling improvements only.💥 Breaking Changes
Three
[bc]PRs are folded into this release (full BEFORE/AFTER inchangelog/0.11.0/breaking.md):unloadModelno longer auto-closes the Bare worker (QVAC-18827 feat[bc|api]: add unloadModel autoClose option, default-off on Bare #2024). DefaultautoCloseflips by runtime:trueon Node/Electron (unchanged behaviour),falseon Bare. PassautoClose: true | falseto override explicitly.parakeet*Srcconfig fields removed; the addon auto-detects TDT / CTC / EOU / Sortformer from GGUF metadata. Legacy multi-file constants (PARAKEET_TDT_ENCODER_INT8,PARAKEET_TDT_DECODER_INT8, etc.) replaced by single GGUF constants (PARAKEET_TDT_0_6B_V3_Q8_0,PARAKEET_CTC_0_6B_Q8_0,PARAKEET_SORTFORMER_4SPK_V1_Q8_0,PARAKEET_EOU_120M_V1_Q8_0).cancel(...)call shapes removed (QVAC-18183 feat[bc]: CLI cancel bridge + cancelHandler retirement #2074).cancel({operation:"downloadAsset", downloadKey, clearCache})andcancel({operation:"rag", workspace})removed because neither carried arequestId. Migrate tocancel({requestId: op.requestId})via the decorated promise (primary path) orcancel({modelId, kind: "rag"})broad-cancel (escape hatch). Every othercancel(...)shape is preserved by client-side normalization.🔌 API Changes
13
[api]PRs land on the public SDK surface — full per-PR code samples inchangelog/0.11.0/api.md. Highlights:completion,loadModel,embed,transcribe,transcribeStream,translate,finetune,downloadAsset, and the three cancellable RAG ops) returns a decorated promise with synchronously-readablerequestId. NewRequestRejectedByPolicyError(52420) andInferenceCancelledError(52419) round-trip across the RPC boundary with their typed fields intact.split-mode,tensor-split,main-gpuon LLM (hyphenated);splitMode,tensorSplit,mainGpuon embed (camelCase).init_images: Uint8Array[]), per-call LoRA, ESRGAN as post-step or standaloneupscale()API.transcribeStream({ emitVadEvents: true })opt-in mode yields a discriminated event stream with live VAD probabilities + turn boundaries.reasoning_budgetknob for thinking models.qvac verify bundleagainst the worker bundle before the SDKdist/copy; newBundleVerificationFailedError(50609).