Commit Graph
3979 Commits
Author SHA1 Message Date
bhethermanandClaude Sonnet 5 6f583deff9 Add relaxed-MTP llama-server as a new connection, surface generation speed
Create and publish Docker images with specific build args / build (map[arch:linux/amd64 runner:ubuntu-latest], map[build_args: free_disk:false name:main suffix:]) (push) Canceled after 0s
Create and publish Docker images with specific build args / build (map[arch:linux/amd64 runner:ubuntu-latest], map[build_args:USE_CUDA=true USE_CUDA_VER=cu126 free_disk:true name:cuda126 suffix:-cuda126]) (push) Canceled after 0s
Create and publish Docker images with specific build args / build (map[arch:linux/amd64 runner:ubuntu-latest], map[build_args:USE_CUDA=true free_disk:true name:cuda suffix:-cuda]) (push) Canceled after 0s
Create and publish Docker images with specific build args / build (map[arch:linux/amd64 runner:ubuntu-latest], map[build_args:USE_OLLAMA=true free_disk:false name:ollama suffix:-ollama]) (push) Canceled after 0s
Create and publish Docker images with specific build args / build (map[arch:linux/amd64 runner:ubuntu-latest], map[build_args:USE_SLIM=true free_disk:false name:slim suffix:-slim]) (push) Canceled after 0s
Create and publish Docker images with specific build args / build (map[arch:linux/arm64 runner:ubuntu-24.04-arm], map[build_args: free_disk:false name:main suffix:]) (push) Canceled after 0s
Create and publish Docker images with specific build args / build (map[arch:linux/arm64 runner:ubuntu-24.04-arm], map[build_args:USE_CUDA=true USE_CUDA_VER=cu126 free_disk:true name:cuda126 suffix:-cuda126]) (push) Canceled after 0s
Create and publish Docker images with specific build args / build (map[arch:linux/arm64 runner:ubuntu-24.04-arm], map[build_args:USE_CUDA=true free_disk:true name:cuda suffix:-cuda]) (push) Canceled after 0s
Create and publish Docker images with specific build args / build (map[arch:linux/arm64 runner:ubuntu-24.04-arm], map[build_args:USE_OLLAMA=true free_disk:false name:ollama suffix:-ollama]) (push) Canceled after 0s
Create and publish Docker images with specific build args / build (map[arch:linux/arm64 runner:ubuntu-24.04-arm], map[build_args:USE_SLIM=true free_disk:false name:slim suffix:-slim]) (push) Canceled after 0s
Frontend Build / Format & Build (push) Canceled after 0s
Frontend Build / Unit Tests (push) Canceled after 0s
Release to PyPI / release (push) Canceled after 0s
Release / publish (push) Canceled after 0s
Create and publish Docker images with specific build args / merge (map[name:cuda suffix:-cuda]) (push) Canceled after 0s
Create and publish Docker images with specific build args / merge (map[name:cuda126 suffix:-cuda126]) (push) Canceled after 0s
Create and publish Docker images with specific build args / merge (map[name:main suffix:]) (push) Canceled after 0s
Create and publish Docker images with specific build args / merge (map[name:ollama suffix:-ollama]) (push) Canceled after 0s
Create and publish Docker images with specific build args / merge (map[name:slim suffix:-slim]) (push) Canceled after 0s
Create and publish Docker images with specific build args / notify-helm-charts (push) Canceled after 0s
Create and publish Docker images with specific build args / copy-to-dockerhub (, main) (push) Canceled after 0s
Create and publish Docker images with specific build args / copy-to-dockerhub (-cuda, cuda) (push) Canceled after 0s
Create and publish Docker images with specific build args / copy-to-dockerhub (-cuda126, cuda126) (push) Canceled after 0s
Create and publish Docker images with specific build args / copy-to-dockerhub (-ollama, ollama) (push) Canceled after 0s
Create and publish Docker images with specific build args / copy-to-dockerhub (-slim, slim) (push) Canceled after 0s
Wires the custom relaxed-acceptance llama-server (see
../mtp-relaxed-decoding) into the stack as a new llama-mtp service,
registered as an additional OpenAI-compatible connection alongside
Ollama. ollama-auth now proxies to llama-mtp instead of the now-empty
Ollama, so LAN clients (e.g. Home Assistant's voice pipeline) keep
working against the same URL/token with no reconfiguration.

Also merges llama.cpp's `timings` extension (dropped by the generic
OpenAI response schema) into message.usage and surfaces it as a
labeled tok/s badge, so relaxed-MTP responses get the same visible
generation-speed info Ollama responses already had.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-04 11:33:12 -04:00
Timothy Jaeryang Baek 5c62cc0517 chore: format 2026-08-25 16:53:53 -04:00
Timothy Jaeryang Baek f71e9570c0 refac 2026-08-25 16:52:31 -04:00
Timothy Jaeryang Baek 54d7a22370 refac 2026-08-25 16:34:49 -04:00
Timothy Jaeryang Baek 02400c7a50 refac 2026-08-25 15:15:18 -04:00
Timothy Jaeryang Baek f158f892f4 refac 2026-08-25 15:14:11 -04:00
Timothy Jaeryang Baek bc4c91e6d6 refac 2026-08-25 15:11:06 -04:00
Timothy Jaeryang Baek a21c8d15ee refac 2026-08-25 14:48:38 -04:00
Timothy Jaeryang Baek 3374b21a7d refac 2026-08-25 14:39:25 -04:00
Timothy Jaeryang Baek 92a1502126 refac 2026-08-25 14:22:20 -04:00
Timothy Jaeryang Baek 7198e9d0df refac 2026-08-25 14:06:25 -04:00
Timothy Jaeryang Baek d241df8d79 refac 2026-08-25 13:39:54 -04:00
Timothy Jaeryang Baek a4738e0459 refac 2026-08-25 12:45:12 -04:00
Timothy Jaeryang Baek 2f97c9fce3 refac 2026-08-25 10:00:43 -04:00
Timothy Jaeryang Baek aa3d569610 refac 2026-08-25 09:59:07 -04:00
Timothy Jaeryang Baek 2a0274a0a0 refac 2026-08-24 20:34:59 -04:00
Timothy Jaeryang Baek 11db926a7b refac 2026-08-24 19:20:24 -04:00
G30 e6648aefb5 fix: honor the terminal file browser filesystem root instead of clamping to home (#29006) 2026-08-24 17:55:51 -05:00
Timothy Jaeryang Baek e9efb95a9c refac 2026-08-24 18:17:11 -04:00
Timothy Jaeryang Baek 7a533d0d5b refac 2026-08-24 18:14:30 -04:00
Timothy Jaeryang Baek fd8cc2ba4a refac 2026-08-24 18:06:59 -04:00
G30 da9245626e fix: keep the viewport in place when older messages load above it (#28657) 2026-08-24 17:51:20 -04:00
Timothy Jaeryang Baek 8c1f3d3824 refac 2026-08-24 17:39:30 -04:00
Timothy Jaeryang Baek 8a170897ba refac 2026-08-24 07:28:09 -04:00
Timothy Jaeryang Baek 495296346e refac 2026-08-24 06:26:49 -04:00
Timothy Jaeryang Baek ef455fcef9 refac 2026-08-24 06:25:09 -04:00
Timothy Jaeryang Baek 978d257214 refac 2026-08-24 05:40:53 -04:00
Timothy Jaeryang Baek b30b11d4c9 refac 2026-08-23 16:01:36 -04:00
Timothy Jaeryang Baek e623c02acc refac 2026-08-23 15:06:30 -04:00
Timothy Jaeryang Baek 78f48a21ee refac 2026-08-23 14:40:48 -04:00
Timothy Jaeryang Baek 842c1f9d67 refac 2026-08-23 13:10:07 -04:00
Timothy Jaeryang Baek 0fb542b376 refac 2026-08-23 12:59:59 -04:00
Timothy Jaeryang Baek 3c66d639e3 refac 2026-08-23 12:33:34 -04:00
Timothy Jaeryang Baek c1c81f8127 refac 2026-08-23 03:40:40 -04:00
Timothy Jaeryang Baek f3f76095d1 refac 2026-08-23 02:34:08 -04:00
Timothy Jaeryang Baek 7abe11346a refac 2026-08-22 09:13:13 -04:00
Timothy Jaeryang Baek d17f06a235 refac 2026-08-22 08:43:46 -04:00
Timothy Jaeryang Baek 1b3b9375bb refac 2026-08-22 08:21:53 -04:00
Timothy Jaeryang Baek d7d935275a refac 2026-08-22 08:18:38 -04:00
G30 d2bc98eaeb fix: let the composer's model selector shrink so narrow containers keep every control visible (#28912) 2026-08-21 12:04:59 -07:00
Classic298 18c604baa9 fix: voice mode produces no audio when the task model returns empty content (#28724)
With "show emoji in call" enabled, voice mode stayed completely silent and no request ever reached the configured TTS server. Reasoning models served with a reasoning parser return `message.content` as null and put the text in `reasoning_content`, and the emoji helper called `.replace()` on that null value and threw.

The call overlay ran the emoji request first, inside the same `try` block as speech synthesis, so that error skipped the entire TTS section. The audio cache was never filled, and the playback loop kept re-queueing the same content every 200 ms without ever playing it. Read aloud was unaffected because it synthesizes speech directly, which is why the failure looked specific to voice mode.

Fixed on both sides: the optional chain in `generateEmoji` now covers `content`, and the emoji request in the call overlay gets its own catch, matching the speech synthesis call directly below it. An emoji failure now costs the emoji instead of the whole reply.
2026-08-20 13:03:55 -07:00
G30 a0e7d0e3a4 fix: send the model id when ejecting from the model selector (#28766) 2026-08-20 12:58:14 -07:00
Timothy Jaeryang Baek 8a42aa53e8 refac 2026-08-19 22:48:32 -07:00
Timothy Jaeryang Baek 46dce79eb0 refac 2026-08-19 22:28:41 -07:00
Timothy Jaeryang Baek 33dff414e8 refac 2026-08-19 16:35:49 -07:00
G30 dd7158b45f fix: clear the integrations search when leaving a section (#28812) 2026-08-19 16:14:53 -07:00
G30 bcb50fe7b0 fix: derive integrations toggle state from the selected ids (#28807) 2026-08-19 12:46:17 -05:00
Classic298 21e390561d fix: revoke existing sessions when a password changes (#28725)
Changing a password left every other logged-in device working until the JWT expired on its own, up to four weeks with the default settings. The hardening docs already promise the opposite: with Redis configured a password change is supposed to put the user's tokens on the revocation list, but only sign-out and OIDC back-channel logout ever wrote to it.

Both password-change paths, self-service and an admin resetting someone's password, now stamp the per-user revocation marker that token validation already checks, so every session issued before the change stops working. The acting device is signed out as well and asked to sign in again, which is the safer default when the password is being changed precisely because the old one may be compromised. Without Redis nothing can be revoked, as before, and the backend now logs a warning saying so.

The marker is written through one shared helper, so its lifetime follows the configured JWT lifetime instead of a fixed 30 days and never expires at all when JWT_EXPIRES_IN disables expiry. Back-channel logout picks that up too, where a long or disabled JWT lifetime previously let the marker expire while the tokens it revoked were still valid. API keys keep working, they are separate credentials with their own lifecycle.

Discussed in #28647.
2026-08-17 13:56:29 -07:00
G30 7ea46a37d0 fix: clip settings modal contents to its rounded corners (#27617) 2026-08-17 02:12:26 -06:00
Timothy Jaeryang Baek b1dc945bd6 refac 2026-08-17 00:59:13 -07:00