red person
c8fc4d003c
Ignore invalid context budget numbers ( #1831 )
2026-06-29 19:56:17 +01:00
red person
8209f73817
Ignore non-string personal doc text ( #1832 )
2026-06-29 19:24:29 +01: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
red person
ddc989129c
Ignore invalid serve profile inputs ( #1827 )
2026-06-29 18:47:19 +01:00
red person
f2bdf3fb72
Reject resolver results without IPs ( #1826 )
2026-06-29 16:32:32 +01:00
pewdiepie-archdaemon
296fadcb52
Implement email auto translate cache task
2026-06-29 14:59:25 +00:00
pewdiepie-archdaemon
1a23f39da8
Rescue plain UI open-panel tool text
2026-06-29 14:07:48 +00:00
pewdiepie-archdaemon
df5d22f191
Fix task status toggle hit target
2026-06-29 13:55:30 +00:00
pewdiepie-archdaemon
a5a361e619
Gate background tasks behind foreground activity
2026-06-29 13:52:52 +00:00
red person
58dd754808
Reject non-string atomic text writes ( #1819 )
2026-06-29 14:36:21 +01:00
red person
cb356c8605
Skip invalid notes CLI item rows ( #2005 )
2026-06-29 14:26:46 +01:00
red person
968aaaac69
Normalize gallery CLI text fields ( #2012 )
2026-06-29 13:47:29 +01:00
red person
79d7883eaf
Ignore non-string mail CLI recipients ( #1824 )
2026-06-29 13:41:22 +01: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
6139fc39bc
Retry blank email AI replies
2026-06-29 11:26:16 +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
pewdiepie-archdaemon
c80a35a96e
Reuse open email drafts for agent replies
2026-06-29 09:18:26 +00:00
pewdiepie-archdaemon
757ebd8795
Keep open editor drafts in chat context
2026-06-29 03:10:42 +00:00
pewdiepie-archdaemon
d919f84b65
Restore cookbook download task progress
2026-06-29 03:02:58 +00:00
pewdiepie-archdaemon
ef6cda29f6
Link gallery uploads back to chat
2026-06-29 02:34:11 +00:00
pewdiepie-archdaemon
9401fd2870
Allow stalled chat uploads to be cancelled
2026-06-29 02:06:39 +00:00
pewdiepie-archdaemon
99c87c7c7e
Show chat uploads in gallery immediately
2026-06-29 01:57:35 +00:00
pewdiepie-archdaemon
ec93ea368b
Persist upload OCR captions in gallery
2026-06-29 01:45:05 +00:00
pewdiepie-archdaemon
fada157099
Restore chat thumbnails and gallery OCR captions
2026-06-29 01:19:50 +00:00
pewdiepie-archdaemon
bb5d57f5b0
Show overlays during bulk email delete
2026-06-28 23:42:53 +00:00
pewdiepie-archdaemon
d8f3985474
Show email delete overlay before request
2026-06-28 22:41:09 +00:00
pewdiepie-archdaemon
d0d83e95c3
Show busy spinner while deleting email
2026-06-28 22:19:32 +00:00
pewdiepie-archdaemon
9d576dc9ee
Clear stale chat stream indicators
2026-06-28 22:06:20 +00:00
pewdiepie-archdaemon
4e81a5aa87
Guard document style against persona guessing
2026-06-28 21:49:09 +00:00
Alexandre Teixeira
c8e106c629
test: split provider endpoint tests ( #4961 )
2026-06-28 19:05:38 +02:00
Alexandre Teixeira
31705015a3
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
nikakhalatiani
cdc6918742
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
58ee4e78a1
Move email writing style into AI settings
2026-06-28 14:27:52 +00:00
pewdiepie-archdaemon
38d5e65e36
Merge dev into main for testing
2026-06-28 14:07:23 +00:00
Tal.Yuan
d13d8aa905
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
c096af5afd
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
e75e1d038e
Close notes when opening documents
2026-06-28 12:58:01 +00:00
pewdiepie-archdaemon
a90b60a9b0
Keep PDF annotation controls hoverable
2026-06-28 11:26:45 +00:00
pewdiepie-archdaemon
6ead14c5ec
Fix expanded email attachment chip layout
2026-06-28 11:14:06 +00:00
pewdiepie-archdaemon
d749de2694
Fix failed task activity colors
2026-06-28 11:04:26 +00:00
nopoz
7f6044f0e5
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
fc994867fd
Reject blank ownerless claim owner ( #4929 )
2026-06-28 10:57:11 +01:00
Tal.Yuan
3441061345
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
7c77b43fb6
Fix mobile note archive action
2026-06-28 09:11:59 +00:00
pewdiepie-archdaemon
21998a891f
Avoid model endpoint probes on boot
2026-06-28 08:07:15 +00:00
pewdiepie-archdaemon
37ccfcc493
Make added models list cache-only
2026-06-28 07:10:55 +00:00
pewdiepie-archdaemon
40c33491de
Harden added models endpoint rendering
2026-06-28 05:29:25 +00:00