Commit graph

572 commits

Author SHA1 Message Date
Matthieu
78262a39e3 fix(chat): only leave agent mode when the model really has no tool support
Both checks match a bare "tool" or "auto" anywhere in the error text,
which catches a lot that has nothing to do with tool support: a tool
timing out, an MCP server dropping, any message containing "automatic".

At the first site the consequences are not cosmetic. The real error is
replaced with "This model doesn't support agent tools", so the actual
cause is lost. The UI leaves agent mode. And the choice is written to
localStorage, so every later message in that conversation also runs
without tools, with nothing on screen explaining why.

It presents as "agent mode works in a new chat but not in this one",
which sends you looking at the model, the session, or the endpoint
rather than at a substring match in the error path. Diagnosing it took
a while precisely because the message you are shown is the one thing
that is not true.

The second site is milder -- it appends a hint rather than switching --
but appending "this model may not support tools" to an unrelated
failure still points the user at the wrong fix.

Match the provider's actual wording instead. Ollama returns
"<model> does not support tools"; the pattern also covers "doesn't
support tools" and "tools are not supported". The original error text
is kept in both cases so a genuine failure stays diagnosable.

Checked against the strings that used to misfire -- "tool execution
timed out", "MCP server not connected", "automatic retry failed",
"tool_choice auto is invalid", "peer closed connection" -- none of
which now demote, while the three real phrasings still do.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-25 22:10:41 +02:00
pewdiepie-archdaemon
d8a2059df8 Merge verified Odysseus fixes
Some checks failed
CodeQL / Analyze (actions) (push) Has been cancelled
CodeQL / Analyze (javascript-typescript) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
ci / docker publish / build (amd64) (push) Has been cancelled
ci / docker publish / build (arm64) (push) Has been cancelled
ci / docker publish / merge manifest + tag (push) Has been cancelled
2026-07-23 14:49:02 +00:00
RaresKeY
d49629fa14 fix(reminders): support OAuth SMTP accounts (#5649) 2026-07-22 16:03:35 +02:00
RaresKeY
cc4c7f4263 chore: update repository URLs after organization transfer (#5622) 2026-07-20 16:43:47 +02:00
RaresKeY
b9cafd67a1 feat(models): define capability schema and readers (#2739)
* feat(models): define capability schema and readers

* fix(models): harden Google catalog probing

Restrict native catalog probing to the Gemini host, keep provider keys out of request URLs, filter non-chat model resources, and preserve the manual refresh default in the built-in Google add flow.
2026-07-18 09:40:58 +01:00
Astarte
bff38a4406 fix(cleanup): update MODULE_SUMMARY and remove dead MEMORY_DOC paths (#4411) (#5160)
* docs: update static/js/MODULE_SUMMARY.md to reflect current ES6 frontend

Rewrite the stale module summary to match the current no-build,
ES6-module frontend architecture. Adds coverage of app.js orchestration,
the chat/SSE pipeline (chat.js, chatStream.js, chatRenderer.js,
streamingRenderer.js), new subsystems (research/, compare/, document
streaming, cookbook*, skills.js), and removes the obsolete <script> load
order assumptions.

* cleanup: remove dead MEMORY_DOC / memory_doc paths (closes #4411)

Removes the unused MEMORY_DOC constant and the matching DataConfig
memory_doc field / set_data_paths entry. No runtime code imports or
references these paths, so this is a no-behavior-change dead-code
cleanup under the storage-architecture tracker #4377.
2026-07-11 17:06:19 +01:00
falabellamichael
c2d2075833 fix(stabilization): harden attachment lifecycle and agent guard signals (#5420)
* fix: harden stabilization attachment and agent guards

* fix(uploads): preserve durable references during cleanup

* fix(uploads): close cleanup and compaction races
2026-07-11 15:14:14 +01:00
mashallow
d02565ce32 fix(markdown): stop currency dollars rendering as KaTeX inline math (#5132) 2026-07-11 14:45:57 +01:00
RaresKeY
b3432873fb fix(email): clear bulk selection on context change (#5229) 2026-07-11 14:12:12 +01:00
Afonso Coutinho
a6efea5486 fix: _matchesCombo crashes on non-string keybind from server (#2049) 2026-07-11 03:15:19 +01:00
pewdiepie-archdaemon
4c24d5d9a6 Merge remote-tracking branch 'origin/dev'
# Conflicts:
#	routes/contacts_routes.py
2026-07-07 00:51:34 +00:00
pewdiepie-archdaemon
a1a14bd5c9 Checkpoint Odysseus local update 2026-07-07 00:50:07 +00:00
Ocean Bennett
37aeefc260 fix(security): sanitize email rich body render path (#5212) 2026-07-04 23:21:18 +02:00
pewdiepie-archdaemon
2fb3a316fd Hide untagged reasoning dumps in chat 2026-07-03 03:59:42 +00:00
pewdiepie-archdaemon
25ba07a5b1 Open documents from native tool outputs 2026-07-03 02:20:23 +00:00
pewdiepie-archdaemon
ac55f170ce Add AI edit command box to gallery editor 2026-07-03 02:13:45 +00:00
pewdiepie-archdaemon
7f833ee9d2 Add bulk email attachment downloads 2026-07-03 01:15:40 +00:00
pewdiepie-archdaemon
5bcd22873f Fix stale streams and cookbook task controls 2026-07-03 00:45:43 +00:00
holden093
9d07400b80 fix(ui): prevent race condition in default chat model dropdown init (#5024)
Setting epSel.value triggered an async change event whose handler
called refreshModels('') — wiping the correct model selection that
refreshModels(settings.default_model) had just applied moments earlier.
The dropdown silently fell back to the alphabetically-first model
(deepseek-v4-flash instead of qwen-3.6-35B-A3B).

Moved the change listener registration to after the settings block
so the async change event fires before any listener exists. The
utility and teacher sections already followed this pattern.
2026-07-02 17:05:55 +02:00
pewdiepie-archdaemon
2918ef71ea Support mobile enter for queued agent prompts 2026-07-01 14:42:52 +00:00
pewdiepie-archdaemon
246b8d88f0 Show fallback model in picker 2026-07-01 13:53:51 +00:00
pewdiepie-archdaemon
22e0c717eb Fix merged test regressions 2026-07-01 11:12:55 +00:00
pewdiepie-archdaemon
5a0e4e4b3f Repair document tool args and metrics cleanup 2026-07-01 10:15:45 +00:00
pewdiepie-archdaemon
1933201117 Merge remote-tracking branch 'origin/dev'
# Conflicts:
#	routes/document_routes.py
2026-07-01 10:11:22 +00:00
pewdiepie-archdaemon
0b4ef7187f Stabilize chat and cookbook workflows 2026-07-01 10:09:25 +00:00
RaresKeY
354853906a fix(agent): preserve bare email tool parity (#5075) 2026-06-30 19:20:56 +01:00
pewdiepie-archdaemon
39335b7bed Hide font size in markdown preview 2026-06-30 13:57:07 +00:00
pewdiepie-archdaemon
e32eb03d7c Preserve HTML email quote history 2026-06-30 12:48:47 +00:00
pewdiepie-archdaemon
2c0406c3e3 Fallback model picker to available model 2026-06-30 11:56:36 +00:00
pewdiepie-archdaemon
6708fab831 Keep email composer open during fast edits 2026-06-30 11:54:34 +00:00
pewdiepie-archdaemon
a094426242 Speed up email composer typing 2026-06-30 11:49:20 +00:00
pewdiepie-archdaemon
c374c6e028 Preserve quoted email history during AI edits 2026-06-30 10:52:25 +00:00
pewdiepie-archdaemon
a1b317df87 Write email replies into open composer 2026-06-30 10:48:08 +00:00
pewdiepie-archdaemon
7887d86537 Merge remote-tracking branch 'origin/dev' 2026-06-30 10:26:46 +00:00
pewdiepie-archdaemon
1f1a5460ca Fix task activity scrolling and background spam 2026-06-30 08:16:19 +00:00
pewdiepie-archdaemon
3468503bd3 Show thumbnails on past research cards 2026-06-30 08:00:01 +00:00
pewdiepie-archdaemon
affc8b1c37 Improve document agent streaming and chat metrics 2026-06-30 05:14:41 +00:00
pewdiepie-archdaemon
f351555537 Auto scan cookbook hardware when cache is missing 2026-06-30 02:55:25 +00:00
pewdiepie-archdaemon
38e345d476 Gate email auto translate behind active chat 2026-06-30 02:08:57 +00:00
pewdiepie-archdaemon
edbc9131b7 Fix incognito agent mode and cookbook tmux preview 2026-06-30 01:47:48 +00:00
pewdiepie-archdaemon
ea3e7f52d2 Lazy load startup task and email work 2026-06-30 01:28:08 +00:00
pewdiepie-archdaemon
061484c8ee Speed up task activity load 2026-06-30 01:16:41 +00:00
pewdiepie-archdaemon
2584d031c8 Add task email output sender controls 2026-06-30 00:34:31 +00:00
red person
18b2c9191b Ignore invalid harmonize mask layers (#1829) 2026-06-29 19:16:26 +01:00
red person
ce7e49898c Keep snap helper safe without context (#1828) 2026-06-29 18:54:44 +01:00
pewdiepie-archdaemon
df5d22f191 Fix task status toggle hit target 2026-06-29 13:55:30 +00:00
pewdiepie-archdaemon
5a5284926d Show cached model scan failures 2026-06-29 12:27:56 +00:00
pewdiepie-archdaemon
18700f92f6 Persist email AI reply context notes 2026-06-29 11:30:25 +00:00
pewdiepie-archdaemon
fcf6ce57d6 Fix added models probe button 2026-06-29 11:20:32 +00:00
pewdiepie-archdaemon
8016e3aae4 Clarify empty AI reply errors 2026-06-29 10:07:48 +00:00