Skip to content

update: gufo (gufo v0.20.0) - #564

Closed
mecattaf wants to merge 2 commits into
mainfrom
update/gufo
Closed

mecattaf wants to merge 2 commits into
mainfrom
update/gufo

Conversation

@mecattaf

@mecattaf mecattaf commented Oct 13, 2026 •

Copy link
Copy Markdown
Owner

Nightly update check (#550): gufo moves from ae26ca4a (2026-10-13) to 0c03748a (2026-10-21), release v0.20.0.

program main this PR
gufo 0-unstable-ae26ca4 0-unstable-0c03748

What a switch does. Restarts gufo-llm.service once Gufo is enabled on the strix (a short gap on strix:8731 while the model reloads). Before the cutover nothing runs it. Gufo pins its model collection in its docs: a bump can move the revisions lib/gufo-models.json records.

Gate (passed): format ok (0s), flake check ok (46s), build strix, gufo ok (18s).

Carried from the previous round: 6d198fb2.

Merging is Tom's, and nothing switches until he says so. The update-check skill optionally reads the notes below against this repo and leaves its digest as the comment marked update-digest.

Release notes in this range

gufo: 8 release(s), v0.15.0 to v0.20.0

### v0.20.0 (2026-10-21)

## [0.20.0](https://github.com/gufo-org/gufo/compare/v0.19.0...v0.20.0) (2026-10-21)


### Features

* **cache:** add Qwen 27B AR and DFlash2 cache continuation ([#540](https://github.com/gufo-org/gufo/issues/540)) ([da5d5a2](https://github.com/gufo-org/gufo/commit/da5d5a2b237c654bc0523e33fdee10465240da0c))


### Bug Fixes

* **rocm:** let DeepSeek V4 Flash load when weights exceed the device pool ([#609](https://github.com/gufo-org/gufo/issues/609)) ([a7ca5f0](https://github.com/gufo-org/gufo/commit/a7ca5f0fc143203219dc71e079683d16642c6f15))
* **serve:** answer Expect: 100-continue before reading the body ([#686](https://github.com/gufo-org/gufo/issues/686)) ([f020bd3](https://github.com/gufo-org/gufo/commit/f020bd3a037d58aa42138ca11fa895524e43cdd6))
* **serve:** report no content for whitespace between parallel tool calls ([#676](https://github.com/gufo-org/gufo/issues/676)) ([9a9717c](https://github.com/gufo-org/gufo/commit/9a9717c1dae67a2623ba862b775bd9ba24633e0a))


### Performance

* **cache:** avoid repeated resets and full checkpoint lookups ([#680](https://github.com/gufo-org/gufo/issues/680)) ([887c38a](https://github.com/gufo-org/gufo/commit/887c38a17896d7c01095dfd0cf4b990378442846))
* **qwen-flash:** prefetch n-gram rows across cache checkpoints ([#683](https://github.com/gufo-org/gufo/issues/683)) ([62c840e](https://github.com/gufo-org/gufo/commit/62c840ee71cf203f2d1d0078f010bb0fec49b759))
* **qwen38_flash_next:** take the vector-load small projection path for F16 and BF16 weights ([#681](https://github.com/gufo-org/gufo/issues/681)) ([ae9ec69](https://github.com/gufo-org/gufo/commit/ae9ec6918350a97f78eeb680ae4ebf8fc0e9ad86))

### v0.19.0 (2026-10-20)

## [0.19.0](https://github.com/gufo-org/gufo/compare/v0.18.0...v0.19.0) (2026-10-20)


### Features

* **serve:** report model, build, context, sessions and vision in /props ([#669](https://github.com/gufo-org/gufo/issues/669)) ([4862410](https://github.com/gufo-org/gufo/commit/4862410edc6852305e3b0f1b226332591fc56948))


### Bug Fixes

* **ci:** refresh the release app token after waiting for release checks ([#665](https://github.com/gufo-org/gufo/issues/665)) ([270b533](https://github.com/gufo-org/gufo/commit/270b53338829d25ea05dab633fb924621d9168f9))
* **ds4:** stop the batched greedy DSpark frontier before an accepted EOS ([#668](https://github.com/gufo-org/gufo/issues/668)) ([1b0a5a8](https://github.com/gufo-org/gufo/commit/1b0a5a845f18ad67fde0920d44785c2ffa1bd7d5))
* **qwen-flash:** store d*sum(q) as the q8_1 block sum ([#667](https://github.com/gufo-org/gufo/issues/667)) ([86730bd](https://github.com/gufo-org/gufo/commit/86730bda292fc15d8fbbb37cc89e1268431f3b48))


### Performance

* **qwen-flash:** let sampled requests use the small MTP draft head on multi-session servers ([#655](https://github.com/gufo-org/gufo/issues/655)) ([b6a671c](https://github.com/gufo-org/gufo/commit/b6a671c813f6ff35d9a2a0d2a57f59dad870c1a4))
* **qwen27b:** run verification attention rows > 1 as wave64 with shared per-head steps ([#660](https://github.com/gufo-org/gufo/issues/660)) ([d1830de](https://github.com/gufo-org/gufo/commit/d1830de7df21815ace54ecc76df738ed04e7d5c7))
* **qwen38_flash_next:** price greedy MTP drafts at the decoding occupancy ([#664](https://github.com/gufo-org/gufo/issues/664)) ([2caf2a8](https://github.com/gufo-org/gufo/commit/2caf2a82f5620d8de77661cb64e5af1bed044a89))


### Documentation

* note Claude Code is unsupported with Qwen ([#672](https://github.com/gufo-org/gufo/issues/672)) ([8775189](https://github.com/gufo-org/gufo/commit/877518953c153b2aac57f7b77fc904e8540b1fde))

### v0.18.0 (2026-10-19)

## [0.18.0](https://github.com/gufo-org/gufo/compare/v0.17.1...v0.18.0) (2026-10-19)


### Features

* **serve:** honor the Messages thinking budget ([#524](https://github.com/gufo-org/gufo/issues/524)) ([295f26c](https://github.com/gufo-org/gufo/commit/295f26ce63e93b288a47b1bb54d8d823a93e8c0d))
* **serve:** prepare the structured-output vocabulary before serving ([#638](https://github.com/gufo-org/gufo/issues/638)) ([e773094](https://github.com/gufo-org/gufo/commit/e77309421b0013d44d62ec0824be63c057a970e5))


### Bug Fixes

* **cache:** keep disk-cache snapshots out of the page cache ([#477](https://github.com/gufo-org/gufo/issues/477)) ([bff0eec](https://github.com/gufo-org/gufo/commit/bff0eec6f1eaaa5847d00712787153a3de78a4a0))
* **ci:** keep the devlab report when later jobs start ([#659](https://github.com/gufo-org/gufo/issues/659)) ([fbfc712](https://github.com/gufo-org/gufo/commit/fbfc712586c8972b2209bd6c13c69c8146311b81))
* **qwen-flash:** pin square-accumulation order in all HcCombineMoeF16Kernel instantiations ([#624](https://github.com/gufo-org/gufo/issues/624)) ([43b829d](https://github.com/gufo-org/gufo/commit/43b829d4dee5574d66fbd499640e56f40cbf4baa))
* **qwen:** reuse historical image preprocessing ([#645](https://github.com/gufo-org/gufo/issues/645)) ([f948ddd](https://github.com/gufo-org/gufo/commit/f948ddd371bf2a3f7360b7069fc703badbbc07ed))
* **serve:** reclaimable page cache is available in cgroup space ([#637](https://github.com/gufo-org/gufo/issues/637)) ([9e1afaa](https://github.com/gufo-org/gufo/commit/9e1afaaa4da0f36e3638ac88bf12b054d2a1114a))
* **tools:** preserve optional arguments in native calls ([#643](https://github.com/gufo-org/gufo/issues/643)) ([a802cc7](https://github.com/gufo-org/gufo/commit/a802cc77c795e26388e45cacec94aafcd69d12b4))


### Performance

* **flash-next:** reduce prompt and decode stalls ([#653](https://github.com/gufo-org/gufo/issues/653)) ([3462aa9](https://github.com/gufo-org/gufo/commit/3462aa96d0c02da3a6a511e0be197e186bd9f36a))
* **qwen:** fork the recurrent state across two buffers instead of copying it ([#650](https://github.com/gufo-org/gufo/issues/650)) ([95ba1ea](https://github.com/gufo-org/gufo/commit/95ba1eae63f62fd8a4576f6313ffa6be05f1e83b))

### v0.17.1 (2026-10-18)

## [0.17.1](https://github.com/gufo-org/gufo/compare/v0.17.0...v0.17.1) (2026-10-18)


### Bug Fixes

* **cache:** reject capacity retries before reading payloads ([#636](https://github.com/gufo-org/gufo/issues/636)) ([778061d](https://github.com/gufo-org/gufo/commit/778061d453ff4cf863c47059f8ea63142c7f5ca1))
* **inference:** reduce Flash-Next cache and cold-prompt stalls ([#633](https://github.com/gufo-org/gufo/issues/633)) ([1f97092](https://github.com/gufo-org/gufo/commit/1f97092333af10f29887b098d9cb8a041610004a))


### Performance

* **qwen-flash:** copy repeated context into MTP drafts ([#613](https://github.com/gufo-org/gufo/issues/613)) ([8497711](https://github.com/gufo-org/gufo/commit/8497711eb154ecff55ef4119a01ace214149e276))
* **qwen-flash:** cut prefill and decode attention cost at depth ([#626](https://github.com/gufo-org/gufo/issues/626)) ([5a1669a](https://github.com/gufo-org/gufo/commit/5a1669a6c15129917a4e91b77bd36ddaa3e7b0d8))

### v0.17.0 (2026-10-17)

## [0.17.0](https://github.com/gufo-org/gufo/compare/v0.16.0...v0.17.0) (2026-10-17)


### Features

* **serve:** prepare the Qwen vision sidecar before serving ([#616](https://github.com/gufo-org/gufo/issues/616)) ([0604e9e](https://github.com/gufo-org/gufo/commit/0604e9ebc41388ab610ed0bed198e49ef96a6a82))


### Bug Fixes

* **cache:** bound publication waits by observed prefill cost ([#621](https://github.com/gufo-org/gufo/issues/621)) ([e8e508f](https://github.com/gufo-org/gufo/commit/e8e508f51826c86d567ed3b7ea6bf2b1eaeb1ab5))
* **cache:** let disk eviction wait for startup orphan reclamation ([#625](https://github.com/gufo-org/gufo/issues/625)) ([78248de](https://github.com/gufo-org/gufo/commit/78248de23cc279b1a5d4443cef816a6059bde189))
* **serve:** keep the decimal spelling of integer JSON numbers ([#614](https://github.com/gufo-org/gufo/issues/614)) ([22e3676](https://github.com/gufo-org/gufo/commit/22e36769f9b25a57963a9215003eae0f5f9c15d6))
* **serve:** preserve cache reuse when tool choice changes ([#623](https://github.com/gufo-org/gufo/issues/623)) ([23d970d](https://github.com/gufo-org/gufo/commit/23d970d0ca0ef694dafec64131269f9c24590940))


### Performance

* **qwen-flash:** compact sparse attention selections once per row ([#622](https://github.com/gufo-org/gufo/issues/622)) ([baf5a1b](https://github.com/gufo-org/gufo/commit/baf5a1bbab5b99a8278c4869122fd173b205671b))

### v0.16.0 (2026-10-16)

## [0.16.0](https://github.com/gufo-org/gufo/compare/v0.15.1...v0.16.0) (2026-10-16)


### Features

* **serve:** keep /health answering while the model and disk tier load ([#610](https://github.com/gufo-org/gufo/issues/610)) ([f6ca085](https://github.com/gufo-org/gufo/commit/f6ca085a5091eed23541cde6fa1ff282cbd4c68b))


### Performance

* **cache:** reduce long-context checkpoint overhead ([#615](https://github.com/gufo-org/gufo/issues/615)) ([f8be547](https://github.com/gufo-org/gufo/commit/f8be5474228095dd0eec6cec14cbc6ba7f070f90))
* **qwen-flash:** score MTP drafts over request vocabulary ([#603](https://github.com/gufo-org/gufo/issues/603)) ([51a8b00](https://github.com/gufo-org/gufo/commit/51a8b00d9dc5360688fc8642df94dfe1387ec2ca))


### Code Refactoring

* **serve:** move tool-call dialect parsing next to its renderers ([#592](https://github.com/gufo-org/gufo/issues/592)) ([b6ba33d](https://github.com/gufo-org/gufo/commit/b6ba33d48c7a2749a2e0b98e891a22e27d17cbdb))

### v0.15.1 (2026-10-15)

## [0.15.1](https://github.com/gufo-org/gufo/compare/v0.15.0...v0.15.1) (2026-10-15)


### Bug Fixes

* **cache:** avoid artifact hashing for RAM-only Flash-Next ([#602](https://github.com/gufo-org/gufo/issues/602)) ([43ad9a5](https://github.com/gufo-org/gufo/commit/43ad9a5a7133dabc820a66a825247331c5503bf4))
* **cache:** repair flash-next functional cache regressions ([#596](https://github.com/gufo-org/gufo/issues/596)) ([ec69aa3](https://github.com/gufo-org/gufo/commit/ec69aa328ea78f00090c42a78034cc012eae151e))

### v0.15.0 (2026-10-13)

## [0.15.0](https://github.com/gufo-org/gufo/compare/v0.14.0...v0.15.0) (2026-10-13)


### Features

* **serve:** accept IPv6 listen addresses ([#585](https://github.com/gufo-org/gufo/issues/585)) ([a690704](https://github.com/gufo-org/gufo/commit/a690704b99ce7f8b962e1b6004c07c7af24e0ce3))


### Bug Fixes

* **cache:** pin Flash-Next cache pages without compacting host memory ([#589](https://github.com/gufo-org/gufo/issues/589)) ([10c40b0](https://github.com/gufo-org/gufo/commit/10c40b0d09b6a58f0932c1f73e08318647b75474))
* **serve:** accept response schemas without additionalProperties ([#582](https://github.com/gufo-org/gufo/issues/582)) ([c406e40](https://github.com/gufo-org/gufo/commit/c406e40e97fcee008e47e3447b71f82066def6a7))


### Performance

* **qwen-flash:** speed up wide prefill kernels ([#571](https://github.com/gufo-org/gufo/issues/571)) ([a33e989](https://github.com/gufo-org/gufo/commit/a33e989cf49e533e3cb591a9f0483c67c590ba50))

Full notes: https://github.com/gufo-org/gufo/releases/tag/v0.20.0, https://github.com/gufo-org/gufo/releases/tag/v0.19.0, https://github.com/gufo-org/gufo/releases/tag/v0.18.0, https://github.com/gufo-org/gufo/releases/tag/v0.17.1, https://github.com/gufo-org/gufo/releases/tag/v0.17.0, https://github.com/gufo-org/gufo/releases/tag/v0.16.0, https://github.com/gufo-org/gufo/releases/tag/v0.15.1, https://github.com/gufo-org/gufo/releases/tag/v0.15.0

Opened by `update-check` (home/dot_local/bin/update-check) at 2026-10-22T01:17:17.744353Z.

@mecattaf mecattaf changed the title update: gufo (gufo 0-unstable-89d6185) update: gufo (gufo v0.15.0) Oct 13, 2026
@mecattaf

Copy link
Copy Markdown
Owner Author

Update digest: gufo ae26ca4a to v0.15.0 (89d61855), read against modules/gufo.nix, lib/gufo-models.json, lib/local-models.nix and draft #559.

Our pin was already past v0.14.0, so it already had three of the four items in these notes: IPv6 listen addresses (#585), response schemas without additionalProperties (#582) and faster wide prefill (#571). Only two commits are new: the cache fix (#589) and the release commit. Eight files changed in all. None of them is a model doc, a model manifest or the README model table.

Model catalog: unchanged. Every row of lib/gufo-models.json still matches what Gufo pins at v0.15.0, both the revision and the file names:

row revision v0.15.0
qwen38-flash-next-gguf (4 UD-Q4_K_XL shards, MTP shared Q8_0, mmproj BF16) 38bb39ee same
qwen38-27b-gguf (UD-Q4_K_XL, mmproj BF16) 4ca72078 same
qwen38-27b-dflash2-gguf (Q4_K_M) 2d9571f8 same
deepseek-v4-flash-gguf (IQ2XXS 0731) 1cd7b564 same
deepseek-v4-flash-dspark-gguf (DSpark 0731) e7f04037 same
qwen3-asr-1.7b 7278e1e7 same
qwen-image-2.1 b3179ad3 same
minimax-h3-fl2va (still gated) 42ed227e same
qwen3-tts-12hz-1.7b-base fd4b2543 (ours) Gufo still pins no revision, so ours stands

No model was added or dropped. The 125 GB already borrowed to the strix stays valid, and nothing needs refetching.

Worth taking

  • The cache fix (dsh: add DeepSeek Harness as the fleet agent harness (Qwen Cloud route), then remove pi #589, src/core/hip/committed_backing.cpp). Flash-Next allocated its RAM cache with hipHostMalloc, which asks the kernel for high-order pages. When most of the RAM belongs to the GPU, which is the strix's normal state, compacting memory for those pages stalled decode for seconds. In 0.15.0 the cache uses ordinary pages registered with HIP and grows ahead of need on a background thread, with the first step taken at startup. gufo-llm already sets LimitMEMLOCK=infinity and leaves --cache-ram-bytes at its default, so no flag changes are needed. This is worth having before the cutover.
  • Three comments still say the catalog was read at ae26ca4a: flake.nix:201-202, flake.nix:2230-2231 and lib/local-models.nix:197. Since the catalog is unchanged, they can name v0.15.0 instead. I have proposed this as a comment-only commit and have not pushed it.

Touches us

  • Nothing. The flags modules/gufo.nix passes are unchanged: serve llm|tts|asr|image, --host, --port, --model, --served-model-name, --sessions, --context, --mmproj, --speculative mtp|dflash2|dspark with their model flags, --voice and --voice-text. In serve.cpp only the help text for --cache-ram-bytes changed. /ready, /metrics, /v1/models and /v1/messages were not touched, and neither was the 404 for any other model id. Draft Retire Halogen and serve Gufo across local callers #559 relies on the id qwen3.8-flash-next, on /ready, on the input modalities in /v1/models, on the llamacpp:requests_processing and llamacpp:requests_deferred gauges in /metrics, and on chat_template_kwargs.enable_thinking. None of that moved, so Retire Halogen and serve Gufo across local callers #559 needs no rework.

Nothing for us: the version and changelog bumps in the release commit.

mecattaf added a commit that referenced this pull request Oct 13, 2026
…on (update digest on #564)

Every lib/gufo-models.json row's revision and files match v0.15.0; the one
new commit since ae26ca4a is the RAM-cache fix (gufo #589).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
mecattaf and others added 2 commits October 22, 2026 03:20
gufo 0-unstable-ae26ca4 -> 0-unstable-0c03748

Opened by update-check (#550).

Update-Check: bump
…on (update digest on #564)

Every lib/gufo-models.json row's revision and files match v0.15.0; the one
new commit since ae26ca4a is the RAM-cache fix (gufo #589).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@mecattaf

Copy link
Copy Markdown
Owner Author

Superseded by #605 (merged as 9287d02), which carries this Gufo v0.20.0 pin (0c03748a) in commit fdecfd6; closing.

@mecattaf mecattaf closed this Oct 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant