{"assets":[{"access":"gitlab_access_required","architecture":"amd64","kind":"archive","name":"sonny-api_0.4.14_linux_amd64.tar.gz","platform":"linux","sha256":"4471518a275e4de9b4cae55e2023f827178001b86e6db1dd068a844bd7d3a288","size_bytes":11063732,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.4.14/downloads/sonny-api_0.4.14_linux_amd64.tar.gz"},{"access":"gitlab_access_required","architecture":"arm64","kind":"archive","name":"sonny-api_0.4.14_linux_arm64.tar.gz","platform":"linux","sha256":"de33ffb3e709c699e6310f8058a8d44c0037e6ee471d8743b4b7fda8c4f938f5","size_bytes":10066697,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.4.14/downloads/sonny-api_0.4.14_linux_arm64.tar.gz"},{"access":"gitlab_access_required","architecture":"amd64","kind":"archive","name":"sonny_0.4.14_darwin_amd64.tar.gz","platform":"darwin","sha256":"d7212dab815772e091cfdcef137d7743654420a88ed6e3f6c671206fe6b88618","size_bytes":19320566,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.4.14/downloads/sonny_0.4.14_darwin_amd64.tar.gz"},{"access":"gitlab_access_required","architecture":"arm64","kind":"archive","name":"sonny_0.4.14_darwin_arm64.tar.gz","platform":"darwin","sha256":"a2d8213f95890472db8a8aafec63ce3b9ae3e3fc1862eb32c6b7840cbb4c701a","size_bytes":18189103,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.4.14/downloads/sonny_0.4.14_darwin_arm64.tar.gz"},{"access":"gitlab_access_required","architecture":"amd64","kind":"installer","name":"sonny_0.4.14_linux_amd64.apk","platform":"linux","sha256":"1c359da538125c73c41c2a92d44739651e433614fdc4f3426c847fd17e6f05cb","size_bytes":32616144,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.4.14/downloads/sonny_0.4.14_linux_amd64.apk"},{"access":"gitlab_access_required","architecture":"amd64","kind":"installer","name":"sonny_0.4.14_linux_amd64.deb","platform":"linux","sha256":"5f34f4508f857482a1c5de06df2854168a0f8ebaa71701417a9c842d6f8a7984","size_bytes":31288478,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.4.14/downloads/sonny_0.4.14_linux_amd64.deb"},{"access":"gitlab_access_required","architecture":"amd64","kind":"installer","name":"sonny_0.4.14_linux_amd64.rpm","platform":"linux","sha256":"a27e47bc12a9dadbc77276f754d6596b69ba8ad7c555c3bcbf2310786c59d75f","size_bytes":31265484,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.4.14/downloads/sonny_0.4.14_linux_amd64.rpm"},{"access":"gitlab_access_required","architecture":"amd64","kind":"archive","name":"sonny_0.4.14_linux_amd64.tar.gz","platform":"linux","sha256":"d91aaeba8bbd9ccd5dca08fcbe58aa6da167c1073095340a355fa97e328facc6","size_bytes":20243294,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.4.14/downloads/sonny_0.4.14_linux_amd64.tar.gz"},{"access":"gitlab_access_required","architecture":"arm64","kind":"installer","name":"sonny_0.4.14_linux_arm64.apk","platform":"linux","sha256":"af643ac8a5494c3b77759f56861c12dfcf39b55af343db44c59f049f3b12fde5","size_bytes":29786497,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.4.14/downloads/sonny_0.4.14_linux_arm64.apk"},{"access":"gitlab_access_required","architecture":"arm64","kind":"installer","name":"sonny_0.4.14_linux_arm64.deb","platform":"linux","sha256":"363002ce89469bdf0efdc17a43460387543db1b695f209e3a93f3c9c57687bc1","size_bytes":28678918,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.4.14/downloads/sonny_0.4.14_linux_arm64.deb"},{"access":"gitlab_access_required","architecture":"arm64","kind":"installer","name":"sonny_0.4.14_linux_arm64.rpm","platform":"linux","sha256":"06b430767258aa93bdf2eec0eb0061c288dbcca12bca2dc3a9e69656d4a67f9a","size_bytes":28578983,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.4.14/downloads/sonny_0.4.14_linux_arm64.rpm"},{"access":"gitlab_access_required","architecture":"arm64","kind":"archive","name":"sonny_0.4.14_linux_arm64.tar.gz","platform":"linux","sha256":"30e99253433f91622e470caac819d87b11d38f912ae3781a73e4151e55295561","size_bytes":18628664,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.4.14/downloads/sonny_0.4.14_linux_arm64.tar.gz"},{"access":"gitlab_access_required","architecture":"amd64","kind":"archive","name":"sonny_0.4.14_windows_amd64.zip","platform":"windows","sha256":"04c40af519a3155a5f845c9343bf91870ee992a41b1269f31d2063f5ee428545","size_bytes":19262178,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.4.14/downloads/sonny_0.4.14_windows_amd64.zip"},{"access":"gitlab_access_required","architecture":"arm64","kind":"archive","name":"sonny_0.4.14_windows_arm64.zip","platform":"windows","sha256":"88fc439f18b2f9471df69074216e4b681a931bd4ecc534fbbf9a47f17d7322fe","size_bytes":17368097,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.4.14/downloads/sonny_0.4.14_windows_arm64.zip"},{"access":"gitlab_access_required","architecture":null,"kind":"checksums","name":"checksums.txt","platform":null,"sha256":"b8b7b3132e345d8cad67f4060101dab1d7b7905f1d35467107252d3f68e7ca97","size_bytes":1362,"url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.4.14/downloads/checksums.txt"}],"channel":"stable","notes_markdown":"## Changelog   \n### Features   \n* 2e2cb609d9a49327b67e5ed065b3fa57b31a7a5a feat(agents): goal-check keeps a worker on track to write its deliverable   \n* 586ea211cd49be5c8462e8b9c5ae120cb1ae8aeb feat(globtool): add **-aware glob replacement; share walk helper   \n* 3c4009058613b2e772a51a87421dbf9167191c96 feat(goalgen): Generate (synthesize+cap) and Deviated (pivot check)   \n* 13c4434bf8f94d55966df6923bafecd4a08b5526 feat(goals): semantic goal verification with an LLM judge + keep-going-until-done loop   \n* ad03c427abb88227b3128327fc0799209ae38ce8 feat(goaltrack): goal-size config + rune-safe EnforceGoalSize   \n* 76c4373c1f30d9d31e94e5ebd3c718bd3f6e9e53 feat(pack): inject workspace context into top-level system prompts   \n* 52e5d3040a9d85b8aaf46d3b24533449a2004754 feat(pack): pack-level goal field with an application default   \n* 97a5f907d36a6f6960cbcabb37dda552b437f9c8 feat(packload): ParseGoalPackPrompt (read goal pack instruction from YAML)   \n* aa6f81e1a7f25fb529ef47c4753bf59e15c6b3c2 feat(packload): parse + stash pack.goal_max_chars   \n* 554612f96bc16ca65099dabc34a8287f6b4849a2 feat(release): enable GitLab releases for Windows/macOS binaries   \n* 37549a581bf351015a03f4fb3e59440a34e52e3d feat(sonny): defer pack selection into the TUI; shared memoized tracer; fast-path default   \n* b1d0057b5a3d483cfbdfdc64e37af94ff20c3c12 feat(sonny): pack picker offers only top-level (primary) packs   \n* d1b78b2aa29e79e9f161743d65478d0a2ba264a2 feat(sonny): restore last session on launch (--new to override)   \n* 05d531951c01ff8bf5b03cbbb0463e625db35693 feat(tools): add **-aware project_files glob replacement   \n* 35bc19ad8a372483d2fb2bb99a24c81032347d0b feat(ui): SessionArgs.SessionID — persistable in-TUI-built sessions   \n* b92b49e5470ed67d00221a0b863f569453a6dc04 feat(ui): add \"terminate all node sessions\" as a third exit option   \n* 7cf6d9ce3df9984f9b78d643761a289e262d08c0 feat(ui): add TracerFactory + memoized getter for deferred tracing   \n* 1661e38af6285acdb3e40c0c4afe72592bb5f799 feat(ui): add queue mutation request messages   \n* d1ad26d06fb4576e885980aca675134c8b88dc59 feat(ui): add terminal-control-sequence sanitizer for tool output   \n* c8bb984919d3757cd88a1cb8ae381b36a8236e18 feat(ui): apply queue remove/reorder/send-now in ui.Update   \n* 919e380cade08e70a1a246baaa40a49786c74f66 feat(ui): auto-generate a session goal in parallel on the first turn   \n* c08bf7e1bd3461f89bf03f93dbd5fbaa0143957a feat(ui): auto-grow chat input box with capped height   \n* 130638ba7c627a321893ec4654b9c7be56afba82 feat(ui): auto-title sessions from first prompt; title in tab label   \n* c70de9f1b1cf72b390ceb6503f37649b28560908 feat(ui): bound non-streaming Call + live \"thinking…\" heartbeat   \n* 5c84463e2ad8a23b4bd8fc151cef7c9696dd45e9 feat(ui): central activity line shows '✓ done' after a turn completes   \n* 9732de41fdd7ef0f4c068b98468a6057116696dd feat(ui): collect write/edit paths and push Changed Files diffs   \n* fb608db330e2fd8b16b4d5b402fc8fc1825de80e feat(ui): distinct '✓ done' sidebar status for completed turns   \n* 1b80de3d4efdc8dc04d4f04c8d89d80b3fa58df3 feat(ui): edit queued message loads into input (guarded)   \n* bd7da5d15e059fc261be93a6025e0db0e702b7ee feat(ui): guard Update/View against a nil active session (boot state)   \n* fd04d40423e00efdc96270aa2a013073fabe8424 feat(ui): hide guardrail-gate rejections from normal rendering   \n* 82ecd5df51660ce833cdba85693c536a90b23e7f feat(ui): pause drain on error, resume via empty-Enter/send-now   \n* f1ebad766a8be85616234e0829ee7d8b555a66b4 feat(ui): paused status when drain stops with queue remaining   \n* 756e30bec0dae03b19d2805e089bbe73f35c361a feat(ui): queue rendering with cursor, highlight, and keyhints   \n* 18103b1f78295f9aeabc78bce49bf9ad5021830d feat(ui): queue-focus mode with keyboard navigation and blur   \n* b54553ac8f8ecdcf3a3d9558ab52f07ccb8cfc07 feat(ui): regenerate the session goal when the user's work deviates   \n* 4adb62c316428775c03992c98d100305973e48cb feat(ui): scroll back through the conversation with keyboard + follow-mode   \n* dc5172deb75a39be6cce5b749e93a26f7cc7f2b6 feat(ui): session manager dialog   \n* 56b42a4efdec0a539c81e360083fa731847bb288 feat(ui): session-info changed-files summary line   \n* c9df1fc7343a47b38bcb628738776d5b1355b340 feat(ui): session-less boot — Init opens pack picker, placeholder view, fast-path default   \n* 33424a6c36ef89e5819dde89058b87c2ba5f623d feat(ui): session-title derivation helper   \n* 5a8a02d41b49767784e173f69e0c7503119f083d feat(ui): sessiondiff — per-file diff stats from git numstat   \n* 72184861755cced61bba6f892f9042f75a0a755e feat(ui): show the sub-pack id in the sidebar sub-agent list   \n* a55f48b4937eab4bf28e7e4e57e23997d03c245e feat(ui): sidebar Changed Files panel   \n* 327b62b37c8e8d288608d4317651c5ec88657da7 feat(ui): sidebar Tools '+N more', leaf-preserving cwd + version truncation   \n* 0e81b4da6edc2fc3c1859e8f118990e80df9e44d feat(ui): sidebar goal line + goalGeneratedMsg   \n* 322710500fb42024891d57e812210565840c14ff feat(ui): type-to-filter in the pack picker (Tab toggles set-default)   \n* fe730deca2110535e0dddfadf1fdb44c840b05e9 feat(ui): wire session manager — Ctrl+S, resume-into-tab, rename/delete/fork, /sessions   \n* 5887c41c5e7fc9e354d5757d956ceafbcb9bb4f4 feat(ui): wire turn-completion signal to the '✓ done' indicators   \n* 3fbf057889074202fd2715cd19bc9e3b02705bc9 feat: Add P0 security infrastructure (rate limiting, validation, audit logging)   \n* a0ec31b37ff62be61074c9a7613e1f07e1aa23f4 feat: implement recommendations from code review   \n### Bug Fixes   \n* 816820dd0a348fb34b0b2d0b7da09d041f564b44 fix(agents): actionable error when orchestrator calls a withheld file/shell tool   \n* c179ebd37a53dfffbe846507a190d4b4e22bd31a fix(agents): complete primary_orch_qwen delegation (trace 019e8ef7)   \n* 3ac4ac1a8e3d1a2c9b48978bfa4d426ec3f549ee fix(agents): gate CLI-first delegation policy to packs that can delegate   \n* 817dc305b955b5b26e983eb42d603470ae0eead2 fix(agents): headless claude streams output (stream-json + --verbose) so it isn't seen as hung   \n* 10dc407836afe61de0634dc8f1ac6907f47d193c fix(agents): one-shot --prompt is a single turn; surface goal-check to stdout   \n* 8ce63b44be06fb2db3f06c8099de4844455d3e71 fix(agents): truthful spawn_agent results + sub-packs run on sonny worker   \n* 3585fb673ad01e0c5781571bb98431970a5d8aa3 fix(agents): wait for in-flight delegated agents before headless exit   \n* bf23c8c3f1d009e560c753c1978a9ea86d4bb676 fix(agents): wire original-task passthrough in interactive TUI sessions   \n* acea4537e5ee29f2dc6af52ac779d44ca47321f8 fix(agents): wire original-task passthrough in the --simple interactive loop   \n* eb1388fcf36352ff011a22f62f4fd8d2f792d074 fix(agents): worker CLIs skip orchestrator scope; longer CLI timeout; spawn hooks; parallel cap   \n* ea18a1dd155056948bcd9041096841d9cb82262a fix(build): TUI logo + --version share the Makefile-stamped version   \n* 0321731607aa531ca84ea2260990753fcda7957e fix(ci): gate placeholder publish job to release tags   \n* cdb04dfe14544f5e35811b29bfd1a3ced9c80544 fix(ci): resolve go-lint and windows-unit-test pipeline failures   \n* fe7c98a68b83f6f96ad8b76cae13241c497ab8a3 fix(ci): unblock tag releases — pin buildx v0.34.1, make create-release advisory   \n* 14452a105b94a9e22a0b41a24b75a7f3fb88f2d1 fix(ci): unset DOCKER_AUTH_CONFIG before buildx push; retry flaky windows tests   \n* 0f366ee7bac10a9d42d63c38c172ce14d9d7f72c fix(cli): bound the headless worker's provider call with a wall-clock timeout   \n* 9ff5ad6ec903af02d0aa3ed24cd57bb43c817fad fix(core): compile pack template and system prompt during activatePack for disk packs   \n* ea3f2e040cccf08bf807f32fecc5806b2ecdb523 fix(dagsched): consolidate repeated discovery-first rejections (trace 019ebe7c)   \n* 0119cad867de59b802fb3bc0150c617dfa93af37 fix(dagsched): discovery-first enforcement gate (Pass 6)   \n* 4f642c1dce8cde3fa2efaecb556f308fda2dff16 fix(deps): bump llm to v0.1.24 for recursive wc ** glob   \n* 0a8d6a59866671ea13f362c6c6608593d89b7128 fix(deps): synapse v0.2.0 — stops flaky websocket read panic; harden CI timing   \n* af766070ea6c74bbf42b5016af4b1b1ccc07c38a fix(goaltrack): enforce deliverable completion for delegating orchestrators   \n* c328e12b56a1bca625c13f9eebe2e4ee1f75aef5 fix(goaltrack): nudge delegating orchestrators out of the read-loop   \n* 9b01601df712e029d0b3ff9608cedd70605bd880 fix(goaltracker): count a deliverable write only when it actually succeeded   \n* 8650552748e86fe29734c17a9f402f3e77146287 fix(goaltracker): tell the model to issue write_file alone (break recon/mutate loop)   \n* e0f36aef8384a9594466d1fffdb97a7c7e9128f4 fix(lint): clear all 71 golangci-lint findings   \n* d33d868a1c7bc40dce44b32c4bbaadad292e2c15 fix(orchestrator): break the re-spawn loop; post-delegation drift → poll   \n* eb378b311652fd5cc3d1e8a9d90771aee6cc85a4 fix(packload): conservative sampling defaults for OpenAI-compat models   \n* b52f64e38e9c37e2adf3bb632ca1ddcc66c0a70a fix(packload): fully skip identical duplicate packs (dedupe profile warnings too)   \n* 4491c539af902f46f561a797b9e04db0b8d0c105 fix(packload): silence benign pack-override warnings (content-aware dedup)   \n* ca7dd63323e04bf46e8b0c179d1ea41d89e39d10 fix(packload): skip non-pack YAML with no pack id   \n* 629f7a9229f711cda7b5af976853f8b30f8a629a fix(packs): dir-loaded packs resolve uri profiles + signature trust + raw YAML   \n* 95cf7aa37a300abfea74d4a86aa8ed2ebe03751b fix(packsources): correct git argument-injection guard   \n* 60b720b0036026752774c9b0e5c913feda998b05 fix(release): force gitlab token so goreleaser survives group-level GITHUB_TOKEN   \n* 4ba1a27441fbc8c4db949ed7c9db810e7671e6ea fix(release): send CI_JOB_TOKEN as JOB-TOKEN so release asset upload works   \n* f56aab869c3041d03005f2b85776581b36ba7a54 fix(shell): bump llm to v0.1.23 so bash timeouts bound child processes   \n* c5e9681d409da6a00b3535e4b2eca3bb469963d0 fix(sierra): correct read_file param table — offset/limit are valid int aliases   \n* 3742640761e6b71bb24540585262a2de81f62491 fix(sierra): discovery-first reads — split read_file from the discovery batch   \n* 1e79e128902936474f6d969353efe19b52e1a180 fix(sierra): document view_lines/head_file/tail_file int params (trace 019ebd33)   \n* 0c63d92a1d16f2b8becd1e7bd9adba613ea3c1bc fix(sierra): extend discovery-first rule to cover bash path-guessing   \n* e151b44b5f5f23d313e053d6750684f125fba316 fix(sierra): present tools in-prompt for Anthropic models (real tool-calling fix)   \n* 0842058c49b9ca145133d48aae9ee6b702977c00 fix(sierra): rewrite assistant tool_calls to `\u003cfunction_calls\u003e` XML for Anthropic (multi-turn)   \n* bb6cd575746c2b406b043c5fc853728458466109 fix(sierra): scope raw recursive shell to exclude .claude/.git/vendor   \n* bb9f9fc179292cbd324a1eba9eb27e5c5f38e2fc fix(sierra): sharpen recon/mutate rule for mega-batches (any recon poisons all writes)   \n* 0e472fdd18bfc5a0b8ff38b2a3790c25ea534176 fix(subagent): resolve spawn_agent crashes and polling loops   \n* d87884b0f15242b842b29fd9a3d8ced8a75cafdf fix(test): unbreak go-test after sierra pack migration; handle getpwnam_r errno not-found   \n* 21e8196f3a96c40ce20e6c0a5aed9852452adb2a fix(tools): git_grep defaults to extended regex + no-match is not an error (trace 019ebe54)   \n* 03ea26557f841541a18545d45278080099a12a98 fix(tools): override broken glob in all registry builds (CLI/TUI/mesh)   \n* d2728ffa442067cfacd30f7b1d5dff333bd83385 fix(tools): override broken project_files glob in both registry builds   \n* df0d944dd9860749506f58fa27764a081c17a044 fix(tools): schema-driven param coercion (sierra stringifies all tool params)   \n* 41d4cb61f097420891d764f45560c80957134c17 fix(tools): self-documenting not-found errors for read_file/list_directory   \n* 7637c52e1affe21074292d084f421057e6cbc892 fix(tools): spawn_agent advertises only the pack's allowed agents   \n* 1a221f2bb7a3d24fad9cbab5a3ff8413028473fe fix(tools): tool-aware not-found hints (list_directory points at root/layout)   \n* ab2d206a3f25d721610cc68e908fb6d4d6eb8c9f fix(turn): break orchestrator supervision-poll loops (trace 019ed0ef)   \n* c2ce5c2caa1e291c75bd2d0c83397c4c0c98bbfb fix(ui): /sessions shows active sessions (kill + kill-all) and resumable previous sessions   \n* efdea943d1f826c686fb8ce7f1907f17d444fd90 fix(ui): Enter in the session manager opens the selected session   \n* 6b9d2812a61e26fd3e565ebb48c2a798815fe0ab fix(ui): Fix session replacement logic, add store.ReplaceHistory, and ensure subagents are properly canceled on UI termination   \n* e419f727c67e44c6a3c2a7a6084b9bae29875462 fix(ui): address review — gate git exec to write/edit results, UTF-8-safe path truncation   \n* b894aba4c7a70b99851f69fb961b012e88d0cfdb fix(ui): bound generic tool-result preview height so it can't fill the screen   \n* 22f5eabac21213c02eb8e91893f868aa348d3715 fix(ui): bound streamed rounds with an inter-event stall timeout   \n* d2f8c4446781adedb585b67331cf02aca3bcbe89 fix(ui): cap chat input height so the input box fits the viewport; pad sidebar panels   \n* 097b8cc695a93c2bc06b230b655f5a379c3ea5ef fix(ui): coerce agent-tool params and show sub-agents from every session   \n* 5e426ae8b053652464b8c3d40d16113afdc0e7a4 fix(ui): collapse repeated identical supervision turns in the transcript   \n* 5ab7b19fd1e7c9e66be81314e6faf07266cf2143 fix(ui): collapse supervision polls inside batches, not just across turns   \n* f687185e23110327e3bc23ad56ea112386849b72 fix(ui): dedupe mesh nodes so a host reported twice shows once   \n* 5e96512e20d04b93a306746f9a12fc825738ddbf fix(ui): delete orphan session row on resume; refuse deleting an open session   \n* 77afb798b65e3920e922de1499c638d32964fe22 fix(ui): don't show \"done\" while a spawned sub-agent is still running   \n* 9d09b4525280cae85c3b16087d7bb011567e05d6 fix(ui): don't show '✓ done' after an errored or cancelled turn   \n* e6a59da3a17d0723cdbec4f0ca82bd5811d569df fix(ui): forward bracketed paste to the input; Ctrl+C clears the box   \n* 8742921e650652e266c9e21a1883240c08a1c725 fix(ui): guard auto-goal flags under goalMu; harden goal-pack discovery   \n* 33c7f0906b7958233904a9edbee258ebe71967d0 fix(ui): keep correct active session when closing an earlier tab; clarify kill hint   \n* 97a20782aeb35724a63f100ae21d6c70560a76f2 fix(ui): muted edit hint, truncate queue header; test send-now + autogrow reset   \n* 2ea199df4444d537775e1be9dddecd7256816a18 fix(ui): place clampToHeight test imports correctly (fixup)   \n* d48b941875feed8a214c5a85fa7b95daf87b825a fix(ui): real pid in agent-poll labels; show running agents instead of false 'done' (cbd61e81)   \n* b4fd73176f0df7aefac930a5edeb8d26b3694346 fix(ui): recover turn-goroutine panics instead of crashing the whole TUI   \n* 629c70daae4cefa31970d09a84a29ff4c7e511e7 fix(ui): redirect stray logs off the TUI; set sidebar session; mesh node-name fallback   \n* 09707ca8ed085deef75bf4bfed654230d7befce3 fix(ui): refresh manager on delete; show current session name first in top bar   \n* 4a1aeed65be08d6eee49bd64eb4e07b0c8c472d2 fix(ui): resume-dedup updates active session so next prompt targets it   \n* e6d2d5fc87a7b48dae6450a386f615e5fddcb862 fix(ui): retry a transient stalled round instead of aborting the turn   \n* 5efc32cbe11d214b325f3172a6692666992b5f99 fix(ui): run the GoalTracker in the TUI turn loop so deliverables get written   \n* 1d49c37bea5e6aa5c8952eefc3b6965c170cb042 fix(ui): sanitize poll-path output and harden OSC stripping (review follow-ups)   \n* 84296bd9eb3c96d55040aa1f17ddbd8d4451d5eb fix(ui): sanitize the live streamed assistant block before render   \n* 22567d81fe08e72fa2eabb97edaf0933cba1b399 fix(ui): sanitize tool output at render dispatch to stop input-box corruption   \n* 7df719ca4d6513550bad861418b5ec858b6cda11 fix(ui): seed GoalTracker via user-goal-only lookup (CLI parity, review fix)   \n* 8f96c21b0a0c21e4aee6bb109f52695ecd01c1dc fix(ui): show sub-agent status and drop finished workers from the list   \n* d607d7eada7c6ccb2e87ab28c153be469cffbedf fix(ui): show the effective pack for generic sub-agents (SONNY_SUBAGENT_PACK)   \n* 134b978fe6585464b022afcac504ac2ad69022a3 fix(ui): sidebar session header, humanized mesh node state, self-node dedup, drop redundant Local chip   \n* b3fc2c70c9922eb040f7801234a95e94dedf8153 fix(ui): size panes to viewport — dialog/tab height, boot fill, dialog clamp, rune-safe trunc   \n* 1d422cc909b4637aff5094131653df3ad2a5c5ba fix(ui): supervision polls don't consume the turn's work-round budget   \n* 4e5b683b9e453fe454624e46c4b2aca4102210e5 fix: add /goal runtime command and fix sub-agent lifecycle hangs   \n* e60f507e78946e7a161228f73e051f4ec5f03c91 fix: address REVIEW.md security and concurrency findings   \n* 73564b99d445818786104978172a37f02a8c3950 fix: address remaining REVIEW.md security and correctness findings   \n* e5dd248a67b1fe0007ddf795af255adc0ccaef73 fix: pass false to packPicker for new sessions   \n* 2cd1fb0d4afaef467b5ead0632fa48685bff9ae1 fix: update current session from pack picker and fully delete terminated sessions   \n### Others   \n* 1112a27f70661d5dacc16e758aedda86637bed3b Add clean publish job to CI pipeline   \n* d0b9d7e6ac561294c78591b659dc64fb8677364e Add integration test for SubprocessManager stream server   \n* 8d8e0ff7ef43fd39e0703957b1f7b102b72fc078 Add placeholder publish job to publish stage with .netrc setup   \n* 2acf4edbe03bdbab5a9936cf639b20db9c13ca67 Fix high-priority issues from REVIEW.md   \n* c119215b05d289e8828be6ba23c833d0a5ac0b6f Implement bi-directional gRPC streaming between orchestrator and subagents   \n* ddc6702fb44c37ef401c77f53571f9a068643bec Merge diag/spawn-instrumentation   \n* 81e73d3b835e10252c3b8142af12eb72edf13446 Merge feat/pack-picker-filter: type-to-filter + top-level-only pack picker   \n* 1438f867fdeb5c5015e7acca6bebb3c4ea016f8b Merge feat/tui-chatbox-queue: chat box auto-grow + editable message queue   \n* d36c8472499fbb539592bab0a855a759ee1ecfcb Merge feat/tui-pack-selection: in-TUI pack selection (Phase 1)   \n* 6f49d1d722d748cf1f21356f3c0a7a7e64ba73a5 Merge feat/tui-session-management: session management (Phase 2)   \n* 7341848bd9a1c7480ec4a596081ba4e4d2f7032e Merge fix/agent-tool-coercion-and-sidebar: agent-tool param coercion, sidebar sub-agents/render-collapse/truncation, mesh dedup, security guard   \n* 7e4be55c66e2feaed95e5ae17a43ddf7641619d0 Merge fix/chat-overflow-sidebar-padding: keep the chat input on-screen; pad sidebar   \n* 3ada59aad99232373f3387e6083a43184053811f Merge fix/claude-headless-streaming   \n* d8e3ef2c56b5cb62d3c4a6455bd8b8e4238a186c Merge fix/cli-first-policy-gate: scope CLI-first policy to delegating packs   \n* e069162a3f0cdbac7f2e287bd539364457627a39 Merge fix/cli-scope-timeout-hooks-parallel   \n* 06589bcc2ca1df25227b5b1faa6603df32682d7e Merge fix/make-install-usrbin-restart-daemon   \n* 20fe33422ba2099338d96a755f4f247a0ccb0740 Merge fix/oneshot-prompt-one-turn: single-turn --prompt + visible goal-check   \n* 33bfb79f640c466a3343716306b2b4a3b28a41e5 Merge fix/orchestrator-unknown-tool-guidance: actionable withheld-tool error   \n* d9f0a1b33bab0a88ab8055327ab801670cdec014 Merge fix/qwen-subpacks-spawn-reporting: truthful spawn results + sub-packs on sonny worker   \n* f016a22202aefdc817b9215666bd566389a7e673 Merge fix/session-manager-and-tabbar: delete refresh, fork, current-session-first top bar   \n* f6e7a7208465b72c27698490026d491c832437b0 Merge fix/sessions-active-kill: /sessions = active-kill + resumable history   \n* 25f881640d77d5e95e6c50df4d105104c7fbb977 Merge fix/simple-loop-passthrough: --simple passthrough + live E2E findings   \n* 17f6620458520923c781932f2a2b48e4b122fe73 Merge fix/tui-log-bleed-sidebar: stop stray logs corrupting the TUI   \n* 453e4c0c6c796012a8eee69d3c6218afce71eeed Merge fix/tui-orchestrator-task-passthrough: TUI original-task passthrough   \n* 0dffde21a814b927150ee4f8583e7072084e5bef Merge fix/tui-sidebar-mesh-render: sidebar/mesh/tab render fixes from trace   \n* 9a003d966d105173dacc780f93d8290183c15755 Merge fix/tui-viewport-sizing: size panes to the viewport   \n* 13f6ed0501b021383d6b3bce373c29a98ae82da7 Merge fix/worker-goal-check: GoalTracker worker drift guard   \n* efc23d1f6d7758a5b44bc4cb760095486e66d6e3 build: make install -\u003e /usr/bin and restart sonny-mesh daemon   \n* ac034d0ee3bacba1c455c9ff73f22d14e50a1c52 chore(packs): remove duplicates of system-prompts and migrate v1 packs to v2   \n* 80103ebe80fb312e960228361b836ce0f5b2b5fe diag(agents): SONNY_SPAWN_DEBUG instrumentation for the TUI empty-output case   \n* a75d3a4dafb66c24cb62b3d6ee0ba95efddfb4ba docs(plan): GoalTracker in the TUI turn loop (trace 019eb7f8)   \n* 88f5fd835a338558543d1b204b8c90853c896c1c docs(plan): TUI tool-output rendering fix plan (trace 019eb6cb)   \n* 69dd6c269172151584dcdea7e027bf5157e9772d docs(plan): glob ** recursion fix (trace 019eb858)   \n* f730b25d4f2836a75a41c958f336840306854cb8 docs(plan): project_files recursive glob fix (trace 019eb820)   \n* cba881178a10437c7deb977414280fbe42dae09d docs(plan): visible goal-completion indicator (trace 019eb759)   \n* 44495bb7a17e10893bb70ea3814a5caa4ceb1d5b docs(plans): add the TUI changed-files panel implementation plan   \n* 530d94c27865abedacc13cc1194643d5d5a749a8 docs(ui): Phase 1 plan — in-TUI pack selection   \n* a1640de0a199d5d1fed2e780cd7e033714d688d7 docs(ui): Phase 2 plan — session management   \n* f78f79760b4b6b6806d000c930f9aaec46f4119f docs(ui): correct stale 0↔1 tab-strip boundary comments   \n* 4d41f235ded1f1a90e3aa5b2ff18be58dad585e8 docs(ui): design spec for chat box rendering + editable queue   \n* ccf12e1cd2d06a77959ed54e6247afb16582ff05 docs(ui): design spec for in-TUI pack selection + session management   \n* 5832586160f3f7107c6aa8d60c286429bd8fcb47 docs(ui): design spec for pack-picker type-to-filter + top-level-only   \n* f0da197bf3583afab86f27171b2e39e2b1b3492d docs(ui): implementation plan for chat box + editable queue   \n* eca14f5a0eaf939a2151fbef9665a2947faa7fa7 docs(ui): plan for pack-picker type-to-filter and top-level-only   \n* 1e2e1ba2416d5d2f7e6613e47836b2f354c3fdb6 docs(ui): restore Run doc comment orphaned by openTUILogFile insertion   \n* da3f641f30c47b97ccdf0a227ab36a420cc5f17a docs(ui): revise Phase 1 plan — split session-id + main wiring (Tasks 4-5)   \n* 039c4d565890f57451ec6c32499d07ab62ca5576 docs+test: record self-review critique; keep privacy bench + git integration test   \n* 8f119d5a808eb4d030888b7055e88c49ce5631e3 refactor(globtool): share project_files override across all registry builds (incl. mesh engine)   \n* 99119df092e1d2cd207dff32790737ec3d45dc34 refactor(goaltrack): extract GoalTracker into a shared package importable by the TUI   \n* 26645346de5f33ba04f0fbbab65794a802baa38a refactor(ui): drop redundant pack-nil guard; widen drainBatch deadline   \n* 27bb56b62cffd78ff28389741c5f533b1aef3d74 style(audit): gofumpt formatting to fix go-lint pipeline failure   \n* fa747b06d4955a33f9e50af22ff44035bb28d5ca test(agentrun): make cooperative-shutdown test load-immune (30s SIGINT grace)   \n* c480a57017042bb9785ee1b50b7d553c435dff2d test(cluster): live MiniMax-M3 cluster integration suite + make test-cluster   \n* e041d354ef46c716fb7788d03ceecb56e1522b08 test(dagsched): pin trace 019ebe8e mega-batch discovery-first consolidation   \n* 25692334b875d12d2c5633517c397c35c7b90d10 test(ui): exercise reorder/send-now in nil-session no-panic test   \n* 4a7fc7a8564924f5aa7f2139199986d24d91f0cb test(ui): pin clampToHeight bottom-anchoring (input stays visible)   \n* 03a8f67315e841e76f86f598e4538c0c8d68a2ff test(ui): reproduce /sessions active-kill + keep-resume redesign   \n* 50bb584022479cc9e00ad30273c1e4fe79e2dcc2 test(ui): reproduce chat-overflow + sidebar padding   \n* 2b6607a528edc0203413e9c60360c128de4ad809 test(ui): reproduce session delete-refresh, fork, single-session name, active-first tab order   \n* 7e096bde705c3bd62776b33a8dfbd5487911b7aa test(ui): reproduce sidebar session header, mesh node state/dup, local-chip bugs   \n* 0c03612592f70495007214d2caff965795999e7f test(ui): reproduce viewport-sizing bugs (overflow, underfill, rune-safe trunc)\n\n","product":"sonny","published_at":"2026-07-03T16:57:32.181Z","schema":"sonny-release/v1","source_commit":"0a8d6a59866671ea13f362c6c6608593d89b7128","tag":"v0.4.14","verification":{"checksums_url":"https://gitlab.com/devnw/codepros/sonny/sonny/-/releases/v0.4.14/downloads/checksums.txt","historical_archive":{"checked_at":"2026-10-26T04:40:13.405178+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_available":false,"signature_bundle_url":null,"signature_verified_by_importer":false},"version":"0.4.14"}