Commit graph

1798 commits

Author SHA1 Message Date
pewdiepie-archdaemon
2f6c7cda2d Cancel background tasks when Odysseus becomes active 2026-06-30 04:23:04 +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
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
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
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
pewdiepie-archdaemon
6fb85845c0 Persist OCR captions in gallery 2026-06-28 04:50:20 +00:00
pewdiepie-archdaemon
fb6447d188 Reset mobile serve memory offsets 2026-06-28 01:05:08 +00:00
Rudra Sarker
27b3d432ee 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