diff --git a/apps/mana/apps/web/src/lib/modules/memoro/views/DetailView.svelte b/apps/mana/apps/web/src/lib/modules/memoro/views/DetailView.svelte index b412fedde..6ece01255 100644 --- a/apps/mana/apps/web/src/lib/modules/memoro/views/DetailView.svelte +++ b/apps/mana/apps/web/src/lib/modules/memoro/views/DetailView.svelte @@ -15,13 +15,13 @@ // Human-readable labels for the title-source badge below the title // input. We use these specific strings (not @mana/shared-llm's - // generic tierLabel) so we can surface the actual model name where - // known — "gemma3:4b" for mana-server, "Gemma 4" for browser tier - // — rather than the abstract tier name. + // generic tierLabel) so we can surface the actual model family + // — both browser and mana-server now run Gemma 4 variants, so the + // label stays coherent across tiers. const TITLE_SOURCE_LABELS: Record = { none: 'Lokal (regelbasiert)', - browser: 'Auf deinem Gerät (Gemma 4)', - 'mana-server': 'Mana-Server (gemma3:4b)', + browser: 'Auf deinem Gerät (Gemma 4 E2B)', + 'mana-server': 'Mana-Server (Gemma 4 E4B)', cloud: 'Google Gemini', }; diff --git a/packages/shared-llm/src/backends/mana-server.ts b/packages/shared-llm/src/backends/mana-server.ts index 652c7969d..474279e54 100644 --- a/packages/shared-llm/src/backends/mana-server.ts +++ b/packages/shared-llm/src/backends/mana-server.ts @@ -2,18 +2,27 @@ * Mana-server backend — calls services/mana-llm with an Ollama model * string. mana-llm's ProviderRouter recognizes plain Ollama model names * (no provider prefix) and routes them to the local Ollama instance on - * the Mac Mini, with automatic Gemini fallback if Ollama is overloaded. + * the Mac Mini (running on the M4's Metal GPU), with automatic Gemini + * fallback if Ollama is overloaded. * - * The default model is gemma3:4b — same model family as the browser - * tier (Gemma 4 E2B is the smaller sibling), so prompts behave - * consistently when a task auto-falls between tiers. + * The default model is gemma4:e4b — Google's Gemma 4 "Effective 4B" + * variant, released 2026-04-02. Same family as @mana/local-llm's + * browser tier model (Gemma 4 E2B is the smaller sibling) so prompts + * behave consistently when a task auto-falls between tiers. e4b is + * the right Mana-Server default because: + * - 9.6 GB on disk fits comfortably on the M4's 16 GB unified memory + * - 128K context window covers all current title/summarize tasks + * - The "Effective 4B" architecture punches well above its weight + * class (better than gemma3:4b on most German prompts) + * - The tier name we surface in the source label stays "Gemma 4" + * family for both browser and mana-server, so the UX is coherent */ import type { GenerateResult, LlmBackend, LlmTaskRequest } from '../types'; import { callManaLlmStreaming, resolveLlmBaseUrl } from './remote'; export interface ManaServerBackendOptions { - /** Ollama model name to send to mana-llm. Default 'gemma3:4b'. */ + /** Ollama model name to send to mana-llm. Default 'gemma4:e4b'. */ defaultModel?: string; } @@ -22,7 +31,7 @@ export class ManaServerBackend implements LlmBackend { private readonly defaultModel: string; constructor(opts: ManaServerBackendOptions = {}) { - this.defaultModel = opts.defaultModel ?? 'gemma3:4b'; + this.defaultModel = opts.defaultModel ?? 'gemma4:e4b'; } isAvailable(): boolean {