Repository navigation
docs(labs): Qwen3.8-Flash-Next with MTP on one Strix Halo - #1832
Merged
Merged
Conversation
A lab build page for the second-opinion reviewer endpoint the lab stood up on an AMD Ryzen AI Max+ 395: Qwen3.8-Flash-Next at UD-Q3_K_XL with a multi-token prediction head, on Vulkan, from a runtime that is an upstream pin plus one vendored pull request rather than a fork. The numbers are from a run on that box, and the two that matter most are a paired A/B against the same model with speculation removed (about 1.3x on decode, consistent across three runs, with prefill flat between the arms as the control) and a one-hour soak over 167 requests with zero errors, zero degenerate replies and a GTT allocation that was byte-identical in all 54 samples. It also records what went wrong, because that is usually the reusable part: a hostpath model cache whose provisioner helper pod could never tolerate the GPU device taint, which fails silently with no error reaching the user; and the choice of a self-contained MTP head over the shared one, decided by reading the loader source for the borrowing path rather than by trying the recommended head first. Adds the page, a row in the lab index, and the nav entry. The site sidebar in llmkube-web is the other half of publishing it. Signed-off-by: Christopher Maher <chris@mahercode.io>
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Merged
eleboucher
pushed a commit
to eleboucher/homelab
that referenced
this pull request
Sep 16, 2026
…27 ➔ 0.9.28) (#2127) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [ghcr.io/defilantech/charts/llmkube](https://github.com/defilantech/LLMKube) | patch | `0.9.27` → `0.9.28` | --- >⚠️ **Warning** > > Some dependencies could not be looked up. Check the [Dependency Dashboard](issues/567) for more information. --- ### Release Notes <details> <summary>defilantech/LLMKube (ghcr.io/defilantech/charts/llmkube)</summary> ### [`v0.9.28`](https://github.com/defilantech/LLMKube/blob/HEAD/CHANGELOG.md#0928-2026-09-16) [Compare Source](defilantech/LLMKube@v0.9.27...v0.9.28) ##### Features - **runtime:** honor spec.args verbatim when spec.command is overridden ([#​1829](defilantech/LLMKube#1829)) ([f2fcc09](defilantech/LLMKube@f2fcc09)) ##### Bug Fixes - **foreman:** let the coder resolve a rebase conflict instead of failing loud ([#​1840](defilantech/LLMKube#1840)) ([8dfd531](defilantech/LLMKube@8dfd531)) - **router:** bound pool swaps and stop stale deactivate racing a new activation ([#​1838](defilantech/LLMKube#1838)) ([a598ec7](defilantech/LLMKube@a598ec7)) - **router:** rewrite model to served name on IfIdle fall-through ([#​1836](defilantech/LLMKube#1836)) ([8276b50](defilantech/LLMKube@8276b50)) ##### Documentation - **labs:** Qwen3.8-Flash-Next with MTP on one Strix Halo ([#​1832](defilantech/LLMKube#1832)) ([3acb00d](defilantech/LLMKube@3acb00d)) </details> --- ### Configuration 📅 **Schedule**: (in timezone Europe/Paris) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC44My4xIiwidXBkYXRlZEluVmVyIjoiNDQuODMuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUvY29udGFpbmVyIiwidHlwZS9wYXRjaCJdfQ==--> Reviewed-on: https://git.erwanleboucher.dev/eleboucher/homelab/pulls/2127
doonga
pushed a commit
to greyrock-labs/home-ops
that referenced
this pull request
Sep 16, 2026
…mkube (0.9.27 ➔ 0.9.28) (#213) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [ghcr.io/home-operations/charts-mirror/llmkube](https://github.com/defilantech/LLMKube) | patch | `0.9.27` → `0.9.28` | --- ### Release Notes <details> <summary>defilantech/LLMKube (ghcr.io/home-operations/charts-mirror/llmkube)</summary> ### [`v0.9.28`](https://github.com/defilantech/LLMKube/blob/HEAD/CHANGELOG.md#0928-2026-09-16) [Compare Source](defilantech/LLMKube@v0.9.27...v0.9.28) ##### Features - **runtime:** honor spec.args verbatim when spec.command is overridden ([#​1829](defilantech/LLMKube#1829)) ([f2fcc09](defilantech/LLMKube@f2fcc09)) ##### Bug Fixes - **foreman:** let the coder resolve a rebase conflict instead of failing loud ([#​1840](defilantech/LLMKube#1840)) ([8dfd531](defilantech/LLMKube@8dfd531)) - **router:** bound pool swaps and stop stale deactivate racing a new activation ([#​1838](defilantech/LLMKube#1838)) ([a598ec7](defilantech/LLMKube@a598ec7)) - **router:** rewrite model to served name on IfIdle fall-through ([#​1836](defilantech/LLMKube#1836)) ([8276b50](defilantech/LLMKube@8276b50)) ##### Documentation - **labs:** Qwen3.8-Flash-Next with MTP on one Strix Halo ([#​1832](defilantech/LLMKube#1832)) ([3acb00d](defilantech/LLMKube@3acb00d)) </details> --- ### Configuration 📅 **Schedule**: (in timezone America/New_York) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC44NC4wIiwidXBkYXRlZEluVmVyIjoiNDQuODQuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUvY29udGFpbmVyIiwidHlwZS9wYXRjaCJdfQ==--> Reviewed-on: https://git.greyrock.io/todd/home-ops/pulls/213
GiorgioAresu
pushed a commit
to GiorgioAresu/home-ops
that referenced
this pull request
Sep 18, 2026
…mkube (0.9.25 ➔ 0.9.29) (#2103) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [ghcr.io/home-operations/charts-mirror/llmkube](https://github.com/defilantech/LLMKube) | patch | `0.9.25` → `0.9.29` | --- >⚠️ **Warning** > > Some dependencies could not be looked up. Check the [Dependency Dashboard](issues/6) for more information. --- ### Release Notes <details> <summary>defilantech/LLMKube (ghcr.io/home-operations/charts-mirror/llmkube)</summary> ### [`v0.9.29`](https://github.com/defilantech/LLMKube/blob/HEAD/CHANGELOG.md#0929-2026-09-16) [Compare Source](defilantech/LLMKube@v0.9.28...v0.9.29) ##### Bug Fixes - **controller:** keep generated args when a non-CLI runtime overrides command ([#​1843](defilantech/LLMKube#1843)) ([c262265](defilantech/LLMKube@c262265)) ### [`v0.9.28`](https://github.com/defilantech/LLMKube/blob/HEAD/CHANGELOG.md#0928-2026-09-16) [Compare Source](defilantech/LLMKube@v0.9.27...v0.9.28) ##### Features - **runtime:** honor spec.args verbatim when spec.command is overridden ([#​1829](defilantech/LLMKube#1829)) ([f2fcc09](defilantech/LLMKube@f2fcc09)) ##### Bug Fixes - **foreman:** let the coder resolve a rebase conflict instead of failing loud ([#​1840](defilantech/LLMKube#1840)) ([8dfd531](defilantech/LLMKube@8dfd531)) - **router:** bound pool swaps and stop stale deactivate racing a new activation ([#​1838](defilantech/LLMKube#1838)) ([a598ec7](defilantech/LLMKube@a598ec7)) - **router:** rewrite model to served name on IfIdle fall-through ([#​1836](defilantech/LLMKube#1836)) ([8276b50](defilantech/LLMKube@8276b50)) ##### Documentation - **labs:** Qwen3.8-Flash-Next with MTP on one Strix Halo ([#​1832](defilantech/LLMKube#1832)) ([3acb00d](defilantech/LLMKube@3acb00d)) ### [`v0.9.27`](https://github.com/defilantech/LLMKube/blob/HEAD/CHANGELOG.md#0927-2026-09-14) [Compare Source](defilantech/LLMKube@v0.9.25...v0.9.27) ##### Bug Fixes - **deps:** bump google.golang.org/grpc to the CVE-2026-84445 fix ([#​1823](defilantech/LLMKube#1823)) ([cff58b5](defilantech/LLMKube@cff58b5)) </details> --- ### Configuration 📅 **Schedule**: (in timezone Europe/Rome) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC44My4xIiwidXBkYXRlZEluVmVyIjoiNDQuODMuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUvY29udGFpbmVyIiwidHlwZS9wYXRjaCJdfQ==--> Reviewed-on: https://git.aresu.eu/GiorgioAresu/home-ops/pulls/2103
hbjydev
pushed a commit
to hbjydev/phoebe
that referenced
this pull request
Sep 20, 2026
…2 → 0.9.29) (#667) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [ghcr.io/defilantech/charts/llmkube](https://github.com/defilantech/LLMKube) | patch | `0.9.2` → `0.9.29` | --- ### Release Notes <details> <summary>defilantech/LLMKube (ghcr.io/defilantech/charts/llmkube)</summary> ### [`v0.9.29`](https://github.com/defilantech/LLMKube/blob/HEAD/CHANGELOG.md#0929-2026-09-16) [Compare Source](https://github.com/defilantech/LLMKube/compare/v0.9.28...v0.9.29) ##### Bug Fixes - **controller:** keep generated args when a non-CLI runtime overrides command ([#​1843](https://github.com/defilantech/LLMKube/issues/1843)) ([c262265](https://github.com/defilantech/LLMKube/commit/c262265a88a82549565d42788e33f8d38fe55c0c)) ### [`v0.9.28`](https://github.com/defilantech/LLMKube/blob/HEAD/CHANGELOG.md#0928-2026-09-16) [Compare Source](https://github.com/defilantech/LLMKube/compare/v0.9.27...v0.9.28) ##### Features - **runtime:** honor spec.args verbatim when spec.command is overridden ([#​1829](https://github.com/defilantech/LLMKube/issues/1829)) ([f2fcc09](https://github.com/defilantech/LLMKube/commit/f2fcc09a33aa52d26cd75e43d8537dfc388523c0)) ##### Bug Fixes - **foreman:** let the coder resolve a rebase conflict instead of failing loud ([#​1840](https://github.com/defilantech/LLMKube/issues/1840)) ([8dfd531](https://github.com/defilantech/LLMKube/commit/8dfd531f2f4a9ed9971cad15e0333f596ee3c34a)) - **router:** bound pool swaps and stop stale deactivate racing a new activation ([#​1838](https://github.com/defilantech/LLMKube/issues/1838)) ([a598ec7](https://github.com/defilantech/LLMKube/commit/a598ec7740641fe4c74fefa5fad6051a795179c1)) - **router:** rewrite model to served name on IfIdle fall-through ([#​1836](https://github.com/defilantech/LLMKube/issues/1836)) ([8276b50](https://github.com/defilantech/LLMKube/commit/8276b509aa6d6f9ee9c78d7a3b0db54e82558f48)) ##### Documentation - **labs:** Qwen3.8-Flash-Next with MTP on one Strix Halo ([#​1832](https://github.com/defilantech/LLMKube/issues/1832)) ([3acb00d](https://github.com/defilantech/LLMKube/commit/3acb00ddc05a30945b92acbfe67d6cccd469e02c)) ### [`v0.9.27`](https://github.com/defilantech/LLMKube/blob/HEAD/CHANGELOG.md#0927-2026-09-14) [Compare Source](https://github.com/defilantech/LLMKube/compare/v0.9.26...v0.9.27) ##### Bug Fixes - **deps:** bump google.golang.org/grpc to the CVE-2026-84445 fix ([#​1823](https://github.com/defilantech/LLMKube/issues/1823)) ([cff58b5](https://github.com/defilantech/LLMKube/commit/cff58b532de2dabfbd9362abd1c98dc844b02c85)) ### [`v0.9.26`](https://github.com/defilantech/LLMKube/blob/HEAD/CHANGELOG.md#0926-2026-09-14) [Compare Source](https://github.com/defilantech/LLMKube/compare/v0.9.25...v0.9.26) ##### Features - **controller:** metric-gated idle probe for the generic runtime ([#​1802](https://github.com/defilantech/LLMKube/issues/1802)) ([750be58](https://github.com/defilantech/LLMKube/commit/750be58dfa5542ec34a74c82e2fa10d9441ea8a9)) - **controller:** ModelPool reclaim policy returns the slot to spec.default after idle ([#​1796](https://github.com/defilantech/LLMKube/issues/1796)) ([9fd13cd](https://github.com/defilantech/LLMKube/commit/9fd13cd8e16ead745b1fee1a303ca5f442ac029b)) - **foreman:** expose node label on FleetNode metrics for fleet joins ([#​1785](https://github.com/defilantech/LLMKube/issues/1785)) ([5db0f7c](https://github.com/defilantech/LLMKube/commit/5db0f7c2e0a4309aaa15372c6c71e8c61a99e3dd)) - **foreman:** serve Agents from Anthropic-native endpoints ([#​1811](https://github.com/defilantech/LLMKube/issues/1811)) ([a2e2b2e](https://github.com/defilantech/LLMKube/commit/a2e2b2ea9b6976c34cbaf219de3d3aa2fd94cf54)) - **inferenceservice:** add resources.memoryLimit to decouple ceiling from reservation ([#​1764](https://github.com/defilantech/LLMKube/issues/1764)) ([53e5090](https://github.com/defilantech/LLMKube/commit/53e5090f6a097c380f6106e469ea740041ec66e7)) - **model:** resume interrupted single-file downloads via a content-keyed partial ([#​1765](https://github.com/defilantech/LLMKube/issues/1765)) ([#​1807](https://github.com/defilantech/LLMKube/issues/1807)) ([e3384f4](https://github.com/defilantech/LLMKube/commit/e3384f46f1e7ede48d275133c6eacecc92554ddd)) - **router:** mount /v1/embeddings and /v1/rerank on the proxy ([#​1819](https://github.com/defilantech/LLMKube/issues/1819)) ([3af89e9](https://github.com/defilantech/LLMKube/commit/3af89e9cb8e56bd20cea39197d9fa325f59f47b0)) - **router:** opt-in endpoint-level backends for per-request balancing ([#​1820](https://github.com/defilantech/LLMKube/issues/1820)) ([d9349e2](https://github.com/defilantech/LLMKube/commit/d9349e28b7aa9cb94d86625065f30d979404c9b6)) - **router:** poolActivation IfIdle serves the warm member when the incumbent is busy ([#​1787](https://github.com/defilantech/LLMKube/issues/1787)) ([d211a53](https://github.com/defilantech/LLMKube/commit/d211a53c4a00c0a44f832397b91095870ea546d8)) - **samples:** three-Spark ring DeepSeek-V4.1-Flash EXL3 TP3 samples and the multi-node guide section ([#​1816](https://github.com/defilantech/LLMKube/issues/1816)) ([6cb8389](https://github.com/defilantech/LLMKube/commit/6cb8389861b26f9649fd9f3ae7deaae9f92b8eac)) ##### Bug Fixes - **agent:** resolve hf:// model sources on the metal path ([#​1759](https://github.com/defilantech/LLMKube/issues/1759)) ([#​1789](https://github.com/defilantech/LLMKube/issues/1789)) ([0d4879c](https://github.com/defilantech/LLMKube/commit/0d4879c503bf936cd1b2ac3778d86af758de5e4b)) - **controller:** hold a multiNode group while a member is staging ([#​1757](https://github.com/defilantech/LLMKube/issues/1757)) ([#​1806](https://github.com/defilantech/LLMKube/issues/1806)) ([116ba95](https://github.com/defilantech/LLMKube/commit/116ba95cb293b6681f1532a7b7f615b95fbd1dc3)) - **controller:** probe multiNode worker rendezvous, fix readyMembers ([#​1781](https://github.com/defilantech/LLMKube/issues/1781)) ([#​1782](https://github.com/defilantech/LLMKube/issues/1782)) ([97acb8e](https://github.com/defilantech/LLMKube/commit/97acb8eac270af9eac442eac36be2f8e840781a7)) - **controller:** re-resolve a Model when spec.source changes ([#​1767](https://github.com/defilantech/LLMKube/issues/1767)) ([#​1805](https://github.com/defilantech/LLMKube/issues/1805)) ([9149419](https://github.com/defilantech/LLMKube/commit/9149419575e2ac2231fd2dfe09500198bf265434)) - **foreman-chart:** name the FleetNode in the stale-heartbeat alert ([#​1779](https://github.com/defilantech/LLMKube/issues/1779)) ([#​1783](https://github.com/defilantech/LLMKube/issues/1783)) ([d4138d2](https://github.com/defilantech/LLMKube/commit/d4138d2c64fe49fa7b29206939b37c0cd72b98f8)) - **foreman:** anchor coder rail diffs to the resolved upstream base SHA ([#​1803](https://github.com/defilantech/LLMKube/issues/1803)) ([08ce692](https://github.com/defilantech/LLMKube/commit/08ce6927cc6214ff379255ffde436260dcf0d719)) - **foreman:** clear a FleetNode reservation whose AgenticTask was deleted ([#​1791](https://github.com/defilantech/LLMKube/issues/1791)) ([#​1804](https://github.com/defilantech/LLMKube/issues/1804)) ([0cc53c4](https://github.com/defilantech/LLMKube/commit/0cc53c4ae414060d3f11aff3d3738d90b42e99b0)) - **foreman:** drain tasks before agent exit ([#​1799](https://github.com/defilantech/LLMKube/issues/1799)) ([9b22e73](https://github.com/defilantech/LLMKube/commit/9b22e7364c4476c62fb8ec210dad44056a27ecff)) - **foreman:** omit issue references from the reviewer prompt when the payload carries none ([#​1761](https://github.com/defilantech/LLMKube/issues/1761)) ([#​1808](https://github.com/defilantech/LLMKube/issues/1808)) ([36e0e0b](https://github.com/defilantech/LLMKube/commit/36e0e0bb2a49793bab62f42b3d2415c66fcf637b)) - **foreman:** reap orphaned in-cluster FleetNodes when agent pods disappear ([#​1778](https://github.com/defilantech/LLMKube/issues/1778)) ([#​1792](https://github.com/defilantech/LLMKube/issues/1792)) ([9fbee34](https://github.com/defilantech/LLMKube/commit/9fbee34cdaf28237c831175f9eac2479ce8f24d5)) - **foreman:** reject unverified reviewer GO ([#​1801](https://github.com/defilantech/LLMKube/issues/1801)) ([27910ed](https://github.com/defilantech/LLMKube/commit/27910ed9e09ea7b014f2180af03a4d3e8cfccc3c)) - **foreman:** tell a spin from a real max-turns burn ([#​1814](https://github.com/defilantech/LLMKube/issues/1814)) ([3e93fe4](https://github.com/defilantech/LLMKube/commit/3e93fe4e3ec0666240a67ca4e647027d0e982794)) - **foreman:** use the coder's PR description when the PR opens on review GO ([#​1768](https://github.com/defilantech/LLMKube/issues/1768)) ([#​1776](https://github.com/defilantech/LLMKube/issues/1776)) ([bff8344](https://github.com/defilantech/LLMKube/commit/bff8344c766ec35f5e019cb46f652b82e5ff365c)) - **grafana:** separate decode throughput axis ([#​1815](https://github.com/defilantech/LLMKube/issues/1815)) ([bf77989](https://github.com/defilantech/LLMKube/commit/bf77989c94542b7e4ba0e75f211dd489f3c04d9b)) - **model:** re-resolve a Model whose spec changed when no cache key exists ([#​1818](https://github.com/defilantech/LLMKube/issues/1818)) ([81be593](https://github.com/defilantech/LLMKube/commit/81be593387ef3697926b06a3f5c3398d34edab38)) - **rollout:** do not defer a scale-from-zero rollout as PodsBusy ([#​1794](https://github.com/defilantech/LLMKube/issues/1794)) ([062332f](https://github.com/defilantech/LLMKube/commit/062332f67712459936551e16cc0a4221c64411c1)) - **router:** return 503 + Retry-After when every IfIdle backend skips busy ([#​1797](https://github.com/defilantech/LLMKube/issues/1797)) ([396177d](https://github.com/defilantech/LLMKube/commit/396177d7ac8791d7dd9c5c1980af110a61e4bc75)) ##### Documentation - **labs:** reference build for GLM-5.3-Flash EXL3 on two DGX Sparks ([#​1784](https://github.com/defilantech/LLMKube/issues/1784)) ([cbdbb25](https://github.com/defilantech/LLMKube/commit/cbdbb2539ee08d5f84cd415385aa22ed877d8a1c)) ### [`v0.9.25`](https://github.com/defilantech/LLMKube/blob/HEAD/CHANGELOG.md#0925-2026-09-05) [Compare Source](https://github.com/defilantech/LLMKube/compare/v0.9.24...v0.9.25) ##### Features - **foreman:** diff-coverage gate for added lines no test executes ([#​1728](https://github.com/defilantech/LLMKube/issues/1728)) ([9666346](https://github.com/defilantech/LLMKube/commit/96663461f18c9a15cc56ed004fcf53eac4bde2a7)) - **foreman:** enforce reviewer execution runs via a no-test-run rail ([#​1747](https://github.com/defilantech/LLMKube/issues/1747)) ([152811a](https://github.com/defilantech/LLMKube/commit/152811a5b050494bb6e107464d030d8f41b35f0f)) - **foreman:** live turn stream so a coder run can be watched as it happens ([#​1717](https://github.com/defilantech/LLMKube/issues/1717)) ([34b9564](https://github.com/defilantech/LLMKube/commit/34b9564d93e27ca09c48d85ec0a9d7df0efa44ac)) - **foreman:** report missing planned children in Dispatched condition ([#​1743](https://github.com/defilantech/LLMKube/issues/1743)) ([e9ce0ff](https://github.com/defilantech/LLMKube/commit/e9ce0ffd7ad9e9802582e0d4fc1f3a3b14d82fc2)) - **modelrouter:** AgentGateway data plane beside Proxy and Gateway ([#​1711](https://github.com/defilantech/LLMKube/issues/1711)) ([af497b6](https://github.com/defilantech/LLMKube/commit/af497b675196b8e795bc9c4e7d810aa27f20fc5c)) - **model:** send a Hugging Face token on operator-driven downloads ([#​1750](https://github.com/defilantech/LLMKube/issues/1750)) ([#​1758](https://github.com/defilantech/LLMKube/issues/1758)) ([5ef4fa0](https://github.com/defilantech/LLMKube/commit/5ef4fa03f8c65998d1ed5b3841fd86c849b8b02e)) - multi-node inference groups (spec.multiNode) for vLLM ([#​1746](https://github.com/defilantech/LLMKube/issues/1746)) ([b56c080](https://github.com/defilantech/LLMKube/commit/b56c08058084ba00876eb001096abdadd80e34a2)) - **observability:** pin the llama.cpp metric contract ([#​1186](https://github.com/defilantech/LLMKube/issues/1186)) ([#​1754](https://github.com/defilantech/LLMKube/issues/1754)) ([da6dda9](https://github.com/defilantech/LLMKube/commit/da6dda9dabbc96edd7401bc221be57b08af25185)) ##### Bug Fixes - **agent:** sign s3:// model fetches on the metal path ([#​1709](https://github.com/defilantech/LLMKube/issues/1709)) ([3f30570](https://github.com/defilantech/LLMKube/commit/3f305703d6a5027e57efd9fedf19ab7c7ac9dc35)) - **agent:** skip comment-only hunks in the per-hunk mutation pass ([#​1742](https://github.com/defilantech/LLMKube/issues/1742)) ([82c0ffd](https://github.com/defilantech/LLMKube/commit/82c0ffd60bdcdc570b862dc748197ea177adebde)) - **controller:** bound inference container memory with a limit, and validate the quantity at admission ([#​1726](https://github.com/defilantech/LLMKube/issues/1726)) ([e4a3669](https://github.com/defilantech/LLMKube/commit/e4a3669afe3fcc4be46c9d4de8368a62216432bc)) - **controller:** make zero-findings scope-overlap demotion inert ([#​1737](https://github.com/defilantech/LLMKube/issues/1737)) ([8a44529](https://github.com/defilantech/LLMKube/commit/8a445297be8ac7f43bf306750a7fd3b0ca5ec080)) - **foreman:** bound the dependency wait when TimeoutSeconds is unset ([#​1736](https://github.com/defilantech/LLMKube/issues/1736)) ([db98633](https://github.com/defilantech/LLMKube/commit/db986338a9c468e908f2e6f6a2a670d34804bc7d)) - **foreman:** clear Dispatched condition on terminal Workloads ([#​1741](https://github.com/defilantech/LLMKube/issues/1741)) ([9786684](https://github.com/defilantech/LLMKube/commit/9786684f612dc645cf9e797ab64fbdfc1e327f03)) - **foreman:** pass upstreamURL to the coder post-push envtest gate ([#​1732](https://github.com/defilantech/LLMKube/issues/1732)) ([8d47306](https://github.com/defilantech/LLMKube/commit/8d47306b5ea98021c11c5a5b2ca2885f38fd70ae)) - **foreman:** preserve the workspace when the agent loop ends unsuccessfully ([#​1716](https://github.com/defilantech/LLMKube/issues/1716)) ([d17a7dd](https://github.com/defilantech/LLMKube/commit/d17a7dd8bbd9a1f52f0974c702cc544bb6d1e46f)) - **foreman:** report gate Job DeadlineExceeded as GATE-ERROR and make the gate deadline settable ([#​1748](https://github.com/defilantech/LLMKube/issues/1748)) ([#​1751](https://github.com/defilantech/LLMKube/issues/1751)) ([ef69b4c](https://github.com/defilantech/LLMKube/commit/ef69b4c09f08f648d21590d6367cce75c746e3aa)) - **foreman:** report rejected submissions on max-turns INCOMPLETE ([#​1714](https://github.com/defilantech/LLMKube/issues/1714)) ([e4f88e9](https://github.com/defilantech/LLMKube/commit/e4f88e9885ffe9152b3d6647c9c62aed5571e155)) - **foreman:** report the packages the diff-coverage gate could not measure ([#​1734](https://github.com/defilantech/LLMKube/issues/1734)) ([15ba740](https://github.com/defilantech/LLMKube/commit/15ba7408b3f3b4f4c9e138c42acba565209565b9)) - **foreman:** validate resolvedBy before ALREADY-RESOLVED skips verification ([#​1730](https://github.com/defilantech/LLMKube/issues/1730)) ([2b35d71](https://github.com/defilantech/LLMKube/commit/2b35d71454058abe91cdf5a22c5a42e6890ebceb)) ##### Documentation - **labs:** link the build page absolutely so the site prerender resolves it ([#​1756](https://github.com/defilantech/LLMKube/issues/1756)) ([5543aa9](https://github.com/defilantech/LLMKube/commit/5543aa986fd6e0522d6d3c64cd15d426972a3d3b)) - **labs:** reference build for DeepSeek V4 Flash Vision on two DGX Sparks ([#​1755](https://github.com/defilantech/LLMKube/issues/1755)) ([e80fd7d](https://github.com/defilantech/LLMKube/commit/e80fd7da01b5b69a9ce5bec41c99781f44376b9c)) ### [`v0.9.24`](https://github.com/defilantech/LLMKube/blob/HEAD/CHANGELOG.md#0924-2026-08-29) [Compare Source](https://github.com/defilantech/LLMKube/compare/v0.9.23...v0.9.24) ##### Features - **foreman:** make draft PR creation configurable per Agent ([#​1707](https://github.com/defilantech/LLMKube/issues/1707)) ([b8c040c](https://github.com/defilantech/LLMKube/commit/b8c040c55f971663f7850bf38b30b05efa5b3131)) ### [`v0.9.23`](https://github.com/defilantech/LLMKube/blob/HEAD/CHANGELOG.md#0923-2026-08-28) [Compare Source](https://github.com/defilantech/LLMKube/compare/v0.9.22...v0.9.23) ##### Features - **foreman:** per-hunk mutation coverage for envtest packages ([#​1705](https://github.com/defilantech/LLMKube/issues/1705)) ([45a5bce](https://github.com/defilantech/LLMKube/commit/45a5bce2e489ab60bda618b0a594a07b84d19892)) - **foreman:** publish Job-mode supervision capacity to FleetNode status ([#​1700](https://github.com/defilantech/LLMKube/issues/1700)) ([c8078bb](https://github.com/defilantech/LLMKube/commit/c8078bb8bccbc0931b299ff0d2675b34a7d8c81b)) - **githubpr:** open Foreman PRs as drafts and keep the reviewer's body ([#​1703](https://github.com/defilantech/LLMKube/issues/1703)) ([4cb10b9](https://github.com/defilantech/LLMKube/commit/4cb10b9e66c7c5074eae6a2d53141bc293e29e9d)) ##### Bug Fixes - **foreman:** bound and surface a missing-dependency wait ([#​1698](https://github.com/defilantech/LLMKube/issues/1698)) ([badfe7b](https://github.com/defilantech/LLMKube/commit/badfe7bed4582df365c6707254b0fb2d66bf1407)) - **foreman:** refresh the PR body after a fix cycle ([#​1704](https://github.com/defilantech/LLMKube/issues/1704)) ([a6bf02a](https://github.com/defilantech/LLMKube/commit/a6bf02add610f872f1fd01cd2006419751cd9e9a)) ##### Documentation - **spark:** correct the containerd config path that bricks a node ([#​1702](https://github.com/defilantech/LLMKube/issues/1702)) ([3be2bbb](https://github.com/defilantech/LLMKube/commit/3be2bbb7799b1d3f982ae373df8ee94b52f45d2f)) ### [`v0.9.22`](https://github.com/defilantech/LLMKube/blob/HEAD/CHANGELOG.md#0922-2026-08-28) [Compare Source](https://github.com/defilantech/LLMKube/compare/v0.9.21...v0.9.22) ##### Features - **chart:** alert when an engine is up but not serving ([#​1624](https://github.com/defilantech/LLMKube/issues/1624)) ([35142e5](https://github.com/defilantech/LLMKube/commit/35142e5367a57a47a5fdd577c3484699dd1411d4)) ##### Bug Fixes - **docker:** upgrade base packages so the foreman-agent image passes Trivy ([#​1696](https://github.com/defilantech/LLMKube/issues/1696)) ([7a0dba5](https://github.com/defilantech/LLMKube/commit/7a0dba562689a03be6f335b5057c03387ca19b6f)) ### [`v0.9.21`](https://github.com/defilantech/LLMKube/blob/HEAD/CHANGELOG.md#0921-2026-08-28) [Compare Source](https://github.com/defilantech/LLMKube/compare/v0.9.20...v0.9.21) ##### Features - **chart:** expose foreman-agent rollout strategy and grace period per pool ([#​1647](https://github.com/defilantech/LLMKube/issues/1647)) ([f26150c](https://github.com/defilantech/LLMKube/commit/f26150cd8a4baf8102f86df04775c92e44196fac)) - **cli:** llmkube foreman run, the unattended orchestration loop ([#​1653](https://github.com/defilantech/LLMKube/issues/1653)) ([c4b0a64](https://github.com/defilantech/LLMKube/commit/c4b0a648ab7b6c5bee6804f35c7bc75267198c01)) - **foreman:** add a rollup bucket for cross-stage contradictions ([#​1690](https://github.com/defilantech/LLMKube/issues/1690)) ([cf9f794](https://github.com/defilantech/LLMKube/commit/cf9f7942ae051aa2e66620495c448e32f6cd540a)) - **foreman:** block dependents of a contradicting dependency ([#​1695](https://github.com/defilantech/LLMKube/issues/1695)) ([9be57c2](https://github.com/defilantech/LLMKube/commit/9be57c2ff55a6f16e30d43f840c7c41c36925d7f)) - **foreman:** record claim and facts alongside cross-stage contradictions ([#​1682](https://github.com/defilantech/LLMKube/issues/1682)) ([0a35fc4](https://github.com/defilantech/LLMKube/commit/0a35fc4996e8b36f1e21c3709dc339e369319fbb)) - **foreman:** require per-clause coverage of an issue's stated behaviour ([#​1671](https://github.com/defilantech/LLMKube/issues/1671)) ([7c6368e](https://github.com/defilantech/LLMKube/commit/7c6368e3037f2e220db670412d686833e4e503d8)) - **foreman:** wire the coder stage into cross-stage contradictions (Rule 1) ([#​1680](https://github.com/defilantech/LLMKube/issues/1680)) ([c166662](https://github.com/defilantech/LLMKube/commit/c166662def70f3137e66214da83d51760d4a7682)) - **foreman:** wire the cross-stage contradiction detector into the reviewer path ([#​1675](https://github.com/defilantech/LLMKube/issues/1675)) ([a73f6fa](https://github.com/defilantech/LLMKube/commit/a73f6fabd918a582ca0d3c7c5a18f82032ef3c0c)) - **foreman:** wire the gate stage into cross-stage contradictions (Rule 4) ([#​1681](https://github.com/defilantech/LLMKube/issues/1681)) ([178ad61](https://github.com/defilantech/LLMKube/commit/178ad616dfe6a3627481db19d4205252b9a5877e)) - **helm:** support cert-manager for the webhook serving cert ([#​1646](https://github.com/defilantech/LLMKube/issues/1646)) ([fe77c9c](https://github.com/defilantech/LLMKube/commit/fe77c9c47fc71898c54a459039bff9c038460060)) ##### Bug Fixes - **controller:** populate status.acceleration by matching the current llama.cpp log format and reading the log head ([#​1677](https://github.com/defilantech/LLMKube/issues/1677)) ([3825420](https://github.com/defilantech/LLMKube/commit/38254203c80fd8dc630af6c10b936261e5d72bf8)) - **foreman-agent:** keep claiming in pollOnce until a slot is full ([#​1665](https://github.com/defilantech/LLMKube/issues/1665)) ([691f464](https://github.com/defilantech/LLMKube/commit/691f46472afdae102bed00d824aad12d1395ec26)) - **foreman:** do not open a fix iteration for an empty demoted NO-GO ([#​1641](https://github.com/defilantech/LLMKube/issues/1641)) ([4ac7e6b](https://github.com/defilantech/LLMKube/commit/4ac7e6bee39349d493496c7f599228cf104df9c6)) - **foreman:** fill the transcript budget when truncating ([#​1673](https://github.com/defilantech/LLMKube/issues/1673)) ([76ce407](https://github.com/defilantech/LLMKube/commit/76ce40756e5cf275c884be531a2fd66e16cb366b)) - **foreman:** make the ALREADY-RESOLVED cascade-skip transitive ([#​1689](https://github.com/defilantech/LLMKube/issues/1689)) ([6f9a10c](https://github.com/defilantech/LLMKube/commit/6f9a10c2f930269330864af4e8e770f896f48efe)) - **foreman:** make verdictClaimed first-writer-wins so demotion provenance survives a second rail ([#​1683](https://github.com/defilantech/LLMKube/issues/1683)) ([0e01114](https://github.com/defilantech/LLMKube/commit/0e011142b8e7eed0403110738eb570dc47fa5294)) - **foreman:** round-robin Job-mode placement across eligible nodes ([#​1669](https://github.com/defilantech/LLMKube/issues/1669)) ([e7a6b73](https://github.com/defilantech/LLMKube/commit/e7a6b7375ed173e28113d2116949467648f89d83)) - **foreman:** wire the deleted-reference rail into the coder GO path ([#​1666](https://github.com/defilantech/LLMKube/issues/1666)) ([fe8057a](https://github.com/defilantech/LLMKube/commit/fe8057adb0cd168af2b304bedfe0b9e0673c7b57)) - **foreman:** wire the pre-flight staleness check into coder dispatch ([#​1670](https://github.com/defilantech/LLMKube/issues/1670)) ([436a918](https://github.com/defilantech/LLMKube/commit/436a918b1d98aa077b7fedf704c9c183b6602718)) - **foreman:** wire the reviewer diff gate so an ungrounded GO is recorded ([#​1668](https://github.com/defilantech/LLMKube/issues/1668)) ([a9b048c](https://github.com/defilantech/LLMKube/commit/a9b048c7daf7b7ed15dd353cb18cce458f9e5606)) - **prefetch:** honour InferenceService modelCache.claimName ([#​1691](https://github.com/defilantech/LLMKube/issues/1691)) ([0201e29](https://github.com/defilantech/LLMKube/commit/0201e292f5828b07e45ef80dca3057effc7de583)) - **test:** make the archival failure-injection tests uid-independent ([#​1658](https://github.com/defilantech/LLMKube/issues/1658)) ([2acaa15](https://github.com/defilantech/LLMKube/commit/2acaa153454f2d92c24d606c71a5980b6e55f59f)) ### [`v0.9.20`](https://github.com/defilantech/LLMKube/blob/HEAD/CHANGELOG.md#0920-2026-08-24) [Compare Source](https://github.com/defilantech/LLMKube/compare/v0.9.19...v0.9.20) ##### Features - **foreman:** opt-in archival of task audit records and transcripts ([#​1655](https://github.com/defilantech/LLMKube/issues/1655)) ([c577133](https://github.com/defilantech/LLMKube/commit/c577133c7f1b5d49ddf4d1f7c936dfd5c72595f0)) - **foreman:** report the Kubernetes node on FleetNode.status, not as identity ([#​1649](https://github.com/defilantech/LLMKube/issues/1649)) ([7563e8a](https://github.com/defilantech/LLMKube/commit/7563e8a8165c5997a854a21ee31345459b66ceeb)) ##### Bug Fixes - **controller:** carry Model tolerations onto the prefetch Job ([#​1622](https://github.com/defilantech/LLMKube/issues/1622)) ([d0db838](https://github.com/defilantech/LLMKube/commit/d0db838a6ca442a1adf70b64cc023eb18eb86e48)) - **controller:** clear the controller's own schedulingStatus once a service is Ready ([#​1633](https://github.com/defilantech/LLMKube/issues/1633)) ([315f34d](https://github.com/defilantech/LLMKube/commit/315f34db6387da888bbcc4d65eabf75b35e44376)) - Empty payload.repo silently defeats the upstream-base fetch: task branches cut from a stale fork HEAD ([#​1625](https://github.com/defilantech/LLMKube/issues/1625)) ([#​1626](https://github.com/defilantech/LLMKube/issues/1626)) ([27a015a](https://github.com/defilantech/LLMKube/commit/27a015a279863392bbac33dc06e46fa4a1087d39)) - **foreman:** carry the in-pod result extras on every Job-mode branch ([#​1657](https://github.com/defilantech/LLMKube/issues/1657)) ([d1ce51c](https://github.com/defilantech/LLMKube/commit/d1ce51c589ab0b3f45d273df29b98483ea1db675)) - **foreman:** free the agent's in-process slot while a Job-mode task runs ([#​1635](https://github.com/defilantech/LLMKube/issues/1635)) ([0d64fbb](https://github.com/defilantech/LLMKube/commit/0d64fbb5b823ec9c530cdb010a871d4c76707188)) - **foreman:** gate the make-invoked CI checks, and pin them against the workflows ([#​1642](https://github.com/defilantech/LLMKube/issues/1642)) ([4e7ab7b](https://github.com/defilantech/LLMKube/commit/4e7ab7b74313c6bf9064d8a0d939a8338b0c8f3f)) - **foreman:** make the CustomResourceState config produce usable metrics ([#​1650](https://github.com/defilantech/LLMKube/issues/1650)) ([1620443](https://github.com/defilantech/LLMKube/commit/1620443af3560926801718b33ddf3592dac1e690)) ##### Documentation - add ROCm host-retune runbook for >64GB on Strix Halo ([#​1387](https://github.com/defilantech/LLMKube/issues/1387)) ([fff5e59](https://github.com/defilantech/LLMKube/commit/fff5e59cf1735aeaa0b4d932505fdaa23a07bfd5)) - fix guide instructions that fail against the shipped API ([#​1629](https://github.com/defilantech/LLMKube/issues/1629)) ([fba0bf4](https://github.com/defilantech/LLMKube/commit/fba0bf4d8cdeab13d521f0fa32da8272a2c4a0d1)) - **proposals:** foreman run, an unattended orchestration loop ([#​1652](https://github.com/defilantech/LLMKube/issues/1652)) ([df57f49](https://github.com/defilantech/LLMKube/commit/df57f490c1f4aa01ccb5dbf6e8dbf238aaee3a18)) - reframe the multi-GPU guide from an Issue [#​2](https://github.com/defilantech/LLMKube/issues/2) validation plan into a deployment guide ([#​1631](https://github.com/defilantech/LLMKube/issues/1631)) ([907ac8d](https://github.com/defilantech/LLMKube/commit/907ac8d8ee5bef229562ec5340ecdcb9e0576f0d)) - **runbook:** correct the metal-agent memory-pressure runbook against pkg/agent ([#​1630](https://github.com/defilantech/LLMKube/issues/1630)) ([f665674](https://github.com/defilantech/LLMKube/commit/f6656741234aa605d3f891598663df142a815171)) - serving one model across two DGX Sparks via llama.cpp RPC ([#​1620](https://github.com/defilantech/LLMKube/issues/1620)) ([7eaf04b](https://github.com/defilantech/LLMKube/commit/7eaf04b46b2aa5ea4f7939f2751df412128be86b)) ### [`v0.9.19`](https://github.com/defilantech/LLMKube/blob/HEAD/CHANGELOG.md#0919-2026-08-20) [Compare Source](https://github.com/defilantech/LLMKube/compare/v0.9.18...v0.9.19) ##### Features - **foreman:** content-based test-coverage vouch for feature-named test files ([#​1614](https://github.com/defilantech/LLMKube/issues/1614)) ([477a599](https://github.com/defilantech/LLMKube/commit/477a599b06f3196438a055ab419a7661846587ba)) - **foreman:** deterministic cross-stage contradiction detection ([#​1589](https://github.com/defilantech/LLMKube/issues/1589)) ([0bd102a](https://github.com/defilantech/LLMKube/commit/0bd102a95514d33066b016f5edae278d3986257b)) - **foreman:** execution-verification section in the reviewer rubric ([#​1617](https://github.com/defilantech/LLMKube/issues/1617)) ([03702a0](https://github.com/defilantech/LLMKube/commit/03702a0a54858ad21fcd398adceee4786f9b8564)) - **foreman:** extract behaviour clauses from an issue body ([#​1590](https://github.com/defilantech/LLMKube/issues/1590)) ([041fab7](https://github.com/defilantech/LLMKube/commit/041fab76c7901589c86f96c586b275c7291d8b7a)) - **foreman:** implement the Agent Validated condition and stamp under-configured runs ([#​1611](https://github.com/defilantech/LLMKube/issues/1611)) ([61e65a4](https://github.com/defilantech/LLMKube/commit/61e65a4d3435256a3605614fc2ab6cfbe9d9bd3b)) - **foreman:** let GateProfile declare a test-layout convention ([#​1607](https://github.com/defilantech/LLMKube/issues/1607)) ([16b42ce](https://github.com/defilantech/LLMKube/commit/16b42ce0ffd8f88cb907e0fde79118a8c754ad64)) - **foreman:** MCP call aggregation for the foreman.audit.v1 record ([#​1591](https://github.com/defilantech/LLMKube/issues/1591)) ([7b8e489](https://github.com/defilantech/LLMKube/commit/7b8e489763490824967a7b9327de020204606b7c)) - **foreman:** rail detecting a GO from a reviewer that never diffed ([#​1588](https://github.com/defilantech/LLMKube/issues/1588)) ([376fa58](https://github.com/defilantech/LLMKube/commit/376fa5869015d1dbc90998064a6574c63ad6f94a)) - **foreman:** test-layout mapping for parallel test trees ([#​1592](https://github.com/defilantech/LLMKube/issues/1592)) ([df7f719](https://github.com/defilantech/LLMKube/commit/df7f719b468919da69a68f1f3e7bf3d005d6b708)) - **foreman:** vouch modified test files on their added lines ([#​1619](https://github.com/defilantech/LLMKube/issues/1619)) ([dd6087b](https://github.com/defilantech/LLMKube/commit/dd6087bb117495b3d3dd6f0d485c10e99ad9d3e0)) ##### Bug Fixes - **chart:** grant the inference operator batch/jobs and pods/log, and stop the RBAC guard covering one operator with the other's grants ([#​1595](https://github.com/defilantech/LLMKube/issues/1595)) ([bb8d505](https://github.com/defilantech/LLMKube/commit/bb8d5050c663b0538a137bceb06b1238814866e4)) - **controller:** bound the prefetch Job read and stop one Model stalling the rest ([#​1598](https://github.com/defilantech/LLMKube/issues/1598)) ([82f4e47](https://github.com/defilantech/LLMKube/commit/82f4e47081da1fa85c14879dd6f5037f27dc62f5)) - **foreman:** decide bash writes on the command word, not a substring ([#​1587](https://github.com/defilantech/LLMKube/issues/1587)) ([9a0aaba](https://github.com/defilantech/LLMKube/commit/9a0aaba99e56148e13905db24c3aa9699a226de7)) - **foreman:** record why a reviewer rail could not run ([#​1606](https://github.com/defilantech/LLMKube/issues/1606)) ([135ba88](https://github.com/defilantech/LLMKube/commit/135ba88f5bbf36745c68561e67979110a2b052f2)) - **foreman:** skip the NoSystemPrompt floor for deterministic agents ([#​1615](https://github.com/defilantech/LLMKube/issues/1615)) ([3c99ac0](https://github.com/defilantech/LLMKube/commit/3c99ac04d0bf3770ac7028a996f2db9e7e24adff)) ##### Documentation - **foreman:** document gateProfile.testLayout ([#​1612](https://github.com/defilantech/LLMKube/issues/1612)) ([4466e6f](https://github.com/defilantech/LLMKube/commit/4466e6fd87d60c991703e603ecac5d4d3125196e)) ### [`v0.9.18`](https://github.com/defilantech/LLMKube/blob/HEAD/CHANGELOG.md#0918-2026-08-18) [Compare Source](https://github.com/defilantech/LLMKube/compare/v0.9.17...v0.9.18) ##### Features - **controller:** architecture-aware runtime placement ([#​1544](https://github.com/defilantech/LLMKube/issues/1544)) ([6694d0b](https://github.com/defilantech/LLMKube/commit/6694d0b010e64834e884a81f85412f7082ec9adf)) - **controller:** speculativeDecoding.draftModel for companion-file drafters ([#​1564](https://github.com/defilantech/LLMKube/issues/1564)) ([a8526a8](https://github.com/defilantech/LLMKube/commit/a8526a848ba018e38bbdbcbca86286a1b79c5b85)) - **controller:** surface actual GPU offload in InferenceService status ([#​1566](https://github.com/defilantech/LLMKube/issues/1566)) ([a2335c6](https://github.com/defilantech/LLMKube/commit/a2335c60929f62b97d5d63943a04c13b68a319ea)) - draft-model speculative decoding on InferenceService ([#​1533](https://github.com/defilantech/LLMKube/issues/1533)) ([81881d6](https://github.com/defilantech/LLMKube/commit/81881d6813563bd3210089d6dabb3e642869468b)) - **foreman:** add optional Agent.spec.maxConcurrentTasks to bound in-flight tasks ([#​1546](https://github.com/defilantech/LLMKube/issues/1546)) ([0afa9c9](https://github.com/defilantech/LLMKube/commit/0afa9c9d6e7e402330ce3fc39aacfe363142ea3d)) - **foreman:** flag issue references removed by a diff ([#​1574](https://github.com/defilantech/LLMKube/issues/1574)) ([0f2d30d](https://github.com/defilantech/LLMKube/commit/0f2d30d6d40b2c04cb695d2513a1ed03ee2c5718)) - **foreman:** honour the target repository's PR template when opening a PR ([#​1562](https://github.com/defilantech/LLMKube/issues/1562)) ([5d09e07](https://github.com/defilantech/LLMKube/commit/5d09e078a1bf44866c73c7672cd1e28df5a74ec3)) - **foreman:** mutation-check decision logic (revert the fix, require a test to fail) ([#​1578](https://github.com/defilantech/LLMKube/issues/1578)) ([07754f1](https://github.com/defilantech/LLMKube/commit/07754f1c9bf9805eeb2f05e6a376a46551e527db)) - **foreman:** operator-emitted task outcome counters ([#​1563](https://github.com/defilantech/LLMKube/issues/1563)) ([2386ad8](https://github.com/defilantech/LLMKube/commit/2386ad8a80641bbab202e57839b3cab127a30f88)) - **foreman:** pre-flight staleness detection for already-addressed issues ([#​1577](https://github.com/defilantech/LLMKube/issues/1577)) ([cc9d594](https://github.com/defilantech/LLMKube/commit/cc9d59405454b7845b476413b6375a70c15c4ef6)) ##### Bug Fixes - **controller:** AND the arch requirement into nodeAffinity instead of ORing a new term ([#​1584](https://github.com/defilantech/LLMKube/issues/1584)) ([4e5e5d4](https://github.com/defilantech/LLMKube/commit/4e5e5d42ea573cb9602f67a1793e0ec74f556ea4)) - **controller:** do not roll over in-flight work when idleness is undetermined ([#​1543](https://github.com/defilantech/LLMKube/issues/1543)) ([daba4e1](https://github.com/defilantech/LLMKube/commit/daba4e11c1c6b21b2aac5bc473c84de91b908f1a)) - **controller:** expose --dri-render-gid through the chart and stop defaulting it to the video group ([#​1586](https://github.com/defilantech/LLMKube/issues/1586)) ([66029e7](https://github.com/defilantech/LLMKube/commit/66029e7b959537a8a2d28cef19515b2dfaabb7e1)) - **controller:** inject the DRI render GID into Vulkan pod supplementalGroups ([#​1569](https://github.com/defilantech/LLMKube/issues/1569)) ([79f8f08](https://github.com/defilantech/LLMKube/commit/79f8f0846c06f72e8873acabb562f12be2ed2bfd)) - **controller:** let draft-mtp accept an optional draftModelRef ([#​1547](https://github.com/defilantech/LLMKube/issues/1547)) ([98fd3a0](https://github.com/defilantech/LLMKube/commit/98fd3a0f886f9f9a85dd6d156c1071fc68e116f1)) - **controller:** let ModelTransferHealthy recover after a retried download succeeds ([#​1539](https://github.com/defilantech/LLMKube/issues/1539)) ([978f5ee](https://github.com/defilantech/LLMKube/commit/978f5ee7b7875c3b9ed7c9dbdd3f6ef2fced32b6)) - **deps:** bump the Go toolchain to 1.26.6 for two stdlib advisories ([#​1534](https://github.com/defilantech/LLMKube/issues/1534)) ([627ca93](https://github.com/defilantech/LLMKube/commit/627ca936dad7db35db8c5419a0d318f8530fe5ee)) - **foreman:** do not let an unavailable diff disable the grounded-finding rail ([#​1576](https://github.com/defilantech/LLMKube/issues/1576)) ([812186b](https://github.com/defilantech/LLMKube/commit/812186b5fca0a1eec906adaa749b1a34514d0a7d)) - **foreman:** do not reserve a FleetNode for Job-mode AgenticTasks ([#​1558](https://github.com/defilantech/LLMKube/issues/1558)) ([55a1434](https://github.com/defilantech/LLMKube/commit/55a1434408be54e29b71886a6953498ad24b1bb1)) - **foreman:** honour Workload spec.repo for gate, push and PR, not just clone ([#​1545](https://github.com/defilantech/LLMKube/issues/1545)) ([d949e3f](https://github.com/defilantech/LLMKube/commit/d949e3f0f82e4d4eb3487eb2c9aab20cd0784ab1)) - **foreman:** let the reviewer author an uncapped PR body via extra.prBody ([#​1575](https://github.com/defilantech/LLMKube/issues/1575)) ([827cad8](https://github.com/defilantech/LLMKube/commit/827cad8c32ac05552307eb6b866c60686df1e4fd)) - **foreman:** map test files to their modules in scope-overlap, and dedupe issue file refs ([#​1573](https://github.com/defilantech/LLMKube/issues/1573)) ([fa02f25](https://github.com/defilantech/LLMKube/commit/fa02f25cb04b3091eeea0c066d8ee5457a194c26)) - **foreman:** mount the agent's own gate-cache PVC, and honour an empty name ([#​1557](https://github.com/defilantech/LLMKube/issues/1557)) ([b09c3ad](https://github.com/defilantech/LLMKube/commit/b09c3ad12677d0dfbc56a2ba83a2bf21592d8ed2)) - **foreman:** remap unsupported emptiness claims to ERROR instead of NO-GO ([#​1565](https://github.com/defilantech/LLMKube/issues/1565)) ([ba7e3f9](https://github.com/defilantech/LLMKube/commit/ba7e3f9de9aef81fff9dbefc10ce5e5a93b966a9)) - **foreman:** restore the coder grounding rail's MCP prefix after the [#​1527](https://github.com/defilantech/LLMKube/issues/1527) rename ([#​1582](https://github.com/defilantech/LLMKube/issues/1582)) ([1b289e6](https://github.com/defilantech/LLMKube/commit/1b289e63cff796749326491bda8c6ac2e45b1078)) - **foreman:** stop Job-mode AgenticTasks orphaning their previous Job on re-dispatch ([#​1556](https://github.com/defilantech/LLMKube/issues/1556)) ([32d1d65](https://github.com/defilantech/LLMKube/commit/32d1d6524592e58ddf445ba704db54f7f874b1fa)) - namespace MCP tools with \_\_ so names match the OAI pattern ([#​1527](https://github.com/defilantech/LLMKube/issues/1527)) ([1cd05d7](https://github.com/defilantech/LLMKube/commit/1cd05d7c074ddbe71171558468e78d3652ac2f1f)) - omit the issue reference when a task has no issue number ([#​1532](https://github.com/defilantech/LLMKube/issues/1532)) ([f881ac3](https://github.com/defilantech/LLMKube/commit/f881ac310cc30c5044bab0470f34931c3d1f2ffc)) - stop discarding a coder's diff when submit\_result omits a message ([#​1529](https://github.com/defilantech/LLMKube/issues/1529)) ([3cd01ac](https://github.com/defilantech/LLMKube/commit/3cd01ac70f2b0fb3a6634b026248c0032eecb2c9)) ##### Documentation - make spec.files discoverable from spec.source for multi-artifact models ([#​1540](https://github.com/defilantech/LLMKube/issues/1540)) ([25777da](https://github.com/defilantech/LLMKube/commit/25777da1d00bce365d596fdde39b9eaa4e3da260)) ### [`v0.9.17`](https://github.com/defilantech/LLMKube/blob/HEAD/CHANGELOG.md#0917-2026-08-13) [Compare Source](https://github.com/defilantech/LLMKube/compare/v0.9.16...v0.9.17) ##### Features - **chart:** foreman.crs.namespace — render the CRS ConfigMap where kube-state-metrics can mount it ([#​1492](https://github.com/defilantech/LLMKube/issues/1492)) ([5bb8c19](https://github.com/defilantech/LLMKube/commit/5bb8c19c577dce55c502fb2f990b3648bd24a5e9)) - fetch\_pull\_request: include check-run output (title/summary/text) for failed runs ([#​1481](https://github.com/defilantech/LLMKube/issues/1481)) ([#​1505](https://github.com/defilantech/LLMKube/issues/1505)) ([e323f32](https://github.com/defilantech/LLMKube/commit/e323f32d18556db91e255ce61123d48b79c077d6)) ##### Bug Fixes - **chart:** heartbeat alert uses time(), not the nonexistent time\_seconds() ([#​1494](https://github.com/defilantech/LLMKube/issues/1494)) ([bf8c1a0](https://github.com/defilantech/LLMKube/commit/bf8c1a034b0209aad030905e2591941a209d63b5)) - **chart:** scope agent Deployment selectors to their pool ([#​1524](https://github.com/defilantech/LLMKube/issues/1524)) ([0da2a9e](https://github.com/defilantech/LLMKube/commit/0da2a9ee6f4b4205d6316850c988f4f92cdba1d4)) - detect the scheduler's other wording for an unusable cache volume ([#​1513](https://github.com/defilantech/LLMKube/issues/1513)) ([64ee9d7](https://github.com/defilantech/LLMKube/commit/64ee9d7788dc8fe4c17b229c461ac3f7ddae1562)) - EnsurePR treats a closed unmerged PR as satisfied — retried work ends with no PR ([#​1476](https://github.com/defilantech/LLMKube/issues/1476)) ([#​1507](https://github.com/defilantech/LLMKube/issues/1507)) ([82baff8](https://github.com/defilantech/LLMKube/commit/82baff88362cac188c3b4c68654734eaffa5e9b3)) - extract path refs the extension gate was discarding ([#​1516](https://github.com/defilantech/LLMKube/issues/1516)) ([7166920](https://github.com/defilantech/LLMKube/commit/71669204cddcff8f0dd05671c5593403c8e02410)) - **foreman:** bound edit-free resets earned from bash-shaped writes ([#​1521](https://github.com/defilantech/LLMKube/issues/1521)) ([41a2829](https://github.com/defilantech/LLMKube/commit/41a282920345b0a5792d68ce6362d5d739b1f15a)) - **foreman:** bound grep match lines so one minified file cannot end a run ([#​1488](https://github.com/defilantech/LLMKube/issues/1488)) ([952f8af](https://github.com/defilantech/LLMKube/commit/952f8af1fb2eee2f8918383a40f148c32db82ae0)) - **foreman:** one tool list, so a tool cannot ship unusable again ([#​1486](https://github.com/defilantech/LLMKube/issues/1486)) ([e77d7cf](https://github.com/defilantech/LLMKube/commit/e77d7cf3435ac485bd4424b2f6c6c0df80585043)) - **foreman:** reviewers review the change, not the base branch (+ cross-project remote guard) ([#​1490](https://github.com/defilantech/LLMKube/issues/1490)) ([0f3fa83](https://github.com/defilantech/LLMKube/commit/0f3fa83f5ce8bdb89d0deb176844de7dc9346195)) - **foreman:** route all three consumers through the provider seams ([#​1510](https://github.com/defilantech/LLMKube/issues/1510)) ([79448fc](https://github.com/defilantech/LLMKube/commit/79448fca464c3377fc89685db8850b28b5d82a4d)) - **modelpool:** guard the nil HTTPClient that panics every swap ([#​1485](https://github.com/defilantech/LLMKube/issues/1485)) ([dc3fa50](https://github.com/defilantech/LLMKube/commit/dc3fa50faa2d5bc8eb38b11e5c6548acffbb86f5)) - name the cause when a model cache PV can never bind ([#​1511](https://github.com/defilantech/LLMKube/issues/1511)) ([772c99d](https://github.com/defilantech/LLMKube/commit/772c99db80580d2b5a3db56536c600ce21dd70c2)) - normalizeContainers strips operator-owned SecurityContext fields before drift comparison ([#​1462](https://github.com/defilantech/LLMKube/issues/1462)) ([#​1506](https://github.com/defilantech/LLMKube/issues/1506)) ([8d291ca](https://github.com/defilantech/LLMKube/commit/8d291ca2ca36fbcb0d06ef587c30dce88b86b96f)) - **operator:** apply nodeSelector and tolerations to non-GPU services ([#​1504](https://github.com/defilantech/LLMKube/issues/1504)) ([dc3bac3](https://github.com/defilantech/LLMKube/commit/dc3bac3a7476dbe05fae8d90daab30655a880eee)) - populate status.size and status.gguf for s3:// model sources ([#​1522](https://github.com/defilantech/LLMKube/issues/1522)) ([69a76fd](https://github.com/defilantech/LLMKube/commit/69a76fdd9ff4d10c3e7c563382b12c2bd633bf05)) - **router-proxy:** honour 0 as disable, pin the metrics port in tests, refresh the dashboard catalog ([#​1519](https://github.com/defilantech/LLMKube/issues/1519)) ([774e0b9](https://github.com/defilantech/LLMKube/commit/774e0b95865668fc422192575c4fc7b19279e90c)) - **router-proxy:** reject colliding listener addresses at startup ([#​1518](https://github.com/defilantech/LLMKube/issues/1518)) ([fc49a5d](https://github.com/defilantech/LLMKube/commit/fc49a5d2c3c0deed376e5fe62d3ef625f8eb07c3)) - surface the unbindable-cache diagnosis instead of dropping it ([#​1512](https://github.com/defilantech/LLMKube/issues/1512)) ([03c0f17](https://github.com/defilantech/LLMKube/commit/03c0f179dd507cecb9a707f440ddbf007815904a)) ##### Documentation - **foreman:** refresh model compatibility from what the fleet has proven ([#​1483](https://github.com/defilantech/LLMKube/issues/1483)) ([8ccdbee](https://github.com/defilantech/LLMKube/commit/8ccdbee27c8cf2cfc1352e62094e5aa3d48ddec6)) - how to recognise a cache volume the provisioner never stamped ([#​1514](https://github.com/defilantech/LLMKube/issues/1514)) ([12d59c2](https://github.com/defilantech/LLMKube/commit/12d59c2f62629ee636ae83bd6853e378aca5abae)) - **operations:** document ModelPool in the GPU-sharing guide ([#​1508](https://github.com/defilantech/LLMKube/issues/1508)) ([c2c3a84](https://github.com/defilantech/LLMKube/commit/c2c3a8406434b133e9855b00e17d40793af7cc6a)) ### [`v0.9.16`](https://github.com/defilantech/LLMKube/blob/HEAD/CHANGELOG.md#0916-2026-08-10) [Compare Source](https://github.com/defilantech/LLMKube/compare/v0.9.15...v0.9.16) ##### Features - **chart:** PodMonitor for router-proxy metrics ([#​1473](https://github.com/defilantech/LLMKube/issues/1473)) ([fd7c640](https://github.com/defilantech/LLMKube/commit/fd7c6404fe30b2da37170c43ab04e047488a0640)) - **foreman:** advisory two-site parity signal in the coder gate ([#​1456](https://github.com/defilantech/LLMKube/issues/1456)) ([944f90d](https://github.com/defilantech/LLMKube/commit/944f90d85aafa89a3e5302c38eda025901968a49)) - **foreman:** image input, so a vision-capable coder can see what it rendered ([#​1471](https://github.com/defilantech/LLMKube/issues/1471)) ([6c122be](https://github.com/defilantech/LLMKube/commit/6c122bea5d77f1ffca975890c9d1ae6faa461321)) - **foreman:** read-only fetch\_pull\_request tool ([#​1458](https://github.com/defilantech/LLMKube/issues/1458)) ([7f4910b](https://github.com/defilantech/LLMKube/commit/7f4910b83f6dafcfcf5a1b49b04de49f3afe7db7)) - **modelpool:** cross-pod sticky model swapping on a shared GPU slot ([#​1393](https://github.com/defilantech/LLMKube/issues/1393)) ([ba7777d](https://github.com/defilantech/LLMKube/commit/ba7777d42d1b8e03f3ddea8e8cdf0f11ffd3ae8d)) - **router-proxy:** expose llmkube\_router\_\* metrics on a dedicated listener ([#​1457](https://github.com/defilantech/LLMKube/issues/1457)) ([ca3730d](https://github.com/defilantech/LLMKube/commit/ca3730d1453edd451a235fec369bb32aa359af2d)) ##### Bug Fixes - **controller:** make the custom CA additive to the system trust store ([#​1469](https://github.com/defilantech/LLMKube/issues/1469)) ([d490059](https://github.com/defilantech/LLMKube/commit/d490059f8b64113fd70284f43b07373ba52e56ab)) - **controller:** stage files and mmproj from an s3:// object store ([#​1475](https://github.com/defilantech/LLMKube/issues/1475)) ([769b60d](https://github.com/defilantech/LLMKube/commit/769b60d22dd3772f6d86a0c6ff5a40a007a079a8)) - **dashboard:** AMD dashboard vendor hygiene — remove runtime-agnostic llama.cpp panels, standardize on DS\_PROMETHEUS ([#​1446](https://github.com/defilantech/LLMKube/issues/1446)) ([c6c0670](https://github.com/defilantech/LLMKube/commit/c6c06706f8df0f12c4c48ea2d2eebe9137a4f63e)) - **dashboard:** retarget amd-gpu-observability off amdgpu\_\*-only queries ([#​1474](https://github.com/defilantech/LLMKube/issues/1474)) ([a02e8e8](https://github.com/defilantech/LLMKube/commit/a02e8e84ae0f22c914ae5f5793db4879dca46312)) ### [`v0.9.15`](https://github.com/defilantech/LLMKube/blob/HEAD/CHANGELOG.md#0915-2026-08-08) [Compare Source](https://github.com/defilantech/LLMKube/compare/v0.9.14...v0.9.15) ##### Features - **chart:** expose --ca-cert-configmap as controllerManager.caCertConfigMap ([#​1440](https://github.com/defilantech/LLMKube/issues/1440)) ([606c7f9](https://github.com/defilantech/LLMKube/commit/606c7f9393a412e9553e93ff3fde862bded1773d)) - **controller:** diagnose CUDA driver/runtime mismatch from crashed pods ([#​1425](https://github.com/defilantech/LLMKube/issues/1425)) ([06670f9](https://github.com/defilantech/LLMKube/commit/06670f9905664ad9ae0f7f40a04139da9cf9c1cc)) - **controller:** diagnose model-transfer failures from init containers ([#​1463](https://github.com/defilantech/LLMKube/issues/1463)) ([a092de3](https://github.com/defilantech/LLMKube/commit/a092de318b6cf959af6cec44c194e5272ccb6b88)) - **foreman:** advisory gate for command-string changes tested only by shape ([#​1421](https://github.com/defilantech/LLMKube/issues/1421)) ([b580e18](https://github.com/defilantech/LLMKube/commit/b580e18803f3ed6d1660c5d81e324290f6b795df)) - **inferenceservice:** add spec.modelCache.persistence for an ephemeral model cache ([#​1452](https://github.com/defilantech/LLMKube/issues/1452)) ([c4ae7ee](https://github.com/defilantech/LLMKube/commit/c4ae7ee6e5ffd3f7bdd9463891e3f959b57a0f5c)) ##### Bug Fixes - **api:** reject unservable speculativeDecoding type draft at admission ([#​1455](https://github.com/defilantech/LLMKube/issues/1455)) ([5d3ab73](https://github.com/defilantech/LLMKube/commit/5d3ab73b3396046aedfd0f26a262de807164c534)) - **chart:** default the router-proxy image tag to the chart appVersion ([#​1431](https://github.com/defilantech/LLMKube/issues/1431)) ([3e07b81](https://github.com/defilantech/LLMKube/commit/3e07b814f07bb954acfb446419d5e9ecbcb2496c)) - **controller:** clean up orphaned .tmp files from interrupted model transfers ([#​1459](https://github.com/defilantech/LLMKube/issues/1459)) ([2f453d6](https://github.com/defilantech/LLMKube/commit/2f453d621279c787fa3592020901120e93ed36d6)) - **controller:** emit draft-simple for speculativeDecoding type draft ([#​1417](https://github.com/defilantech/LLMKube/issues/1417)) ([ccccd02](https://github.com/defilantech/LLMKube/commit/ccccd0203f0b0e3a76732f52aeb2b7bbf458a772)) - **controller:** publish model downloads atomically so an interrupted transfer is never cached ([#​1432](https://github.com/defilantech/LLMKube/issues/1432)) ([206b6c3](https://github.com/defilantech/LLMKube/commit/206b6c3c56d98b03377242ec86f000d9a9315803)) - **controller:** route s3:// model sources to the runtime-resolved path ([#​1450](https://github.com/defilantech/LLMKube/issues/1450)) ([f054960](https://github.com/defilantech/LLMKube/commit/f0549605b029783fb2095d205a990d69c0bd6a7c)) - **controller:** set TerminationMessagePolicy on generated init containers ([#​1460](https://github.com/defilantech/LLMKube/issues/1460)) ([bc732b3](https://github.com/defilantech/LLMKube/commit/bc732b3afd5ce931360efd1ce4d625ae61975643)) - **dashboard:** select the latency success series by le!="" so llmkube-slo error-budget panels render for any threshold ([#​1444](https://github.com/defilantech/LLMKube/issues/1444)) ([d381112](https://github.com/defilantech/LLMKube/commit/d381112c63930d92f305d7bd942b97205266d2be)) - **foreman:** add chart validation to the coder gate, and install helm so it can run ([#​1442](https://github.com/defilantech/LLMKube/issues/1442)) ([b26c6ae](https://github.com/defilantech/LLMKube/commit/b26c6ae11a26b9e5567524680621ef8e63714a24)) - **foreman:** detect assertion-value churn in the test-dilution gate ([#​1416](https://github.com/defilantech/LLMKube/issues/1416)) ([b53df14](https://github.com/defilantech/LLMKube/commit/b53df14d95652647c10b0f32e4b7425efb69435c)) - **foreman:** preserve the coder Job name's uniqueness suffix on truncation ([#​1412](https://github.com/defilantech/LLMKube/issues/1412)) ([929f0a8](https://github.com/defilantech/LLMKube/commit/929f0a8795e8ad3070b3717e130aea9d8a88e4a0)) - ground the PR body summary against the branch diff ([#​1448](https://github.com/defilantech/LLMKube/issues/1448)) ([6f24527](https://github.com/defilantech/LLMKube/commit/6f2452743f0f30168a3f00de8db25f63d36170e5)) - **metrics:** correct the AMD doc's metric contract and guard prose docs ([#​1420](https://github.com/defilantech/LLMKube/issues/1420)) ([36631a9](https://github.com/defilantech/LLMKube/commit/36631a914a412caa13bf9a7741028cfdc10c9f74)) - **runtime:** disable the llama.cpp prompt cache for embedding and rerank ([#​1413](https://github.com/defilantech/LLMKube/issues/1413)) ([407de59](https://github.com/defilantech/LLMKube/commit/407de59a8efa5cef8eb060d83ac5faab37bb4bcc)) ##### Documentation - **b200:** record GB10 partial-proxy reachability and why NVLink/MIG/sm\_100 stay gated ([#​1422](https://github.com/defilantech/LLMKube/issues/1422)) ([e6ab2e9](https://github.com/defilantech/LLMKube/commit/e6ab2e9d0d8220add604230ffb527ff7b1660a88)) - **chart:** dashboard datasources examples must use the datasource UID, not its display name ([#​1433](https://github.com/defilantech/LLMKube/issues/1433)) ([a57d499](https://github.com/defilantech/LLMKube/commit/a57d499fcbc3261feccb31148f6fb3796a751db0)) ### [`v0.9.14`](https://github.com/defilantech/LLMKube/blob/HEAD/CHANGELOG.md#0914-2026-08-05) [Compare Source](https://github.com/defilantech/LLMKube/compare/v0.9.13...v0.9.14) ##### Features - **api:** add mxfp4 quantization and correct Blackwell runtime reality ([#​1381](https://github.com/defilantech/LLMKube/issues/1381)) ([382af35](https://github.com/defilantech/LLMKube/commit/382af35ffee1d600b6bc05db0fb580607241a4d1)) - **controller:** opt-in Prometheus scrape annotations on inference pods ([#​1366](https://github.com/defilantech/LLMKube/issues/1366)) ([2e8f8a8](https://github.com/defilantech/LLMKube/commit/2e8f8a8c8c122db46b67ede960152f0d80ff8590)) - **dashboards:** add a llama.cpp runtime dashboard ([#​1371](https://github.com/defilantech/LLMKube/issues/1371)) ([5fedb88](https://github.com/defilantech/LLMKube/commit/5fedb88e6bbba1e7a4d827c13538a362debeb382)) - **dashboards:** add an operator-health row to llmkube-inference ([#​1369](https://github.com/defilantech/LLMKube/issues/1369)) ([ee5145b](https://github.com/defilantech/LLMKube/commit/ee5145bc6bb57b7fb2dc686d3fccd09fa15d8ed6)) - **dashboards:** SGLang queue-wait, stage latency, token mix and HiCache L3 panels ([#​1370](https://github.com/defilantech/LLMKube/issues/1370)) ([d1a57ca](https://github.com/defilantech/LLMKube/commit/d1a57cab65abbeea23dd841da768360e01128e05)) - **observability:** AMD GPU tier — amdgpu-exporter DaemonSet, metric contract, dashboard reconcile ([#​1354](https://github.com/defilantech/LLMKube/issues/1354)) ([a9e560f](https://github.com/defilantech/LLMKube/commit/a9e560f4fbd989cddf7dff1aa45184652150538e)) ##### Bug Fixes - **chart:** correct stale Blackwell platform floors (R570 is EOL) ([#​1380](https://github.com/defilantech/LLMKube/issues/1380)) ([445664e](https://github.com/defilantech/LLMKube/commit/445664e907bc8d5e7e0a0b8bb6646706c39f82c6)) - **chart:** make GPU alerts exporter-agnostic instead of DCGM-only ([#​1372](https://github.com/defilantech/LLMKube/issues/1372)) ([402a686](https://github.com/defilantech/LLMKube/commit/402a6865e3863294d0aa779d58a8a98ddb83e80c)) - **controller:** correct the speculative-decoding draft flag and dedupe --metrics ([#​1392](https://github.com/defilantech/LLMKube/issues/1392)) ([48d7d49](https://github.com/defilantech/LLMKube/commit/48d7d49a61c74a90b897eb273ab9aaebe21c2365)) - **controller:** skip model-cache PVC for pvc:// sources ([#​1363](https://github.com/defilantech/LLMKube/issues/1363)) ([9ec0bf9](https://github.com/defilantech/LLMKube/commit/9ec0bf972fcf6f8bf228e40a844ee95f8b996ddb)) - **foreman:** fail loudly when a revision's prior attempt cannot be restored ([#​1365](https://github.com/defilantech/LLMKube/issues/1365)) ([b9b7685](https://github.com/defilantech/LLMKube/commit/b9b76857e2ef281ad8a6387a74c5f42e2b7eaad1)) - **foreman:** run the coder gate's Go checks with GOTOOLCHAIN=auto ([#​1389](https://github.com/defilantech/LLMKube/issues/1389)) ([ce828dd](https://github.com/defilantech/LLMKube/commit/ce828dd6baeb2039dc15b2be8afebada48d3e285)) - **router:** apply external.model as modelNameOverride on backendRefs ([#​1398](https://github.com/defilantech/LLMKube/issues/1398)) ([847b14d](https://github.com/defilantech/LLMKube/commit/847b14d7da7c8fb4cd19aca68dea1af0db047918)) - **router:** compile external backends in the Gateway data plane ([#​1396](https://github.com/defilantech/LLMKube/issues/1396)) ([5045dd0](https://github.com/defilantech/LLMKube/commit/5045dd033b732544e1fdb4e83f443766fa6453f7)) - **router:** rewrite body.model for external backends via bodyMutation ([#​1401](https://github.com/defilantech/LLMKube/issues/1401)) ([2fc6992](https://github.com/defilantech/LLMKube/commit/2fc69923e7f4309958302fc76973e0064eb24d18)) - **router:** surface a gateway reconcile failure as a Warning Event ([#​1400](https://github.com/defilantech/LLMKube/issues/1400)) ([4145a67](https://github.com/defilantech/LLMKube/commit/4145a678e76653555de5b4bc749fcecbb94c4af4)) - **router:** use the non-deprecated events API for the gateway recorder ([#​1409](https://github.com/defilantech/LLMKube/issues/1409)) ([435dd72](https://github.com/defilantech/LLMKube/commit/435dd7218f6b48b11ae083449e3bf29e4e92c193)) - skip GitHub auth and repo clone for freeform tasks without a repo ([#​1350](https://github.com/defilantech/LLMKube/issues/1350)) ([c1d0cc1](https://github.com/defilantech/LLMKube/commit/c1d0cc1611c87ee040453e32cf13a6cce800577c)) - stop wasted-turn context ballooning on max\_tokens truncation ([#​1352](https://github.com/defilantech/LLMKube/issues/1352)) ([eaac3ef](https://github.com/defilantech/LLMKube/commit/eaac3efbe1a8b1b290f7c828cdf8776ebcdf128d)) - **test:** make t.Fatal terminality explicit for staticcheck SA5011 ([#​1410](https://github.com/defilantech/LLMKube/issues/1410)) ([7cf58c7](https://github.com/defilantech/LLMKube/commit/7cf58c781188d58465caa6d12bc0b487a396127b)) ##### Reverts - remove the inert model-rewrite paths for external backends ([#​1402](https://github.com/defilantech/LLMKube/issues/1402)) ([422b9ef](https://github.com/defilantech/LLMKube/commit/422b9ef6f679e4bbdb3ab5abefbaeefec14f18ee)) ##### Documentation - add observability maintainer ([#​1407](https://github.com/defilantech/LLMKube/issues/1407)) ([3fb54e2](https://github.com/defilantech/LLMKube/commit/3fb54e296040de8f323e0a91a83b61be9933d3c1)) - fix autoscaling guide to use a metric llama.cpp actually exports ([#​1386](https://github.com/defilantech/LLMKube/issues/1386)) ([bc3fca2](https://github.com/defilantech/LLMKube/commit/bc3fca237ff938d91d0b6bf046f43838d2ebe29d)) ### [`v0.9.13`](https://github.com/defilantech/LLMKube/blob/HEAD/CHANGELOG.md#0913-2026-07-29) [Compare Source](https://github.com/defilantech/LLMKube/compare/v0.9.12...v0.9.13) ##### Features - **chart:** template Grafana dashboards, publishing runtime ones only while their runtime serves ([#​1267](https://github.com/defilantech/LLMKube/issues/1267)) ([c2d56b7](https://github.com/defilantech/LLMKube/commit/c2d56b7d31746726e5dc79e2f4ce5f94b6452560)) - **foreman:** test-dilution advisory for the coder gate ([#​1332](https://github.com/defilantech/LLMKube/issues/1332)) ([#​1337](https://github.com/defilantech/LLMKube/issues/1337)) ([43a30fc](https://github.com/defilantech/LLMKube/commit/43a30fc68f7d1729c131ae4e7e4ba8cbb662dd1b)) ##### Bug Fixes - **controller:** append TGI extraArgs once, not four times ([#​1306](https://github.com/defilantech/LLMKube/issues/1306)) ([6d675f2](https://github.com/defilantech/LLMKube/commit/6d675f23f758da6eb6168e1786b5ff07598cbdac)) - **controller:** Available goes False when no replicas are ready ([#​1304](https://github.com/defilantech/LLMKube/issues/1304)) ([f3bd243](https://github.com/defilantech/LLMKube/commit/f3bd2435f3d43e84ad7cb455df04ee6f89000038)) - **controller:** charge GPUQuota by the resolved GPU count, closing the Model-declared-count bypass ([#​1324](https://github.com/defilantech/LLMKube/issues/1324)) ([e052229](https://github.com/defilantech/LLMKube/commit/e0522294a8ec499ca10d49f4bb89bebb74ab69fa)) - **controller:** cpu-offload verify advisory, parallelism validation, and a sample that actually runs ([#​1321](https://github.com/defilantech/LLMKube/issues/1321)) ([9740dad](https://github.com/defilantech/LLMKube/commit/9740dade9e6f5fcaf790ec5c8349f6452ffba260)) - **controller:** gate HPA scale-up by GPUQuota via maxReplicas accounting ([#​1311](https://github.com/defilantech/LLMKube/issues/1311)) ([#​1334](https://github.com/defilantech/LLMKube/issues/1334)) ([dcefc45](https://github.com/defilantech/LLMKube/commit/dcefc450049812531e8203334a3dd8939902f25c)) - **controller:** recognise huggingface.co URL sources as HF repos, not single-file downloads ([#​1322](https://github.com/defilantech/LLMKube/issues/1322)) ([#​1325](https://github.com/defilantech/LLMKube/issues/1325)) ([36fc79f](https://github.com/defilantech/LLMKube/commit/36fc79f14e40cb9671d2ae8e71cd3012f6c3ffd8)) - **controller:** revalidate model cache via HEAD + Content-Length, atomic download ([#​1309](https://github.com/defilantech/LLMKube/issues/1309)) ([#​1326](https://github.com/defilantech/LLMKube/issues/1326)) ([3e86988](https://github.com/defilantech/LLMKube/commit/3e86988d951e825e25d73343c0e4c2f9e16b499a)) - **foreman:** accept multi-segment repo slugs (GitLab subgroups, nested Forgejo orgs) ([#​1299](https://github.com/defilantech/LLMKube/issues/1299)) ([#​1341](https://github.com/defilantech/LLMKube/issues/1341)) ([1b7c47a](https://github.com/defilantech/LLMKube/commit/1b7c47ae63828bea4ab93038dcf65785c2a1a346)) - **foreman:** auto-apply gofmt in the coder gate instead of failing the coder ([#​1327](https://github.com/defilantech/LLMKube/issues/1327)) ([#​1333](https://github.com/defilantech/LLMKube/issues/1333)) ([954c67b](https://github.com/defilantech/LLMKube/commit/954c67bd56764436727036e00446fe4969b0e8ec)) - **foreman:** do not downgrade a mixed footprint whose classes are all self-GO ([#​1342](https://github.com/defilantech/LLMKube/issues/1342)) ([#​1344](https://github.com/defilantech/LLMKube/issues/1344)) ([d7c6569](https://github.com/defilantech/LLMKube/commit/d7c656968064c5c9c3c6390c720f9e60a746a073)) - **foreman:** make coder self-gate diff-aware, skip Go tier on non-Go diffs ([#​1292](https://github.com/defilantech/LLMKube/issues/1292)) ([#​1336](https://github.com/defilantech/LLMKube/issues/1336)) ([9f4acef](https://github.com/defilantech/LLMKube/commit/9f4acef6a39742894f0ba434d48c3e116b02bc50)) - **foreman:** ParseRepo delegates to the shared codehost slug validator ([#​1343](https://github.com/defilantech/LLMKube/issues/1343)) ([#​1345](https://github.com/defilantech/LLMKube/issues/1345)) ([ae2dfc2](https://github.com/defilantech/LLMKube/commit/ae2dfc2ed7f2d130a12d9e6364f5e7ed03f70f11)) - **foreman:** record IsError on MCP transport failures ([#​1330](https://github.com/defilantech/LLMKube/issues/1330)) ([#​1335](https://github.com/defilantech/LLMKube/issues/1335)) ([c42f873](https://github.com/defilantech/LLMKube/commit/c42f87316e667c80753401089ad20a00f1150214)) - **foreman:** split git committer identity from author for human DCO sign-off ([#​1323](https://github.com/defilantech/LLMKube/issues/1323)) ([44ef09f](https://github.com/defilantech/LLMKube/commit/44ef09fddeaa5d89200ad145f4d2c592dcdb2f10)) - **foreman:** test-presence accepts behavioral coverage of unexported helpers ([#​1329](https://github.com/defilantech/LLMKube/issues/1329)) ([#​1340](https://github.com/defilantech/LLMKube/issues/1340)) ([f1aea17](https://github.com/defilantech/LLMKube/commit/f1aea178e3d05487f4dee5e42202b8ce555cb448)) ##### Documentation - **api:** correct MemoryLimitGiB doc, it is quota-accounting only with no runtime enforcement ([#​1312](https://github.com/defilantech/LLMKube/issues/1312)) ([#​1339](https://github.com/defilantech/LLMKube/issues/1339)) ([90e6ca3](https://github.com/defilantech/LLMKube/commit/90e6ca38228f89e6818db8bb0b5312409ed8637a)) - **api:** stop the GPU-memory fields implying enforcement that does not exist…
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
A new Lab build page: Qwen3.8-Flash-Next with MTP on one Strix Halo. Adds the page, a row in the lab index, and the nav entry.
Why
This is the second-opinion reviewer endpoint the lab stood up on an AMD Ryzen AI Max+ 395, and the page exists because two things about it are not obvious and cost time.
The first is that the model is half upstream and half not, and the split moved while the runtime was being assembled. The
qwen4exparchitecture merged upstream (ggml-org/llama.cpp#27742) and so did the long-context correctness fixes (#27941); the MTP draft graph (#28243) did not. That is why the runtime is an upstream pin plus one vendored pull request rather than a fork, and the page states the pin rule that follows from it (the tag is the commit the pull request was authored against, so bump both or neither).The second is that this architecture has a documented history on exactly this chip of degrading at depth, which is the only regime a reviewer operates in, and the page records the retrieval test that says the upstream fixes deal with it.
How
The numbers come from a run on that box, and the two that carry the page are:
accept=n/a (no speculation)so it is verifiably a control.amdgpureset, device loss, ring timeout or OOM kill indmesg.Decode figures are the server's own
timings.predicted_per_second, not completion tokens over a wall clock that includes the prompt pass. That distinction was worth 20 percent here and the page says so, because a table like this without it is not reproducible.The page also records two failures honestly, since that is the part other people can reuse:
microk8s-hostpathmodel cache whose provisioner helper pod could never tolerate the GPU device taint on that node. The claim sitsPending, the InferenceService sits inCreating, and no error reaches the user. The operator's own docs describe this case as silent. Fixed with a static PV, and reported as a cluster issue rather than a model one.shared-one, decided by reading the loader source for the borrowing path rather than by trying the recommended head first and reading the error.Checklist
make testpasses locally. Not run: docs-only change, no Go compiled or changed.make lintpasses locally. Same.git commit -s) per DCO.Assisted-by: opencode (DeepSeek-V4.1-Flash) drafted the page from the run's own artifacts: the soak and probe logs, the node memory series, the runtime repo's Dockerfile and gates, and the applied manifests. I directed the experiment, chose what to measure, and reviewed every number against its source; the failures section is mine to stand behind.
The site sidebar half of publishing this is a separate change in
Defilan/llmkube-web, because that sidebar is hand-maintained and does not readnav.yaml.