Skip to content

v0.5.4

Choose a tag to compare

@Flare576 Flare576 released this 03 Apr 03:07
· 1000 commits to main since this release

Fixed

Local models (Gemma, Qwen3, others) now work properly with tool calling. These models occasionally emit tool calls in the response content field instead of the tool_calls array — using their own native token format rather than the OpenAI-compatible shape. Ei now detects and rescues those calls so they actually execute instead of silently disappearing. Found by watching Gemma 4 in production logs.

Room conversation history is now bounded. FFA rooms were sending the full message history to the LLM — no limit, ever. A busy room could easily blow past the context window of a local model before the system prompt even loaded. Now applies the same default_context_window_hours setting as 1:1 personas, with a floor of 20 messages so rooms never feel like a cold start.

/details now shows model: null when a persona has no model set. Previously the field just disappeared, which looked like a bug. Now it's explicit — null means "using the default model."

Built-in tool descriptions now actually update on restart. The bootstrap logic was guarded with "skip if already exists," meaning any description improvements shipped after your first install were silently ignored. Now built-in tools always re-seed their descriptions and schemas on startup, preserving only your enable/disable choices.

Tool descriptions tightened for better model behavior. Two issues fixed:

  • read_memory was described as "your personal memory" suggesting it only covered the current conversation. It's actually Ei's full persistent knowledge base across all conversations, all time. Updated accordingly — models now use it more aggressively for context about you.

  • action_response in submit_response didn't say what NOT to do, so Gemma (and others) would write the same content into both action_response and verbal_response, causing the user to see everything twice. Now explicitly says: stage directions only, don't repeat what you're saying.

Under the Hood

  • Web and TUI toolkit editors now lock built-in providers to enable/disable only — no editing names, descriptions, or schemas for system tools
  • tools_upsertBuiltin() replaces the old skip-if-exists pattern across all 16 bootstrap tool seeds