Commit Graph
13 Commits
Author SHA1 Message Date
nubs f6aa5b3b43 fix(model-context): count tool_calls in estimate_tokens so compaction sees real size (#2751) 2026-06-05 15:56:54 +02:00
nubs e5429a5b98 fix(llm): route harmony thinking streams (#2449) 2026-06-05 15:22:08 +02:00
nubs 2df79ae47e fix(gallery): validate target album owner on image PATCH + owner-scope album count/cover (#2755) 2026-06-05 15:01:01 +02:00
nubs 2da0a2cb39 fix(calendar): route read requests to agent (#2452) 2026-06-05 09:24:04 +01:00
nubs ad59a4638b fix(tool-schemas): preserve web_search time_filter through native tool-call conversion (#2757) 2026-06-05 08:00:59 +01:00
nubs 427ee3eab2 fix(mcp): sanitize and cap rendered MCP tool param hints (#2682) 2026-06-05 03:00:22 +02:00
nubs 8758aae750 fix(markdown): avoid autolinking dotted imports (#2295) 2026-06-05 02:57:20 +02:00
nubs 13bb4f8e1e fix(model-context): key context-window cache by (endpoint, model) (#2614)
get_context_length() cached the resolved context window by model id alone,
so two different remote endpoints serving the same model id (e.g. a capped
proxy at 8k vs. the full provider at 200k) collided: the first to resolve
won process-wide and the other endpoint was served the wrong window. That
silently over-trims conversations on the larger-window endpoint (it feeds
context_compactor) or overflows the smaller one (provider 400s).

Key the cache on (endpoint_url, model). Local endpoints already always
re-query, so they are unaffected.

Fixes #2603
2026-06-05 02:50:56 +02:00
nubs 0b96061793 fix(mcp): confine oauth file paths (#2272) 2026-06-04 19:10:23 +02:00
nubs 13284bb132 refactor(search): make src analytics a service shim (#2264) 2026-06-04 18:57:24 +02:00
NubsCarson 8de8b0a0b4 fix(mcp): route literal MCP requests to external schemas 2026-06-04 13:00:17 +00:00
NubsCarson 295ebd4038 fix(mcp): expose MCP tool input parameters to the agent
MCP server tools were presented to the agent with only their name and a
truncated description: get_tool_descriptions_for_prompt() emitted
"- name: description" and get_all_tools() dropped input_schema entirely.
On the fenced-block tool path (used by Ollama models), the agent could
not see a tool's declared inputs and guessed argument names from the
description alone, so tool calls failed (issue #2509). MCP inspector
showed the schemas fine, confirming the loss was on our side.

- get_all_tools() now carries each tool's input_schema.
- get_tool_descriptions_for_prompt() renders a compact args hint
  (parameter names, coarse types, required-ness) via a new
  _format_mcp_params() helper, matching the "Args (JSON): {...}" style
  the built-in tool descriptions already use.

Fixes #2509
2026-06-04 12:51:31 +00:00
nubs 44cc84cc6f fix(tests): clean agent loop import stubs 2026-06-04 03:44:49 +01:00