1891 Commits

Author SHA1 Message Date
red person a326a6a555 Skip invalid notes CLI item rows (#2005) 2026-06-29 14:26:46 +01:00
red person dff79319d7 Normalize gallery CLI text fields (#2012) 2026-06-29 13:47:29 +01:00
red person 9731048ecd Ignore non-string mail CLI recipients (#1824) 2026-06-29 13:41:22 +01:00
pewdiepie-archdaemon 783ea99bd0 Show cached model scan failures 2026-06-29 12:27:56 +00:00
pewdiepie-archdaemon 89119a8cea Persist email AI reply context notes 2026-06-29 11:30:25 +00:00
pewdiepie-archdaemon 92cfb2a7cf Retry blank email AI replies 2026-06-29 11:26:16 +00:00
pewdiepie-archdaemon 2a28bb2729 Fix added models probe button 2026-06-29 11:20:32 +00:00
pewdiepie-archdaemon a6b6a22de7 Clarify empty AI reply errors 2026-06-29 10:07:48 +00:00
pewdiepie-archdaemon b712a0a9cb Reuse open email drafts for agent replies 2026-06-29 09:18:26 +00:00
pewdiepie-archdaemon 5d5500fbb3 Keep open editor drafts in chat context 2026-06-29 03:10:42 +00:00
pewdiepie-archdaemon ff6359ae81 Restore cookbook download task progress 2026-06-29 03:02:58 +00:00
pewdiepie-archdaemon 4a7c03d536 Link gallery uploads back to chat 2026-06-29 02:34:11 +00:00
pewdiepie-archdaemon e2c8b8eb37 Allow stalled chat uploads to be cancelled 2026-06-29 02:06:39 +00:00
pewdiepie-archdaemon b419caf9f7 Show chat uploads in gallery immediately 2026-06-29 01:57:35 +00:00
pewdiepie-archdaemon 402a2771b3 Persist upload OCR captions in gallery 2026-06-29 01:45:05 +00:00
pewdiepie-archdaemon 3b6d771be9 Restore chat thumbnails and gallery OCR captions 2026-06-29 01:19:50 +00:00
pewdiepie-archdaemon 4d90eb3d44 Show overlays during bulk email delete 2026-06-28 23:42:53 +00:00
pewdiepie-archdaemon 240768a7a1 Show email delete overlay before request 2026-06-28 22:41:09 +00:00
pewdiepie-archdaemon 1e78ac999d Show busy spinner while deleting email 2026-06-28 22:19:32 +00:00
pewdiepie-archdaemon 4143bfaa2a Clear stale chat stream indicators 2026-06-28 22:06:20 +00:00
pewdiepie-archdaemon c0a68acfc8 Guard document style against persona guessing 2026-06-28 21:49:09 +00:00
Alexandre Teixeira 893e490cdc test: split provider endpoint tests (#4961) 2026-06-28 19:05:38 +02:00
Alexandre Teixeira bad9ec2f9c test: localize calendar recurrence helper import (#4944)
* test: localize calendar recurrence helper import

* test: share calendar route import helper
2026-06-28 19:04:15 +02:00
michaelxer bfeea7f463 fix(docs): correct broken backup-restore link in setup.md
Fixes #4926 - the link used docs/backup-restore.md from within docs/setup.md, which resolved to docs/docs/backup-restore.md (404). Changed to same-directory relative path.
2026-06-28 21:50:42 +07:00
nikakhalatiani 927b1f7ecf fix(llm): normalize OpenAI-compatible chat URLs
Normalize OpenAI-compatible chat URL shapes so base /v1 endpoints route to /v1/chat/completions while already-full chat endpoints remain idempotent.

Preserve native local Ollama routing for bare localhost:11434 endpoints, keep localhost:11434/v1 as OpenAI-compatible, and add focused regression coverage for provider detection, chat target URLs, and model listing from /v1.

Part of #541.
2026-06-28 15:30:15 +01:00
pewdiepie-archdaemon 6b617f9cad Move email writing style into AI settings 2026-06-28 14:27:52 +00:00
pewdiepie-archdaemon 7094c8e285 Merge dev into main for testing 2026-06-28 14:07:23 +00:00
Tal.Yuan bb2148db73 refactor(routes): move research domain into routes/research/ subpackage
Move the research route domain into the canonical routes/research/ subpackage while preserving the legacy routes.research_routes import path through a sys.modules compatibility shim.

The moved canonical module is behavior-preserving, app wiring now imports the canonical route setup function, source-introspection tests point at the new canonical path, and shim regression coverage pins legacy/canonical same-object behavior plus string-targeted monkeypatch reach-through.

Refs #4082.
Refs #4071.
2026-06-28 14:34:11 +01:00
Michael e018c7cf6c fix(cookbook): accept $(find) subshells in serve command validation
Allow the generated Cookbook mmproj lookup command substitution while keeping serve-command validation constrained to explicit safe subshell patterns.

Preserves the existing safe printf substitution, allowlists the generated find/sort/head mmproj lookup shape, and adds negative regression coverage for unrelated substitutions and pipelines.

Fixes #4772.
2026-06-28 14:00:49 +01:00
pewdiepie-archdaemon 613a4c059a Close notes when opening documents 2026-06-28 12:58:01 +00:00
pewdiepie-archdaemon 2cf7f24afc Keep PDF annotation controls hoverable 2026-06-28 11:26:45 +00:00
pewdiepie-archdaemon 7fa3414308 Fix expanded email attachment chip layout 2026-06-28 11:14:06 +00:00
pewdiepie-archdaemon 55661b8925 Fix failed task activity colors 2026-06-28 11:04:26 +00:00
nopoz a7fc1343a3 fix(security): prevent ReDoS in verdict-prose and continuation matchers (#4943)
Two py/polynomial-redos sinks ran regexes with two adjacent \s-matching
quantifiers over untrusted model text, backtracking O(n^2) when the tail failed
on a whitespace flood:

  - routes/skills_routes.py: the last-resort verdict-from-prose extractor used
    `["\'\s:]*\s*` — the class already matches \s, so the trailing \s* was a
    redundant second quantifier. Dropped it (extracted to a documented module
    constant _VERDICT_PROSE_RE); the matched text is identical, the scan linear.
  - src/agent_loop.py _EXPLICIT_CONTINUATION_RE: `\s*[.!?]*\s*$` put two \s*
    around `[.!?]*`. Rewrote as `\s*(?:[.!?]+\s*)?$` — same accepted tails (no
    two \s* adjacent), linear. Portable form (no possessive quantifiers).

Both verified output-equivalent to the originals across a fuzz corpus. Adds
tests/test_redos_verdict_continuation.py pinning the unchanged match sets and
bounding the flood inputs (old patterns took seconds at 40k whitespace chars).
2026-06-28 11:42:20 +01:00
red person 827a6b2778 Reject blank ownerless claim owner (#4929) 2026-06-28 10:57:11 +01:00
Tal.Yuan 8066a8e0cd refactor(routes): move gallery domain into routes/gallery subpackage (#4903)
Move the gallery route domain into routes/gallery/ while preserving backward-compatible legacy import shims.

- app imports the canonical gallery route module
- canonical gallery route code imports canonical gallery helpers
- legacy gallery route/helper paths remain compatibility aliases
- add shim regression coverage for module identity and monkeypatch behavior
- repoint gallery source-introspection tests to the canonical paths

No intended behavior change.
2026-06-28 10:40:34 +01:00
pewdiepie-archdaemon 31dbc6bec6 Fix mobile note archive action 2026-06-28 09:11:59 +00:00
pewdiepie-archdaemon e58d9702b7 Avoid model endpoint probes on boot 2026-06-28 08:07:15 +00:00
pewdiepie-archdaemon cbed87e5cb Make added models list cache-only 2026-06-28 07:10:55 +00:00
pewdiepie-archdaemon ac7cf67ab6 Harden added models endpoint rendering 2026-06-28 05:29:25 +00:00
pewdiepie-archdaemon 3aa48e9025 Persist OCR captions in gallery 2026-06-28 04:50:20 +00:00
pewdiepie-archdaemon a6903931f7 Reset mobile serve memory offsets 2026-06-28 01:05:08 +00:00
Rudra Sarker 5b8bfdabab fix(chat): sanitize web search query to strip markdown and code blocks (#4863)
Layer a defensive cleanup on top of the generated-query web-search flow so the final selected query is sanitized before reaching comprehensive_web_search.

- remove fenced code blocks from the final search query
- preserve inline code as plain text
- collapse whitespace and cap query length
- cover generated-query success plus LLM failure/empty fallback paths

Partially addresses #4547.
2026-06-28 01:23:08 +01:00
tanmayraut45 ff0f1b3450 fix(mcp): retain builtin startup tasks and reap npx probe
Keep strong references to builtin MCP startup tasks until completion and kill/reap the npx probe subprocess when cancellation interrupts the probe. Includes focused regression coverage for both lifecycle paths.
2026-06-28 01:18:17 +01:00
Pedro Barbosa 9782e5bc94 fix(cookbook): load user-site pth hooks for runtime installs
Replay user-site .pth hooks when checking cookbook runtime dependencies so packages installed with --user are visible to dependency completion. Includes focused regression coverage.
2026-06-28 01:01:44 +01:00
pewdiepie-archdaemon a32c3f26ab Adjust vllm preset and offsets 2026-06-27 23:57:44 +00:00
pewdiepie-archdaemon 63c07c2188 Set vllm env preset width 2026-06-27 23:54:46 +00:00
pewdiepie-archdaemon 36ba856607 Fine tune vllm advanced offsets 2026-06-27 23:54:01 +00:00
pewdiepie-archdaemon 6bba539d65 Move vllm swap control left 2026-06-27 23:49:05 +00:00
tanmayraut45 c01c09559a fix(ai): offload model resolution from async paths
Wrap blocking _resolve_model calls in asyncio.to_thread across async model interaction paths so endpoint/model resolution does not stall the event loop. Preserve owner-scoped resolution and add focused regression coverage.
2026-06-28 00:48:35 +01:00