{"assets":[{"access":"gitlab_access_required","architecture":"amd64","kind":"archive","name":"sonny-api_0.12.1-rc.7_linux_amd64.tar.gz","platform":"linux","sha256":"aa610be07f0cd58f1e56850237d4eefdcf6dc9c0d30e90ba4b9c4774d0d1f0cb","size_bytes":54969231,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.1-rc.7/downloads/sonny-api_0.12.1-rc.7_linux_amd64.tar.gz"},{"access":"gitlab_access_required","architecture":"arm64","kind":"archive","name":"sonny-api_0.12.1-rc.7_linux_arm64.tar.gz","platform":"linux","sha256":"39f68ae1fa51cfa0f75492327eb72925c03ad33ee41ebb5f00aefbbb016c3baf","size_bytes":50609685,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.1-rc.7/downloads/sonny-api_0.12.1-rc.7_linux_arm64.tar.gz"},{"access":"gitlab_access_required","architecture":"universal","kind":"installer","name":"sonny-desktop_0.12.1-rc.7_darwin_universal.dmg","platform":"darwin","sha256":"17e4ca731e0d20fbe3176725133b91eeebf4dda4d446948b4048f6008b416219","size_bytes":222642755,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.1-rc.7/downloads/sonny-desktop_0.12.1-rc.7_darwin_universal.dmg"},{"access":"gitlab_access_required","architecture":"amd64","kind":"installer","name":"sonny-desktop_0.12.1-rc.7_windows_amd64-installer.exe","platform":"windows","sha256":"493e8b6020c4783b49b8aa9d084c0464f6c9f921c8bf34ee870dcc60fe5124c5","size_bytes":102569160,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.1-rc.7/downloads/sonny-desktop_0.12.1-rc.7_windows_amd64-installer.exe"},{"access":"gitlab_access_required","architecture":"arm64","kind":"installer","name":"sonny-desktop_0.12.1-rc.7_windows_arm64-installer.exe","platform":"windows","sha256":"95e91dc9b324a01aba1fe68331072aa965f46f752ac94635d16635d9de2ceb83","size_bytes":93211704,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.1-rc.7/downloads/sonny-desktop_0.12.1-rc.7_windows_arm64-installer.exe"},{"access":"gitlab_access_required","architecture":"amd64","kind":"archive","name":"sonny_0.12.1-rc.7_darwin_amd64.tar.gz","platform":"darwin","sha256":"e77fdb9e548b78acdf032f9636f43c2c54f59df6e41337791a845ef49ec9a5c1","size_bytes":74448994,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.1-rc.7/downloads/sonny_0.12.1-rc.7_darwin_amd64.tar.gz"},{"access":"gitlab_access_required","architecture":"arm64","kind":"archive","name":"sonny_0.12.1-rc.7_darwin_arm64.tar.gz","platform":"darwin","sha256":"623d0ccf938fdd6196ed84a7f8472b6030cc301e374970ed81f96d97ddc8267c","size_bytes":70229240,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.1-rc.7/downloads/sonny_0.12.1-rc.7_darwin_arm64.tar.gz"},{"access":"gitlab_access_required","architecture":"amd64","kind":"installer","name":"sonny_0.12.1-rc.7_linux_amd64.apk","platform":"linux","sha256":"356f66d6e5d69c51bc6041bfe16c07292c7a2486641c12fa74953ca6d12f03a6","size_bytes":138447430,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.1-rc.7/downloads/sonny_0.12.1-rc.7_linux_amd64.apk"},{"access":"gitlab_access_required","architecture":"amd64","kind":"installer","name":"sonny_0.12.1-rc.7_linux_amd64.deb","platform":"linux","sha256":"323d904df0603689d2b344b7547f9af8dc6c0ce0f91b41864748ea52a612bb84","size_bytes":132312176,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.1-rc.7/downloads/sonny_0.12.1-rc.7_linux_amd64.deb"},{"access":"gitlab_access_required","architecture":"amd64","kind":"installer","name":"sonny_0.12.1-rc.7_linux_amd64.rpm","platform":"linux","sha256":"487a0d52425b33e1b482c068c0e48da6d56c8e378aef3da1ac3231df4e33c3d2","size_bytes":132348943,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.1-rc.7/downloads/sonny_0.12.1-rc.7_linux_amd64.rpm"},{"access":"gitlab_access_required","architecture":"amd64","kind":"archive","name":"sonny_0.12.1-rc.7_linux_amd64.tar.gz","platform":"linux","sha256":"f1c11c6511c4e8c2fd8d97170a5ddbf67254941a3a7ea2fced7decb76b169188","size_bytes":77378851,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.1-rc.7/downloads/sonny_0.12.1-rc.7_linux_amd64.tar.gz"},{"access":"gitlab_access_required","architecture":"arm64","kind":"installer","name":"sonny_0.12.1-rc.7_linux_arm64.apk","platform":"linux","sha256":"f3585f9e88fcb9192df8eb069fe0a466081e5a0f27651ad43b4d4cc2ff92b5df","size_bytes":127009614,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.1-rc.7/downloads/sonny_0.12.1-rc.7_linux_arm64.apk"},{"access":"gitlab_access_required","architecture":"arm64","kind":"installer","name":"sonny_0.12.1-rc.7_linux_arm64.deb","platform":"linux","sha256":"a6cb964e682ecaf4773d5c790fbc211d730358c0f940b488cb5a36d9c8347272","size_bytes":121919870,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.1-rc.7/downloads/sonny_0.12.1-rc.7_linux_arm64.deb"},{"access":"gitlab_access_required","architecture":"arm64","kind":"installer","name":"sonny_0.12.1-rc.7_linux_arm64.rpm","platform":"linux","sha256":"c58e92d7b492e83695c4bf7ae7b2be5e0ae3bd397d8be12a5e12359ab43bb8d1","size_bytes":121960408,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.1-rc.7/downloads/sonny_0.12.1-rc.7_linux_arm64.rpm"},{"access":"gitlab_access_required","architecture":"arm64","kind":"archive","name":"sonny_0.12.1-rc.7_linux_arm64.tar.gz","platform":"linux","sha256":"fe6b7c7c1e8c2a693ab86870ecc0bb911210bc1bb9819bbfac87615cf5531573","size_bytes":71342821,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.1-rc.7/downloads/sonny_0.12.1-rc.7_linux_arm64.tar.gz"},{"access":"gitlab_access_required","architecture":"amd64","kind":"archive","name":"sonny_0.12.1-rc.7_windows_amd64.zip","platform":"windows","sha256":"407e6a0be9a204d3322bc41a3f423b81b4cf98e82cbd89be1f003e1985dd868c","size_bytes":74257421,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.1-rc.7/downloads/sonny_0.12.1-rc.7_windows_amd64.zip"},{"access":"gitlab_access_required","architecture":"arm64","kind":"archive","name":"sonny_0.12.1-rc.7_windows_arm64.zip","platform":"windows","sha256":"e7069d4dfb0661514a8b4754f0374c339172c071941f41dc6e1d0b6a82a27b68","size_bytes":67307520,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.1-rc.7/downloads/sonny_0.12.1-rc.7_windows_arm64.zip"},{"access":"gitlab_access_required","architecture":null,"kind":"checksums","name":"checksums.txt","platform":null,"sha256":"be993565beef28a6c5634f48736a9aeae2f3640271de71484e24131ff94d5dcb","size_bytes":2613,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.1-rc.7/downloads/checksums.txt"},{"access":"gitlab_access_required","architecture":null,"kind":"signature_bundle","name":"checksums.txt.bundle","platform":null,"sha256":"7c51759f0132a546a661eb1612fe6b023a3857fa3c9e872b60ffdae571c4f0ce","size_bytes":9479,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.1-rc.7/downloads/checksums.txt.bundle"},{"access":"gitlab_access_required","architecture":"universal","kind":"sbom","name":"sonny-desktop_0.12.1-rc.7_darwin_universal.sbom.cdx.json","platform":"darwin","sha256":"a3a5083e026fad62782ae6c32a77142acf38c6152fa0eda69975a9d7c16243bc","size_bytes":62408,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.1-rc.7/downloads/sonny-desktop_0.12.1-rc.7_darwin_universal.sbom.cdx.json"},{"access":"gitlab_access_required","architecture":"amd64","kind":"sbom","name":"sonny-desktop_0.12.1-rc.7_linux_amd64.cdx.json","platform":"linux","sha256":"e4917ad4abfac2a8ee39b94dc5a3520329baa86d20ddb56f73677fdf2db28cdc","size_bytes":134931,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.1-rc.7/downloads/sonny-desktop_0.12.1-rc.7_linux_amd64.cdx.json"},{"access":"gitlab_access_required","architecture":"amd64","kind":"reproducibility","name":"sonny-desktop_0.12.1-rc.7_linux_amd64.reproducibility.json","platform":"linux","sha256":"df465eab28240dafd7d779ee788c87d08d9f869a11b69c967a481836ffdfc41b","size_bytes":663,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.1-rc.7/downloads/sonny-desktop_0.12.1-rc.7_linux_amd64.reproducibility.json"},{"access":"gitlab_access_required","architecture":"amd64","kind":"sbom","name":"sonny-desktop_0.12.1-rc.7_windows_amd64-installer.sbom.cdx.json","platform":"windows","sha256":"43513faf982b7a57feaa389f966fd1e0f8a5843b65088aef96914de3b7a7f85f","size_bytes":125926,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.1-rc.7/downloads/sonny-desktop_0.12.1-rc.7_windows_amd64-installer.sbom.cdx.json"},{"access":"gitlab_access_required","architecture":"arm64","kind":"sbom","name":"sonny-desktop_0.12.1-rc.7_windows_arm64-installer.sbom.cdx.json","platform":"windows","sha256":"cf7ecf39dc5a1e87a0f72986f87455c5ab4405723949b377d5e6cab50be4f032","size_bytes":125926,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.1-rc.7/downloads/sonny-desktop_0.12.1-rc.7_windows_arm64-installer.sbom.cdx.json"}],"channel":"prerelease","notes_markdown":"## Changelog   \n### Features   \n* 8ce2a3e38c578a115fab00cf30ad61baceffdf23 feat(app): show the startup re-host retry state in sessions.recover (SONNY-4905)   \n* e3cdf3b9930cb6b0432f4cee0e9b27341ae184ea feat(desktop): show the truncated session id with a copy button (SONNY-4927)   \n* 1d4eee8ed4afe3a3ecc734a12d274136374e0a83 feat(mesh): add the managed provider input-admission owner (SONNY-4942)   \n* 25d71174cfc02af540e6d80bb4a88512ce46dca4 feat(meshengine): bind a session primary owner to the managed lease (SONNY-4942)   \n* 0d33cd97986999bc689ed714dc4b3e19dc5a989e feat(runtime): keep only the live set and a bounded applied-key index (SONNY-4926)   \n* 0c2005f78a8e5f5258eb51fc265c6853ed43701e feat(sessions): bind a chat to a trusted workspace from inside the chat (SONNY-4927)   \n### Bug Fixes   \n* 62bd6116dd82f8d98f4fd1fa08395ee54cd1f113 fix(agentmail): wake an idle receiver for verified peer mail (SONNY-4946)   \n* 2263ea6880c2a08786143e8b4095185cf4f71284 fix(app): retry a failed startup re-host with a bounded backoff (SONNY-4905)   \n* 954764a444da71124fd01c101c08d9a34626799d fix(benchmarks): reseal the TCE fault report for the go1.27.2 toolchain (SONNY-4927)   \n* 70b13e409538ee8e095dac8e28cac37a4d277f9a fix(build): install the macOS desktop app bundle (SONNY-4921)   \n* 87960700e6a96b3d7062b3f796f9cdb8d4d1c282 fix(build): stop the isolation engine and remove read-only state on uninstall   \n* f954365d02e466ed3d094866248a880d2b7c5dd6 fix(catalog): admit tool_exec arguments against the target's own schema (SONNY-4937)   \n* 2ac91ddad74c562beed0ff73fc0111bc0d939a9e fix(catalog): certify tool_exec results against the target's own output schema (SONNY-4940)   \n* 86f9d30c66c98fd50af6c18251fbf01afd8fd42d fix(catalog): certify tool_search rows that carry an input schema (SONNY-4941)   \n* c832e2d1eedc71376ff819317c954c4fc10950fb fix(ci): canonical, admissible test TMPDIR on the build volume (SONNY-4927)   \n* 778528819dbd0b22a79dc7fb7d43c907b843aef0 fix(ci): classify the nativequitqualification build tag in lint-variants (SONNY-4927)   \n* 2660abce808c249cae65523554255b0d559af25e fix(ci): create no publication jobs for prerelease tags (SONNY-4578)   \n* 4a6841b978311c1a3316af3f47a1db9782393c78 fix(ci): export the test TMPDIR in the script and budget full lint runs (SONNY-4927)   \n* bbcaf40cdc7835bbfd5711d3b3cc8f7c72f6d37b fix(ci): give drift-contract room to finish the shard check (SONNY-4927)   \n* 16039e81a336df2efc6830be7e62959f1b119a52 fix(ci): give drift-guards room to upload its module cache (SONNY-4927)   \n* 5b75b1ede3461d724b68712e19badad46f51aa61 fix(ci): install the pinned pnpm with npm on node:26 images (SONNY-4927)   \n* a9feae652ac991315234fad16ff566a37f90641a fix(ci): keep the test temp dir short enough for Unix sockets (SONNY-4927)   \n* cba2563240f890117ed82ff8f8264a45b154f390 fix(ci): let a newer main push cancel go-build and the drift gates (SONNY-4927)   \n* 025a51161ff7cb8282339b645ce4c6b2a42240fc fix(ci): lint linux-prod and linux-nocgo in separate verify cells (SONNY-4927)   \n* a5d300f7ab7e500ff86148107896561cf157620e fix(ci): qualify proc v0.2.1 and synapse v0.3.3 in the CUE isolation gate (SONNY-4927)   \n* 9ef00aef31661be4d8febcc682fe3db3e3f47cac fix(ci): qualify proc v0.2.3 in the CUE isolation gate (SONNY-4927)   \n* 7b209e64e4f116165615e9d42c112f986656f92e fix(ci): run the production fixtures on a filesystem with O_TMPFILE (SONNY-4927)   \n* 9170ac49c3915c35ad2abaaba3bad26c50ce1e8a fix(ci): set the Windows Artifact Signing certificate subject (SONNY-4575)   \n* 05dc3f5d67aff1ed04c05181b0f79d787ec06cd3 fix(cli): onboard a gateway group through its -v1 twin when both are listed (SONNY-4829)   \n* d5c7ed4c8e2cb1c46c5d0b03ff435b92f434371f fix(cli): run the MCP doc_* round trips on an O_TMPFILE workspace (SONNY-4927)   \n* 895e7be6adcfcfc55c70d74fe48d99e67ced04c7 fix(control): observe the newest migration in the one-behind read test (SONNY-4927)   \n* b27564f2da3301607d12c93b3129f466dc39715d fix(control): restate the sensitive_read effect in control/domain (SONNY-4927)   \n* 541a2a1c597ef66eb9ec03bcc65e2acb4ed3a6c8 fix(deps): restore the pinned Geode digest and stop unpinned bumps (SONNY-4927)   \n* 391c61409fe2393ef7092909287eec86131952be fix(deps): tidy go.sum and gate untidy module files at commit   \n* b7a009a8088d372e6b4522bec8b9eba8d3bd5495 fix(desktop): admit packs installed after the daemon started (SONNY-4921)   \n* a5883955a57e873a0e894a2abb68e91a827e950f fix(isolation): bind managed cells through the session's verified realm lineage (SONNY-4932)   \n* 018b33099daa968d1edacb1e2f1224e776c42631 fix(isolation): bind managed execution authority to the verified managed identity (SONNY-4934)   \n* e767f7f5c36487efbf9bd16f0b99d4e1d2a3d780 fix(isolation): pin realm runtime facts in managed session dependencies (SONNY-4928)   \n* 1c610951af2c253844d82494639a39ee984f3967 fix(isolation): re-verify live managed realms against recorded history (SONNY-4925)   \n* 76fdda3844ebe9a49ed0f84cd4f9e907a0f5bce4 fix(isolation): renew managed realm freshness with signed realm renewals (SONNY-4930)   \n* e8667f2f4be2fa8c66027247a37367321f0a4d34 fix(isolation): verify managed realm lineage incrementally and lift the 4096-record proof cap (SONNY-4936)   \n* 516a627d2ab5e4b4d60a7d549235872abdfdc541 fix(isolationruntime): refuse a revoked structured capability before dispatch (SONNY-4927)   \n* d343bc4ecbc612fc67103ec2e477236d7a732eb3 fix(mesh): answer a peer for a closed recipient as closed (SONNY-4943)   \n* 1dd7e88af284ff2a84a1085f5099ba656b88df4b fix(mesh): back off agent mail resends and stop them on a received receipt (SONNY-4944)   \n* 6722a449b1a93b0738bcdb2ef5f74af22aa208df fix(mesh): give each session stream its own copy of the output (SONNY-5012)   \n* e35d35b5bb3b7b6798fa550e1b24ecf69bda851f fix(mesh): interrupt a managed session whose host lease is lost (SONNY-4943)   \n* 256adf660dcdcc133705b1fd024d9e94fd35e744 fix(mesh): issue a real control-plane grant for every managed catalog call (SONNY-4935)   \n* f38cb60c9ac51da5093b091b99bfdc8aadf1fc63 fix(mesh): keep sealed turn prompts out of the turn run aggregate (SONNY-4947)   \n* 7ef53db0decae8b5ba7533561dc63a2de06351b9 fix(mesh): re-observe a peer grant until its mirror is observed (SONNY-4929)   \n* e57a9a0d2fb81211f1b124c660cffdf7d3ff9f01 fix(mesh): record managed operator turns and wake idle receivers (SONNY-4942)   \n* 63d8c3b84574832268857e973edb113ac400d751 fix(mesh): settle a managed node's sessions as INTERRUPTED at restart (SONNY-4931)   \n* 851b704dbccdf1de3664655eb67e7aea54937206 fix(mesh): settle terminated managed sessions and cancel turns (SONNY-4948)   \n* 98ea0a8427f994c8d61f70cfd799c34c3e3a82a6 fix(mesh): stop resends to a closed recipient and cancel the sender copy (SONNY-4944)   \n* cb324cfc4a354240d8197db065f6f63dd3ebba35 fix(packaging): make fresh-install work and repeat on macOS   \n* 5672d5374cdb1f13268e4d636d0bdf1bb097c843 fix(packload): validate CheckInheritance against llm v0.45.0 (SONNY-4927)   \n* 51d17241e5b3a06632c463656a7fce2b9561c815 fix(packs): stop startup pack fetches blocking startup or dying silently (SONNY-4829)   \n* a975de0900a58b5d841f15ddebbc2f3d9c5e6a35 fix(planbaseline): let the recovery report settle journal records (SONNY-4927)   \n* 35b2d1dcc05bcd383eae4a5b8f881bd14200dbbf fix(release): give Linux and Windows desktop builds a two-hour job budget (SONNY-4578)   \n* 3bb991a9050d56950d8012388f12336af5411335 fix(release): name and depend on prerelease desktop Linux packages by their deb/rpm version (SONNY-4578)   \n* aac88ad4bf4e21b76fae573c490bfaf703989a16 fix(release): put the macOS signing keychain on the search list (SONNY-4578)   \n* a603b6eae6cc942aacf816748f31a93dd7ad9978 fix(release): unblock the desktop signing candidate on macOS and Windows (SONNY-4578)   \n* cf57ec852b788ef666e8247bbe3699e80d2bff58 fix(release): verify the WebView2 bootstrapper against pinned Microsoft roots (SONNY-4575)   \n* d2e1e08190f58c0fa2a8582edbd762aed8f8377f fix(routing): fail over to the next candidate on a capability rejection   \n* bbfaa9a1ea381129bf9388ab2d7aede51b64aece fix(routing): shape reasoning effort for tool-bearing calls per deployment   \n* 6477b684d5b34b510540550ef52a7d940bd486ec fix(routing): stop fallback targets inheriting the primary route's reasoning effort   \n* 22edc37c29ac4b2e8e6c8484c27d313e77ef8167 fix(runtime): end a workspace-less policy denial with an actionable outcome (SONNY-4927)   \n* cfde30f6350e1bb2d033bace646ed6c1f0be6f57 fix(runtime): settle a relay's conversation with the task it forwards (SONNY-4926)   \n* 17af8c9bf4a377e2999e1e448cc8a308af9c7597 fix(runtime): verify a session journal from its verified head (SONNY-4905)   \n* 7afa6b7b730d212e8c5376f9ed8ff950a1acb411 fix(runtimeworker): wait briefly for a session's previous fence (SONNY-4927)   \n* 99a39bf5dc27365e75ffc3d654bb2169de17c9b8 fix(store): back up every event of a long runtime journal (SONNY-4905)   \n* c66708382312e8ae45138b83f9b7669798ed1125 fix(supervisor): keep serving when a client hangs up before Accept   \n* d7b8d3f8e7f38c52d3e90936e39f2604c90699e6 fix(target): learn which reasoning remedy a deployment accepts beside tools, and stop on none (SONNY-4829)   \n* fa771e7f5f0326b9e8bcf37387a6136711aa6a91 fix(target): retry a tool-bearing turn with reasoning_effort none when LiteLLM rejects the pair (SONNY-4829)   \n* 73231952b83b1e533f33b2b992471e0ade992d96 fix(test): reconcile drifted parity, CLI and mesh peer tests (SONNY-4927)   \n* 514580021e63f224dc4b1daa0753f441d7d1675a fix(tools): provision private staging for in-process workspace scopes   \n* 76af4c6e99857be3f093700553b1ccffa0aa818c fix(trace): name ScanError files relative to the scanned root (SONNY-4927)   \n* 309facd3cd0d9c087f052832e5e23aba9b5d45f4 fix(tui): admit picked and pinned models through canonical routing   \n* d66468d5f5bc5634e862f8a2d0d232eb24669058 fix(tui): authorize primary factory against served profile identity   \n* 281a23e06212b33185c474d5edb9a9d2ffcb4c3d fix(tui): bind picked api_model rows through canonical routing (SONNY-4829)   \n* c1d23fd01d7720e7f0e1d0a521368e2fa62dc2ee fix(ui): apply a same-id pack switch whose content changed (SONNY-4927)   \n* fab72c71aa83f5292d8a981da253ec5766196f5e fix(ui): filter the environment start picker by the latest running set (SONNY-4927)   \n* 42da019f7c41773337349eda3b39af96785fc83b fix(ui): keep text streamed before a cancel in the interrupted reply (SONNY-4927)   \n* f223b05dcb6dc1bc6550e2511252b3103d23fa7e fix(ui): keep the shown plan revision rendered while it is re-read (SONNY-4927)   \n* 777a1de75cf78ca78b02949cc1e2614b34b89b2a fix(ui): re-list New chat models after Settings closes (SONNY-4921)   \n* 179ef0aff66545127289f33e315f7a692013672d fix(ui): restore the frozen ui install and the /jump and /split gates (SONNY-4829)   \n### Performance   \n* 52baf6680dd01a8994b3ca9fe0a72c6bc969fa2f perf(ci): let precommitci-authoritative read the go-build caches (SONNY-4949)   \n* bc61baf7b019b0138b8bf56183b6db7d948a203c perf(ci): publish docs beside validation, only when docs change (SONNY-4950)   \n* 221227107e94ca2bbeb2a6e3922458a25453b29e perf(store): verify a long runtime journal within the re-host bound (SONNY-4926)   \n### Others   \n* 43a3a08394eea4be3951f8085b05ee5d75f7ada5 chore(release): bump to v0.12.1-rc.7 for the desktop signing candidate (SONNY-4578)   \n* 63323505044793078ee6af2e626ac1ea1a648ed8 ci(release): sign Windows desktop builds with Azure Artifact Signing   \n* ca7ef186a728e5cf3d09a913c52255ecccf4f57c docs(codeindex): recheck the codeintel contract against llm v0.42.0 (SONNY-4927)   \n* b13828a74513c7bd4ca3112988ec7b4c74243075 docs(messaging): record the blocked stage 2 canary fourth attempt on 63d8c3b84 (SONNY-4652)   \n* 171fcc7a3241d6f0cae65ee7864923395adbb414 docs(messaging): record the blocked stage 2 canary rerun on e707f9e62 (SONNY-4652)   \n* c1e4347c462eafcce9424f8255d2dd168ca9fad0 docs(messaging): record the blocked stage 2 canary third attempt on 1c610951a (SONNY-4652)   \n* 23fd2abdbd27fdde43e4eb847f6dc6eb077be4a4 docs(messaging): record the stage 2 canary eighth attempt on 62bd6116d (SONNY-4652)   \n* cb65030f5282accbd44d5b43708c1d079b8486ee docs(messaging): record the stage 2 canary fifth attempt on f954365d0 (SONNY-4652)   \n* 5827d5e91de90bb6d0f6cc052a493399d32c8f57 docs(messaging): record the stage 2 canary seventh attempt on e57a9a0d2 (SONNY-4652)   \n* ac0efafdda892852f8af1efced73592bd05335e0 docs(messaging): record the stage 2 canary sixth attempt on d66468d5f (SONNY-4652)   \n* 8024bf9a640ea266029def02c6ba5fcc72373e4d docs(runtime): describe the live set and the applied-key index (SONNY-4926)   \n* 509c1da45e2c16b89aec5b6a273f048a98f53ebc docs(ui): record the npm-installed pnpm 12.11.2 on node:26 CI images (SONNY-4927)   \n* 8adbbd510ecba209de5263f01cc355ad5c74207e test(a2a): cover the native relay pump's dispatch, retry and answer paths to restore the coverage floor (SONNY-4578)   \n* a5c6ba1916197c946caeb11384884e3836d78635 test(a2a): keep the relay's held forward below its I/O bounds (SONNY-4927)   \n* bb274870f02893d09e7a161eb7384b1e29b3761f test(a2a): release each restart's runtime in the federation soak (SONNY-4647)   \n* ea873941532e572ed6a9a216d792ba1af29b0295 test(a2a): report p99 and each task's latency in the federation soak (SONNY-4926)   \n* b5f11891285ff221e139bd58e4cce82a08e9af6a test(a2a): report task latency in the federation soak (SONNY-4926)   \n* 2629c082fed08e06aea44f1196d4d94592fd8c5b test(a2a): size the restart journals for the race detector (SONNY-4927)   \n* 757efa844eccacfc0d0e4a20b2f7598a3475549f test(app): allowlist the control-store compat reach in the facade guard (SONNY-4927)   \n* 3c0ad015f575c5cda071f8de10d4120a44ade7fa test(catalogruntime): cover dispatcher accessors and history recovery to restore the coverage floor (SONNY-4578)   \n* c1378390481af3316744f4da7994abe01a473aa9 test(ci): reproduce publication jobs created for prerelease tags (SONNY-4578)   \n* 185661c09a05cb89b5248b4c2903159f2e8754cd test(cli): reproduce Desktop onboarding binding legacy gateway groups over their -v1 twins (SONNY-4829)   \n* b9e42ab07d81f4480e5bc270d9ff106562c3207a test(cmd/sonny): realign release-blocking tests with intended behavior (SONNY-4927)   \n* cfa924e1845d423584bcd86a9ffa6985db479c67 test(codeindex): widen the store bound for the checkpoint kill driver (SONNY-4927)   \n* 948a4f755c9dc658af1c83b5134ba7827cbdfb77 test(envelope): track mesh push progress under runMeshPush (SONNY-4927)   \n* 8f080d02ed77c79556f1372092ca3c4c24f4e2f7 test(hooks): cover ValidateYAML, BlockResult canonicalization, and UnwrapTool to restore the coverage floor (SONNY-4578)   \n* 5adcc670c9f7332b14532b4b29fd17c7ca763c93 test(mesh): read portable child mailbox results from the tool_exec envelope (SONNY-4940)   \n* 44c96ff973827ee593d2f22ccebc675081a1e24a test(mesh): settle wake binding charges before checking holds (SONNY-4927)   \n* 184f4bb6129c237907450ce98fb1989706874e17 test(meshengine): keep message recovery inside the receive hang guard (SONNY-4927)   \n* d29f1037c44d9349808b0ffd75f63351e82a7d05 test(packcompile): route policy decision_policy packs like governance (SONNY-4927)   \n* 1e484a4fc5dabe8c0778161eb8769107d8bd7f4f test(packs): reproduce a startup pack fetch killed with no reason (SONNY-4829)   \n* a9ff6a0d8dfd41b2922f65d797e9f3b771bac294 test(release): reproduce prerelease desktop Linux packages failing their contract (SONNY-4578)   \n* 8063325eb23dbec87d5e2e11228b6105727f36bb test(release): reproduce rc.5 desktop builds exceeding the 60m job timeout (SONNY-4578)   \n* 621fff543f9a6ec386401b23af5bb931aa40c721 test(release): reproduce the v0.12.1-rc.1 desktop signing failures (SONNY-4578)   \n* 4319b8b99fe212056b4b1be5ac194b842ec03a5f test(release): reproduce the v0.12.1-rc.2 missing Developer ID identity (SONNY-4578)   \n* e288f8a687dc4fd9a7e7dd04d6c677b66a643c6d test(relverify): mirror the homebrew-publish v1.55.8 include (SONNY-4927)   \n* fd688d431acea03deb5137f7c2e67ce9d6fb6bd6 test(routing): reproduce primary reasoning effort leaking to fallback targets   \n* 41486ae9824347ccd867d2c286f62d0b1aea23c3 test(sessions): reproduce Desktop chats that cannot choose a workspace (SONNY-4927)   \n* a660a64c569ef56963b2575c2d6a179f5f7e09fa test(sqlite): run the verify measurement as a smoke check instead of skipping (SONNY-4927)   \n* 2b744200fad4891a29d8f4f2d3a11184304cf3cf test(supervisor): reproduce desktop startup exit status 4 on macOS   \n* ca4402ba6f0fb945dd92dfd3600ccdd3ab0e8c00 test(target): reproduce Desktop turns failing on LiteLLM tools+reasoning_effort 400 (SONNY-4829)   \n* 98479345c5df35cf18b6d71b86fb6c0e2a40e0a5 test(target): reproduce the tools/reasoning retry poisoning astra with a rejected none (SONNY-4829)   \n* 60023c5ac6794178fe29adceb521186ba998a995 test(toolefficiency): check the CI Geode service against the pin (SONNY-4927)   \n* 6e4cca85f2b361ae61a03397fc9e642e8bd9905c test(toolefficiency): reseal surface parity for the wired history stage (SONNY-4927)   \n* 7d59a7498d0615098ba48351a323ae92f820c1a9 test(toolscope): exempt the activation presentation schema check (SONNY-4927)   \n* 4485fdbfc37b202bd96024db953e482b21a366d4 test(tui): reproduce picked api_model rows bypassing canonical routing (SONNY-4829)   \n* 82453e8b87960eea3a1bc20de1de3e09bcc31ea2 test(tui): reproduce picked-model bypass of tools_with_reasoning gate   \n* 7931994c61ea14b32ea51276e05658f0177f5213 test(tui): reproduce primary authority refusal under profile tenant   \n* 5d49f080da9462636b2b8b1b2ef6955f9733a6d7 test(verdict): cover claim validation and signer key checks to restore the coverage floor (SONNY-4578)\n\n","product":"sonny","published_at":"2026-10-15T15:46:50.960Z","schema":"sonny-release/v1","source_commit":"43a3a08394eea4be3951f8085b05ee5d75f7ada5","tag":"v0.12.1-rc.7","verification":{"checksums_url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.1-rc.7/downloads/checksums.txt","historical_archive":{"checked_at":"2026-10-26T04:27:20.265658+00:00","newer_released_at":"2026-10-25T16:41:03.251Z","newer_source_commit":"eaf885551c5834f4bee56ea48be7b9eff768c66d","newer_stable_tag":"v0.12.8"},"scope":"Historical release: file hashes match the authenticated release checksum manifest and GitLab package metadata. Only assets with a separate anonymous streamed proof are classified as public. GitLab links require project access; neither anonymous availability nor signature verification is claimed for them.","signature_bundle_url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.1-rc.7/downloads/checksums.txt.bundle","signature_verified_by_importer":false},"version":"0.12.1-rc.7"}