{"assets":[{"access":"gitlab_access_required","architecture":"amd64","kind":"archive","name":"sonny-api_0.12.2-rc.7_linux_amd64.tar.gz","platform":"linux","sha256":"9b6a1722414af50f5043f8f95af10e5a3787dea42028acd01a82bf7c43b9e3c9","size_bytes":55131188,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.2-rc.7/downloads/sonny-api_0.12.2-rc.7_linux_amd64.tar.gz"},{"access":"gitlab_access_required","architecture":"arm64","kind":"archive","name":"sonny-api_0.12.2-rc.7_linux_arm64.tar.gz","platform":"linux","sha256":"b85045a70ed3dbd026ebfab299d3a7f4b56bf9ba84c6000effbb3312c7c2d225","size_bytes":50769710,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.2-rc.7/downloads/sonny-api_0.12.2-rc.7_linux_arm64.tar.gz"},{"access":"gitlab_access_required","architecture":"amd64","kind":"installer","name":"sonny-desktop-0.12.2-rc.7-1.x86_64.rpm","platform":"linux","sha256":"212a7c5e38c7fa96280527f299a7f94829a98739daece6e40b6eb8b530552580","size_bytes":28216336,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.2-rc.7/downloads/sonny-desktop-0.12.2-rc.7-1.x86_64.rpm"},{"access":"gitlab_access_required","architecture":"amd64","kind":"installer","name":"sonny-desktop_0.12.2-rc.7_amd64.deb","platform":"linux","sha256":"b33c26ddbf36e0ea035bba32a5c53828cfb6efb26347c5ded569ad6345170576","size_bytes":28214688,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.2-rc.7/downloads/sonny-desktop_0.12.2-rc.7_amd64.deb"},{"access":"gitlab_access_required","architecture":"universal","kind":"installer","name":"sonny-desktop_0.12.2-rc.7_darwin_universal.dmg","platform":"darwin","sha256":"727d998a56450947c5c03691442a64c282cc0bd289bfc5dd21dbe6933aa83f16","size_bytes":224106555,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.2-rc.7/downloads/sonny-desktop_0.12.2-rc.7_darwin_universal.dmg"},{"access":"gitlab_access_required","architecture":"amd64","kind":"installer","name":"sonny-desktop_0.12.2-rc.7_windows_amd64-installer.exe","platform":"windows","sha256":"a692b3b7c7751118079fdbe1e4159fbbfed909ca4bc751f465fa1df37327a236","size_bytes":103209792,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.2-rc.7/downloads/sonny-desktop_0.12.2-rc.7_windows_amd64-installer.exe"},{"access":"gitlab_access_required","architecture":"arm64","kind":"installer","name":"sonny-desktop_0.12.2-rc.7_windows_arm64-installer.exe","platform":"windows","sha256":"902037f7cfc3f9f7741e1840ee4e103bdc2a13b9a345df274fa59e99ab2d6041","size_bytes":93782328,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.2-rc.7/downloads/sonny-desktop_0.12.2-rc.7_windows_arm64-installer.exe"},{"access":"gitlab_access_required","architecture":"amd64","kind":"archive","name":"sonny_0.12.2-rc.7_darwin_amd64.tar.gz","platform":"darwin","sha256":"89fb7dd15bb364ead8d1024fd0c0be5089acc0c41d296b5c6cdef0b7ecf66f09","size_bytes":74921033,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.2-rc.7/downloads/sonny_0.12.2-rc.7_darwin_amd64.tar.gz"},{"access":"gitlab_access_required","architecture":"arm64","kind":"archive","name":"sonny_0.12.2-rc.7_darwin_arm64.tar.gz","platform":"darwin","sha256":"1c810b37579ea4f4764bde636cbb8290c17aab7e3f04deed2f7d6b1e11313779","size_bytes":70681749,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.2-rc.7/downloads/sonny_0.12.2-rc.7_darwin_arm64.tar.gz"},{"access":"gitlab_access_required","architecture":"amd64","kind":"installer","name":"sonny_0.12.2-rc.7_linux_amd64.apk","platform":"linux","sha256":"36d87fc6da38423e31cb1fcf3af271e3cf560197a9cbd6d357a80f338469264a","size_bytes":139147779,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.2-rc.7/downloads/sonny_0.12.2-rc.7_linux_amd64.apk"},{"access":"gitlab_access_required","architecture":"amd64","kind":"installer","name":"sonny_0.12.2-rc.7_linux_amd64.deb","platform":"linux","sha256":"768d27739b6ab9f32f8dd15ef37c0fccf9936376e2e44bb4678ddbb2bae997ba","size_bytes":132969264,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.2-rc.7/downloads/sonny_0.12.2-rc.7_linux_amd64.deb"},{"access":"gitlab_access_required","architecture":"amd64","kind":"installer","name":"sonny_0.12.2-rc.7_linux_amd64.rpm","platform":"linux","sha256":"5154a9625def4c4ef0035d4a9493e010227ab6213db89c3772bc906d9360e337","size_bytes":132993728,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.2-rc.7/downloads/sonny_0.12.2-rc.7_linux_amd64.rpm"},{"access":"gitlab_access_required","architecture":"amd64","kind":"archive","name":"sonny_0.12.2-rc.7_linux_amd64.tar.gz","platform":"linux","sha256":"c33f54fe03b9c0eb21ee26240dba724b4dac829f5bc27ac56360e897fd41bd1d","size_bytes":77863768,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.2-rc.7/downloads/sonny_0.12.2-rc.7_linux_amd64.tar.gz"},{"access":"gitlab_access_required","architecture":"arm64","kind":"installer","name":"sonny_0.12.2-rc.7_linux_arm64.apk","platform":"linux","sha256":"0070ccf012ac33cae2e03f2798f30ca393b97d5451db7b037cef27ea7ee65373","size_bytes":127719962,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.2-rc.7/downloads/sonny_0.12.2-rc.7_linux_arm64.apk"},{"access":"gitlab_access_required","architecture":"arm64","kind":"installer","name":"sonny_0.12.2-rc.7_linux_arm64.deb","platform":"linux","sha256":"7ec184142af1c8599dce6f4e3f08620f3c2fed14b109b505719c15b914343ced","size_bytes":122533468,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.2-rc.7/downloads/sonny_0.12.2-rc.7_linux_arm64.deb"},{"access":"gitlab_access_required","architecture":"arm64","kind":"installer","name":"sonny_0.12.2-rc.7_linux_arm64.rpm","platform":"linux","sha256":"29b2291a87bb5c33066c58a31cd48a4ccc6b63f8ec2b83024c5f229624158ea3","size_bytes":122572764,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.2-rc.7/downloads/sonny_0.12.2-rc.7_linux_arm64.rpm"},{"access":"gitlab_access_required","architecture":"arm64","kind":"archive","name":"sonny_0.12.2-rc.7_linux_arm64.tar.gz","platform":"linux","sha256":"a61a5242a53994101b269254e5ef43046b6c1861555c485a4f6062bd67183578","size_bytes":71788073,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.2-rc.7/downloads/sonny_0.12.2-rc.7_linux_arm64.tar.gz"},{"access":"gitlab_access_required","architecture":"amd64","kind":"archive","name":"sonny_0.12.2-rc.7_windows_amd64.zip","platform":"windows","sha256":"721f93f72a4c3104b0c2e9b99759a4dab6050f6f249e161182268b269d97e281","size_bytes":74727936,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.2-rc.7/downloads/sonny_0.12.2-rc.7_windows_amd64.zip"},{"access":"gitlab_access_required","architecture":"arm64","kind":"archive","name":"sonny_0.12.2-rc.7_windows_arm64.zip","platform":"windows","sha256":"c2e4826e27ca9353353b1b1f2c380a3dd819d56fb8e7a3da77fd039a98216d6c","size_bytes":67723481,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.2-rc.7/downloads/sonny_0.12.2-rc.7_windows_arm64.zip"},{"access":"gitlab_access_required","architecture":null,"kind":"checksums","name":"checksums.txt","platform":null,"sha256":"d70878cebb67101632edfa46715f09bb73352828be46e4f9d20897740c8a072d","size_bytes":2613,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.2-rc.7/downloads/checksums.txt"},{"access":"gitlab_access_required","architecture":null,"kind":"signature_bundle","name":"checksums.txt.bundle","platform":null,"sha256":"b00aa502f4c5e5d77abc8565b3a4b9878e4f50a5bab328129bfb8e97bccf7a92","size_bytes":9667,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.2-rc.7/downloads/checksums.txt.bundle"},{"access":"gitlab_access_required","architecture":"universal","kind":"sbom","name":"sonny-desktop_0.12.2-rc.7_darwin_universal.sbom.cdx.json","platform":"darwin","sha256":"c6cf14ce5407abeaf54c5b8ef23cdeb87005860034175e06115ad5a7617ab5a3","size_bytes":62750,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.2-rc.7/downloads/sonny-desktop_0.12.2-rc.7_darwin_universal.sbom.cdx.json"},{"access":"gitlab_access_required","architecture":"amd64","kind":"sbom","name":"sonny-desktop_0.12.2-rc.7_linux_amd64.cdx.json","platform":"linux","sha256":"60c698a8eac7c4a11185fd6c38d53a1f77b123ded51aae2bba0a22a21c1fca61","size_bytes":135359,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.2-rc.7/downloads/sonny-desktop_0.12.2-rc.7_linux_amd64.cdx.json"},{"access":"gitlab_access_required","architecture":"amd64","kind":"reproducibility","name":"sonny-desktop_0.12.2-rc.7_linux_amd64.reproducibility.json","platform":"linux","sha256":"cba173b14f847bdb196a9800b0e1bf9a3ad18402d1e33239a1781adcf44171b2","size_bytes":663,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.2-rc.7/downloads/sonny-desktop_0.12.2-rc.7_linux_amd64.reproducibility.json"},{"access":"gitlab_access_required","architecture":"amd64","kind":"sbom","name":"sonny-desktop_0.12.2-rc.7_windows_amd64-installer.sbom.cdx.json","platform":"windows","sha256":"f7a397862f596efb776ca2b526383651e634d96e0ef593ddd93e5829730d4eda","size_bytes":125926,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.2-rc.7/downloads/sonny-desktop_0.12.2-rc.7_windows_amd64-installer.sbom.cdx.json"},{"access":"gitlab_access_required","architecture":"arm64","kind":"sbom","name":"sonny-desktop_0.12.2-rc.7_windows_arm64-installer.sbom.cdx.json","platform":"windows","sha256":"da67df91db19a0a7c60b819b440d426fe3121b62182fe18bd7f107b3c044139c","size_bytes":125926,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.2-rc.7/downloads/sonny-desktop_0.12.2-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* 2e6acf62189ba160d6638e937c0e366cd01be93e feat(runtime): retire settled protocol history and bound re-host memory (SONNY-5014)   \n* 0c2005f78a8e5f5258eb51fc265c6853ed43701e feat(sessions): bind a chat to a trusted workspace from inside the chat (SONNY-4927)   \n* 0009c21bd155b69b1cc3772f262817098189fef0 feat(workmanagement): add portable support layer (SONNY-4812)   \n* 26773894cd6448cfca4dc0f9b4e3cbf86b5a449c feat(workmanagement): ship native portable PM runtime (SONNY-4812)   \n* 6455db9a8a9b788f1fea3822f8081eb73440d4f3 feat(workmanagement): support multiple provider connections (SONNY-4812)   \n### Bug Fixes   \n* a73c287f1ba7037715da5d66b1555adc1befc8d5 fix(a2a): wait out a full mailbox and leave expired inputs alone in the relay (SONNY-5048)   \n* 09943b0b33db1d87ce99f794b9bab4ee7281613b fix(agentmail): purge settled mail early at the retained high-water mark (SONNY-5048)   \n* 62bd6116dd82f8d98f4fd1fa08395ee54cd1f113 fix(agentmail): wake an idle receiver for verified peer mail (SONNY-4946)   \n* 60621554309d3062428791efdaee56cdea41e8e7 fix(agents): tell agent_search callers whether a sub-pack can write files (SONNY-4829)   \n* d68d9576489758e58416cb133b0c8d69124a6f53 fix(app): fold restart recovery reads in bounded journal pages (SONNY-5019)   \n* 2263ea6880c2a08786143e8b4095185cf4f71284 fix(app): retry a failed startup re-host with a bounded backoff (SONNY-4905)   \n* 3938071f5bf1fadde09a138302cca68daac319e2 fix(app): retry a hosted re-host until it succeeds and audit journals in the background (SONNY-5045)   \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* d29e43913880bb5eacc0c2f143d1fdc7e582bfbc fix(catalog): certify tool_search rows that carry MCP server metadata (SONNY-4945)   \n* 86f9d30c66c98fd50af6c18251fbf01afd8fd42d fix(catalog): certify tool_search rows that carry an input schema (SONNY-4941)   \n* f75394983e45ddaee4409b45d6698245103c6bf6 fix(category): never seed or route the template's placeholder sources (SONNY-4640)   \n* 615b38df55912cb45a3cc22c236bad40d31ac50d fix(category): rank sources this host cannot authenticate after credentialed ones (SONNY-1804)   \n* b810d56aaf017d77667110604be47216b840e5be fix(category): retire an unedited starter catalog once a pack registry supplies models (SONNY-4640)   \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* 2f5360f123adaf0e17e944ae8ae68e5ec36b654e fix(ci): give cue-handoff's docs/user run 45m on slow kvm runners (SONNY-4578)   \n* 1a45c696c5a4e1491ffa7e9efd61615e7774b91d fix(ci): give docs/user 45m on slow kvm runners (SONNY-4578)   \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* e036c194cd68b463a82a90529d79391be4e5ea89 fix(ci): give every lint-variants run 85m on slow kvm runners (SONNY-4578)   \n* 28ae01e8f39f3bfa17ca09e298fb8c1c7937648b fix(ci): give go-test shards a 150m package deadline for slower kvm runners (SONNY-4578)   \n* 0b12664068d1f76571e4329fc36e9eee6f3e2c1c fix(ci): give the PostgreSQL control-store shards 100m on slow kvm runners (SONNY-4578)   \n* d4a4e53d02056439671c7150165becbb81b4e681 fix(ci): give the SQLite go-test shards 150m on slow kvm runners (SONNY-4578)   \n* 5b75b1ede3461d724b68712e19badad46f51aa61 fix(ci): install the pinned pnpm with npm on node:26 images (SONNY-4927)   \n* c503ce2c486dff0a90320b3a7db33c7a95f07c15 fix(ci): keep superseding when one prerelease pipeline refuses to cancel (SONNY-4578)   \n* 8f850702e523b96adbc7f6e92314bd35b611afaf fix(ci): keep test caches out of foreign-owned build directories (SONNY-4578)   \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* 54b516c6e02ad58cd196a6bb90bf018be0f70c5b fix(ci): name the prerelease-cancel job's HTTP client (SONNY-4578)   \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* d31b7c56949a89ec0865c2227e01459c24b6c295 fix(ci): upload prerelease desktop packages under tilde-free names (SONNY-4578)   \n* 099fceadd6815c5481132fc794cf687d0d9adb3e fix(ci): warn instead of failing when no build directory suits caches (SONNY-4578)   \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* d28c382bb591f9d9c6160a9de7e8ca7234b2ffd5 fix(compaction): carry findings and the files already read instead of call ids and prompt copies (SONNY-5047)   \n* 833f4328884e9692df146f9b68148d4d9ae110c3 fix(compaction): compact TUI and tab sessions on undeclared windows (SONNY-5047)   \n* 3b25f08f1defe9e872b351b9d9a1a4824c6c05b5 fix(compaction): compact sub-agents on models with no declared window (SONNY-5047)   \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* 0425278e9ee4dbcf2d95bd50959227ede2e44701 fix(control/sqlite): keep host lease renewal and fence reads off the bulk write path (SONNY-1349)   \n* 297f65de26ab7d52960d099d502b67f5ebaf0945 fix(controlauth): grant managed sensitive-read tools under an explicit tenant-policy allow (SONNY-4939)   \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* 49693af39300cf073ce3dcf468f97579b47003f8 fix(desktop): clear the turn activity row when a hosted turn settles (SONNY-3622)   \n* f080ca6e28d97467f083fed07eb645da0f8297dc fix(desktop): expose archived sessions (SONNY-4747)   \n* d97a37ffbda379f2f8ba0e8bf76f5355904fd393 fix(desktop): readable text on danger buttons in the quit dialog (SONNY-2510)   \n* 1d2db49bf30ffb4610bd9c640b0909335c214187 fix(desktop): retain config across legacy snapshots (SONNY-4748)   \n* 172440637b9a5e17dc7042c9147d04ea6efb8888 fix(desktop): retain session approval mode (SONNY-4748)   \n* 9380a355f8094a27dc3d0ad8eaf4ba26e737b5a1 fix(desktop): show live turn activity in the chat composer (SONNY-3622)   \n* 7378fe9d04be108368274c8cc7a68fa1db04bb5c fix(exec): read a mis-scaled exec timeout as milliseconds and tell the model (SONNY-5047)   \n* 0080c821801afa2e77c20fd76dcf269fc99bf2d9 fix(exec): run every exec child with git's optional locks off (SONNY-5047)   \n* 18badb62ed6de86e19ca1346befd9d625ba13f23 fix(hosted): commit the reply of a turn that fails after answering (SONNY-5058)   \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* 962a0cc8649ae4cc11885065d0db5ee6f68ff4ec fix(isolation): hold a busy day in Sonny's default Docker journal (SONNY-4938)   \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* ee2fbd170581774b61844fd971bd1d9c56455512 fix(lint): name the project tier and capability result key (SONNY-4578)   \n* 59545c0544b362483c24058b9e8c5713c2c6f333 fix(mcp): always admit Sonny's own sonny-internal server without an allowlist entry (ENG-5221)   \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* f83d0a2e4eddbc66b0bb69134083a399ea700246 fix(mesh): fail a hosted turn whose output copy falls behind (SONNY-5013)   \n* 6722a449b1a93b0738bcdb2ef5f74af22aa208df fix(mesh): give each session stream its own copy of the output (SONNY-5012)   \n* b6e3a9e3a18212b60f9a3749d106fa4d8bb422ca fix(mesh): give the managed peer-wake tests slow-runner headroom (SONNY-4578)   \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* ba1d20929722a842c2cde1db3ff8fe11d7fe775f fix(mesh): re-host a Desktop session whose lease lapsed with no competing holder (SONNY-4943)   \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* 5f227babc7bcfae3ad5b5346fe584ce445f4e9fa fix(mesh): seal the reply and tool results of sealed turns in their run aggregate (SONNY-5010)   \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* 81e3ecdf8029f4ce9ca8aae0c3e40c5f6fb5e584 fix(meshengine): record a canceled outcome for hosted turns on daemon shutdown (SONNY-5047)   \n* cb324cfc4a354240d8197db065f6f63dd3ebba35 fix(packaging): make fresh-install work and repeat on macOS   \n* 45c980c6d608b73acc3db322abb2b424d7acfc22 fix(packaging): retire supervisors on every endpoint before an install (SONNY-1349)   \n* 36a6e7a9d1f664ec0a1fae83255c07f69cbbc825 fix(packaging): terminate a supervisor the protocol cannot stop on install (SONNY-1349)   \n* 5672d5374cdb1f13268e4d636d0bdf1bb097c843 fix(packload): validate CheckInheritance against llm v0.45.0 (SONNY-4927)   \n* 80aae863a0e10dd7cc3146d42f7b4a6421cf48d4 fix(packload): validate CheckInheritance against llm v0.46.0 (SONNY-4578)   \n* 51d17241e5b3a06632c463656a7fce2b9561c815 fix(packs): stop startup pack fetches blocking startup or dying silently (SONNY-4829)   \n* 1b933b18546a8677f60487f6a307d43a4ba89f8d fix(permission): run workspace-free tools in a chat with no trusted folder (SONNY-4927)   \n* a975de0900a58b5d841f15ddebbc2f3d9c5e6a35 fix(planbaseline): let the recovery report settle journal records (SONNY-4927)   \n* 197c694cdf7552e4639cb9a2cc168c5c0b32ff8b fix(projection): settle session state from an external writer's turn activity (SONNY-4113)   \n* 5fdbc78657f6b59d9d00f6d194ee807e735a1aef fix(projinit): reuse an identical generation on disk and keep the title checkout-independent (SONNY-5047)   \n* 405c6b376e4ccd3ecc046e2e3084f25a7728569c fix(promptcache): send a stable per-conversation prompt_cache_key on OpenAI-wire requests (SONNY-5047)   \n* b195cd335cbd4e8c7cb1ef34e75272ced1fd85c9 fix(provider): send a catalog row's api_model and params from every session binding (SONNY-4829)   \n* d1276c69782952c282db6e773eb5774509f163ab fix(provider): send the catalog row's api_model and params from hosted sessions (SONNY-4829)   \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* b2e59bd77ecc1bf390d221aa730aa1105f30f012 fix(release): publish prerelease desktop deb/rpm assets under the release version's dash (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* b90b95623cd00bd8c997ff9703f74942e33bf3c5 fix(routing): classify a local param refusal as policy and say what to change (SONNY-4640)   \n* d2e1e08190f58c0fa2a8582edbd762aed8f8377f fix(routing): fail over to the next candidate on a capability rejection   \n* d6895598ea9276440f327b6479bde993a56eb745 fix(routing): fit routed primary requests to the dialed target's window (SONNY-5047)   \n* 286670d0ef00e1a9795088ee3f7570bb0c97e00c fix(routing): retry an undelivered provider hang on the same target and bound inactivity, not age (SONNY-2290)   \n* 84b747594c2b203db059a5abaf14ff02a8713734 fix(routing): settle an overrun hold and keep the paid response (SONNY-5047)   \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* 6ffafcdad100650fa99d7ba1e744ef5fb679ee92 fix(runtime): bound how long child reconciliation yields and retries (SONNY-5047)   \n* cac98af30a45411b5252e162937bc21f03af34df fix(runtime): end a blocked goal as a turn waiting for the user, not a failure (SONNY-4927)   \n* 22edc37c29ac4b2e8e6c8484c27d313e77ef8167 fix(runtime): end a workspace-less policy denial with an actionable outcome (SONNY-4927)   \n* 3c36fc32797972bc44cf6ff2ce989854f602a70f fix(runtime): give the goal completion review its own output budget (SONNY-4927)   \n* e4a3e97be474aefc3cfe3991ef8f9883e2d5e8d3 fix(runtime): give turn finalization writes the store's lock-wait budget (SONNY-5047)   \n* 2a3f97315d9a100e5d83a8ab6aeae6426942cbc2 fix(runtime): keep child reconciliation from starving the live turn's writes (SONNY-1349)   \n* 794bb6ef841e24a1b4e228a83fc9e9f68d5e5b74 fix(runtime): let a canceled Sonny git delete its locks before it dies (SONNY-5047)   \n* 68eb18563760f48d8459cfbcc9f708394477cfc4 fix(runtime): relay sonny run children's journal appends through the parent (SONNY-5047)   \n* 304f3130e91e403eb626be99c068121b8aca9550 fix(runtime): remove child worktrees that hold no work under the integration claim (SONNY-5047)   \n* f02542bee68b105d258b856fc3957382570e69ee fix(runtime): retry a reasoning-only review once and keep an unreadable review unverified (SONNY-4927)   \n* cfde30f6350e1bb2d033bace646ed6c1f0be6f57 fix(runtime): settle a relay's conversation with the task it forwards (SONNY-4926)   \n* 0633af9451d0a4a416288e42b8643c65d039c18d fix(runtime): verify a resume from the verified head, not the whole journal (SONNY-5045)   \n* 17af8c9bf4a377e2999e1e448cc8a308af9c7597 fix(runtime): verify a session journal from its verified head (SONNY-4905)   \n* b505fe35b990a6e42627c1ce8281020266e92940 fix(runtime/hostlease): treat slow renewals as unconfirmed, not lost, until the lease expires (SONNY-1349)   \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* 9dcdae9ff0623ac109189addca565bd296830bd8 fix(store): checkpoint and truncate control.db's WAL in the background (SONNY-5047)   \n* 67d64f481b4bc4856bc6c1cfe528868fef6629b0 fix(store): keep host lease renewals from starving under bursty write-lock contention (SONNY-5047)   \n* 1f42dc66b203b5f09054e752253ae66e507ad8fd fix(store): keep the re-host heap test out of race builds (SONNY-4578)   \n* c92e6752feb4111aa8c6b6ad72da3584a368b1fd fix(store): retry transient fixture database drops within a two-minute budget (SONNY-4578)   \n* 8bcc9102b698dda7ac6cc6214ad7643aba8f6308 fix(subagents): ask a read-only child for file contents only when it must create or change files (SONNY-5047)   \n* a3bb185aa840a9d67ea9045569e958dde4beea70 fix(subagents): bound mis-scaled exec timeouts and surface why a child exited (SONNY-5047)   \n* 6e0ce79cd9d332184f38bda1120760f8cfa05663 fix(subagents): stop a delegated child's no-progress loop and deliver parent input mid-turn (SONNY-5047)   \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* b2c68e83d9f82c844022de3e230bb8cec14c9026 fix(target): reset only after the request is read in transport-error tests (SONNY-2283)   \n* fa771e7f5f0326b9e8bcf37387a6136711aa6a91 fix(target): retry a tool-bearing turn with reasoning_effort none when LiteLLM rejects the pair (SONNY-4829)   \n* 836d8101a57c58617058dd4ad25442b2818ba987 fix(test): give expiring store fixtures 15s on slow kvm runners (SONNY-4578)   \n* 032dd83f2255c61f91895c565fa2ee5b33fef5b1 fix(test): give the expiring relay tasks a lifetime a loaded host can answer in (SONNY-4578)   \n* eacf433cf06e45d72d83a5b40fe79022a817c901 fix(test): give the wake expiry fixtures 15s on slow kvm runners (SONNY-4578)   \n* 6f40d81c811c36dcf9194c5e99ce75251b8d588b fix(test): leave the peer fixtures time to confirm a stalled lease renewal (SONNY-4578)   \n* 73231952b83b1e533f33b2b992471e0ade992d96 fix(test): reconcile drifted parity, CLI and mesh peer tests (SONNY-4927)   \n* 1e8d4526b540e3fb9a371e8d95296ebd2aefca24 fix(test): run the resume measurement as a smoke check instead of skipping (SONNY-4578)   \n* 0b0766d26385c838897181c31d027a004a2325de fix(tools): keep MCP out of the work-management model surface (SONNY-4578)   \n* 514580021e63f224dc4b1daa0753f441d7d1675a fix(tools): provision private staging for in-process workspace scopes   \n* a553a740262acadc2d4ebe76f48c24c381f748ee fix(toolscope): declare the agent-process tools with spawn_agent so the tools array never grows mid-session (SONNY-5047)   \n* 886d308f7854db975ef820b5faba2592258aba84 fix(toolscope): keep read_tool_output reachable for restricted packs (SONNY-2338)   \n* 76af4c6e99857be3f093700553b1ccffa0aa818c fix(trace): name ScanError files relative to the scanned root (SONNY-4927)   \n* 4a1278ff9d2c7a27afdfcd77c8791b77d3fa09c2 fix(trace): record the child's own identity on agent_session (SONNY-3592)   \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* afbbd4bfdbd6a39044ed28863501b2c946616916 fix(tui): fence turn activity with the host owner the turn ran under (SONNY-1349)   \n* 13413f10b72ebf71dccf565997e31b7c76225906 fix(tui): keep local turn activity over a stale daemon projection (SONNY-4113)   \n* b01535894bcf59652127579af83a365dd39d67aa fix(tui): record external-writer turn activity in the session stream (SONNY-4113)   \n* f6fb31d953f56055052f69b2b261205fc8339de7 fix(tui): recover a sealed external writer owner on a new lease generation at the next send (SONNY-1349)   \n* 562c57a713b2a83f41cac82a09f075859bd6401f fix(tui): send the TUI's route switches to its daemon session row (SONNY-4113)   \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* e250dc697929d70a99adb7283775aa0ab1035430 fix(ui): keep a session busy while its sub-agents run (SONNY-4113)   \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* 973eef43f49fc90163b3080caef4220253cc478d fix(ui): let an in-flight turn settle before quitting the TUI (SONNY-5047)   \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* 1fd052f4524b5b6713cfc44167cfdfdea65494c9 fix(ui): say \"canceled by user\" only for a cancel the user asked for (SONNY-1349)   \n* c8bd4bcc7c9da0dd3fbeec3f0e5d0b4114abbd64 fix(ui): stop calling a /models selection a pinned model in the routing log (SONNY-3150)   \n* 375bee33a766eeaa8824a9d896cf1bc4b9bb61d9 fix(workmanagement): satisfy repository gates (SONNY-4812)   \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* 1f6d01bc616cb52e5e6d3b9885df23428ef2a6cc perf(routing): store shared route snapshot parts once, content-addressed (SONNY-5047)   \n* c484bc52fd844659cb8dbf3a6bca9a475f7881a7 perf(runtime): store session state in append-only rows and checkpoint periodically (SONNY-5047)   \n* 39a702476392dadaf8a4c54cb619e7a039392ffe perf(runtime): verify the journal once in InspectRecovery (SONNY-5019)   \n* 221227107e94ca2bbeb2a6e3922458a25453b29e perf(store): verify a long runtime journal within the re-host bound (SONNY-4926)   \n### Others   \n* 9222cf675a3fb5306bf98b7d8ac4a6ff026a713a Merge commit '050a08f6d1015697f1588138bc353435761f839b' into codex/direct-merge-197-606215   \n* b9bec7e1e052a4ec49cf56410836bfa896847ae6 Merge remote-tracking branch 'origin/main' into codex/sonny-4812-4815-support   \n* 050a08f6d1015697f1588138bc353435761f839b Merge remote-tracking branch 'origin/main' into codex/sonny-4812-4815-support   \n* 0b290a166ee30a84a1ad20a0c84fc53af9d24ec8 chore(init): refresh the tracked project init state for AGENTS.md (SONNY-5047)   \n* ea083cbc7af02baa20ce7197fb7cb9ed85180783 chore(release): bump to v0.12.2-rc.7 release candidate (SONNY-4578)   \n* 63323505044793078ee6af2e626ac1ea1a648ed8 ci(release): sign Windows desktop builds with Azure Artifact Signing   \n* 371e6385d90528f6d8272e0ea0258c92e198cf25 docs(architecture): record resume verification from the verified head and its security decision (SONNY-5045)   \n* 5f8d4fc887f4c61997c491d59f851e9e65d966b8 docs(assurance): inventory the sonny worktrees prune command (SONNY-5047)   \n* c3015a52f4d6dbda7f020abde06cc7a6c52b696c docs(assurance): re-pin the models list probe after credentialed-first ranking (SONNY-1804)   \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* 8325849e0507c2f8d2c6f1398e0bbfbfbe687f23 docs(validation): record the live recheck of the session stream fan-out fix (SONNY-4652)   \n* 7fc4cc58b4a3a5a3197161a9b4c1668fa4c42d8b refactor(workmanagement): reuse named MCP instances (SONNY-4812)   \n* 8adbbd510ecba209de5263f01cc355ad5c74207e test(a2a): cover the native relay pump's dispatch, retry and answer paths to restore the coverage floor (SONNY-4578)   \n* da34adeb11df4e2aee9a021eeaa30949daa5c095 test(a2a): keep the federation soak's TLS certificate valid for the whole run (SONNY-4647)   \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* b6dc9d41c9a70dc297a682f0ac00ac9e05dfe1a4 test(agents): reproduce agent_search hiding whether a sub-pack can write (SONNY-4829)   \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* f50c3bcb9f1300cb86fc5102fe6e15f6a4a98297 test(category): reproduce template placeholder sources being seeded and routed (SONNY-4640)   \n* 9b56910dd900a6d3a896d08965eb4ec8ab036a51 test(ci): reproduce docs/user timing out on the slower Lab Servers runner (SONNY-4578)   \n* c1378390481af3316744f4da7994abe01a473aa9 test(ci): reproduce publication jobs created for prerelease tags (SONNY-4578)   \n* e63e1a376f5e870eb16a536a9ebcfcc18559364c test(ci): reproduce rc.7 go-test shards hitting the 90m package deadline on Lab Servers (SONNY-4578)   \n* 4e264565dc678d36969e4ee8bc17807fb5b54781 test(ci): reproduce the rc.7 release upload refusing a tilde asset name (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* 8cb794128aa7278f5f9301a2c69ea89fb41edc14 test(codeindex): review the gitenv dependency the worktree runner now uses (SONNY-5047)   \n* cfa924e1845d423584bcd86a9ffa6985db479c67 test(codeindex): widen the store bound for the checkpoint kill driver (SONNY-4927)   \n* cdc6b5eff50c97c143c7c9cb56f310b9e04bd048 test(control/sqlite): reproduce host lease renewal queuing behind bulk writes and child reconciles (SONNY-1349)   \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* ac6424d493d7eea673228be1d64cfa657df55673 test(hosted): an unreadable review delivers the reply instead of failing the turn (SONNY-5058)   \n* eaa8089547627a552b14bec995e9127b76c26d6d test(hosted): expect a denied spawn's notice after the kept reply (SONNY-5058)   \n* 467f5e4d5eeeb37e723a969be0b0e9e2542cc2c4 test(isolation): pin the lineage contract for native and VM realm renewals (SONNY-4933)   \n* afdef9885033d14cf53732e62406aef769efeb05 test(mcp): reproduce Sonny's own sonny-internal server refused by the MCP allowlist (ENG-5221)   \n* 5adcc670c9f7332b14532b4b29fd17c7ca763c93 test(mesh): read portable child mailbox results from the tool_exec envelope (SONNY-4940)   \n* eac54fb6d4f0ea83b4201843dc251753aa54c46e test(mesh): reproduce Desktop sessions interrupted for good when their lease merely expired (SONNY-4943)   \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* d66b99c04b7a7dbf953ba6219a265641379475da test(projection): reproduce an external writer's turns never settling session state (SONNY-4113)   \n* fcff5a9c49c17dc00684af194123cc6807818ec1 test(provider): reproduce hosted session sending the catalog id instead of api_model (SONNY-4829)   \n* acd183b1d138a036037fbd50707eaa46d5851eaf test(provider): reproduce hosted sessions sending the catalog id and dropping row params (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* 2aa05131deca238d7222222bf341b14aef42b8b4 test(release): reproduce rc.7 build-release failing to attach the tilde-named desktop packages (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* 0dee8caa026c4eb7f203f2793847b54cd6bb8174 test(routing): reproduce a local param refusal reported as malformed_response (SONNY-4640)   \n* fd688d431acea03deb5137f7c2e67ce9d6fb6bd6 test(routing): reproduce primary reasoning effort leaking to fallback targets   \n* 2b577e73689dff4d95b0d6d427ab1690fa68a393 test(runtime/hostlease): reproduce one slow renewal permanently sealing a host owner (SONNY-1349)   \n* 9220cd0a84cc70efcf940a4c5699b995c670fe04 test(security): skip the proc-environ probe when the runner holds CAP_SYS_PTRACE (SONNY-4068)   \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* 4e3bd743575fdc2307ca89de01a2281b80472894 test(trace): reproduce agent_session carrying only the parent's identity (SONNY-3592)   \n* e9e73a9dac3fadf92ec71ed60216b6251746c3e8 test(tui): reproduce a sealed external writer owner refusing every later send (SONNY-1349)   \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* 61c51d21b5aad4265489a6bb6c11458d694901ac test(tui): reproduce turn activity refused after host owner recovery (SONNY-1349)   \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-17T14:23:32.165Z","schema":"sonny-release/v1","source_commit":"ea083cbc7af02baa20ce7197fb7cb9ed85180783","tag":"v0.12.2-rc.7","verification":{"checksums_url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.12.2-rc.7/downloads/checksums.txt","historical_archive":{"checked_at":"2026-10-26T04:26:19.082103+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.2-rc.7/downloads/checksums.txt.bundle","signature_verified_by_importer":false},"version":"0.12.2-rc.7"}