* origin/main: (33 commits)
fix: replace panic with proper error handling in get_tokenizer (#7175)
Lifei/smoke test for developer (#7174)
fix text editor view broken (#7167)
docs: White label guide (#6857)
Add PATH detection back to developer extension (#7161)
docs: pin version in ci/cd (#7168)
Desktop: - No Custom Headers field for custom OpenAI-compatible providers (#6681)
feat: edit model and extensions of a recipe from GUI (#6804)
feat: MCP support for agentic CLI providers (#6972)
docs: keyring fallback to secrets.yaml (#7165)
feat: load provider/model specified inside the recipe config (#6884)
fix ask-ai bot hitting tool call limits (#7162)
fix flatpak icon (#7154)
[docs] Skills Marketplace UI Improvements (#7158)
More no-window flags (#7122)
feat: Allow overriding default bat themes using environment variables (#7140)
Make the system prompt smaller (#6991)
Pre release script (#7145)
Spelling (#7137)
feat(mcp): upgrade rmcp to 0.15.0 and advertise MCP Apps UI extension capability (#6927)
...
Previously, local inference conversations were hardcoded to 'Local conversation'
as their session name. Now they use the same title generation flow as remote
providers.
Changes:
- Remove generate_session_name override from LocalInferenceProvider and
OllamaProvider, letting them use the default Provider trait implementation
- Extract session name system prompt to configurable template (session_name.md)
with few-shot examples for better local model compliance
- Deduplicate prompt: system prompt defines the task, user message provides
delimited messages with a repeated instruction anchor
- Add strip_xml_tags to filter reasoning tags (e.g. <think>) from model output
- Fix streaming token concatenation: collect text chunks without newline
separators to avoid mid-word splits like 'Ge ese'
The shell tool returns two Content::text items: one for the assistant and
one for the user. For short outputs both contain identical text. The
callback in code_execution_extension was joining all text content without
filtering by audience, causing the output to appear twice.
Filter to only include content targeted at the assistant (or with no
audience restriction) before joining text results.
* origin/main: (54 commits)
chore: strip posthog for sessions/models/daily only (#7079)
tidy: clean up old benchmark and add gym (#7081)
fix: use command.process_group(0) for CLI providers, not just MCP (#7083)
added build notify (#6891)
test(mcp): add image tool test and consolidate MCP test fixtures (#7019)
fix: remove Option from model listing return types, propagate errors (#7074)
fix: lazy provider creation for goose acp (#7026) (#7066)
Smoke tests: split compaction test and use debug build (#6984)
fix(deps): trim bat to resolve RUSTSEC-2024-0320 (#7061)
feat: expose AGENT_SESSION_ID env var to extension child processes (#7072)
fix: add XML tool call parsing fallback for Qwen3-coder via Ollama (#6882)
Remove clippy too_many_lines lint and decompose long functions (#7064)
refactor: move disable_session_naming into AgentConfig (#7062)
Add global config switch to disable automatic session naming (#7052)
docs: add blog post - 8 Things You Didn't Know About Code Mode (#7059)
fix: ensure animated elements are visible when prefers-reduced-motion is enabled (#7047)
Show recommended model on failture (#7040)
feat(ui): add session content search via API (#7050)
docs: fix img url (#7053)
Desktop UI for deleting custom providers (#7042)
...