Commit graph

765 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
DL Techy
e5ef8cf4bf fix(chat): Expand user chat bubble edit textbox width (#3963)
* fix(chat): Expand user chat bubble edit textbox width

- Update user chat bubble width from `fit-content` to `85%` to ensure consistency with the AI chat bubble edit textbox width.

* style(chat): Refine user message bubble width logic

- Change general bubble width to `fit-content`
- Set width to 85% specifically for user messages containing a `textarea`
2026-07-11 13:52:14 +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
c42609755f Stabilize local dev merge
Align regression tests with the current Odysseus behavior after merging origin/dev into local main.

- keep phone/name-only contacts valid and cover null email without crashes

- pin explicit web-search false form submission in chat.js

- update Cookbook dependency/download completion tests for combined live + persisted output

- expose SGLang OS package repair hints from backend diagnosis

- treat MLX and MLX-community repos as servable on Apple Metal while keeping CUDA behavior unchanged

- keep desktop new-chat coverage on the shared preferred-model helper

- remove a hardcoded crop overlay portal z-index literal

- include the local agent-loop cleanup that removes the old manage_notes reminder repair shim

Verified with: docker run --rm -v /home/pewds/odysseus-cookbook-fresh:/app -w /app odysseus-cookbook-fresh-odysseus python3 -m pytest -q (4515 passed, 4 skipped).
2026-07-07 01:15:20 +00: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
Moniz
c9e5def29e fix(mobile): stack the model-comparison grid into one column on phones (#4979)
The comparison grid hard-codes 2-4 equal columns with no phone breakpoint, so at
390px two models get ~178px columns and four get ~88px columns. Each column is a
full scrolling chat, so content is unreadably over-wrapped and clipped. On
phones (<=768px), stack the panes into a single scrollable column. Desktop is
unaffected.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-02 17:28:23 +02: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
e4e181aabb Move task start-now pill up 2026-06-30 10:25:53 +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
81193dca85 Add hover labels to mini sidebar buttons 2026-06-30 03:26:55 +00:00
pewdiepie-archdaemon
f351555537 Auto scan cookbook hardware when cache is missing 2026-06-30 02:55:25 +00:00
pewdiepie-archdaemon
0b56c064ee Pause background tasks while Odysseus is active 2026-06-30 02:12:30 +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
pewdiepie-archdaemon
e92d4385e8 Lengthen email loading skeleton rows 2026-06-29 23:07:25 +00:00