Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1932 commits
Select commit Hold shift + click to select a range
cc784db
Tint Ollama engine icon
pewdiepie-archdaemon Jun 27, 2026
fc6a6dc
Lower cookbook serve top row
pewdiepie-archdaemon Jun 27, 2026
ca7be0d
Adjust llama advanced top spacing
pewdiepie-archdaemon Jun 27, 2026
df9907c
fix(health): report unhealthy memory vector store as degraded
YAMRAJ13y Jun 27, 2026
989e083
Fine tune llama advanced spacing
pewdiepie-archdaemon Jun 27, 2026
f860dff
Tighten first llama advanced row gap
pewdiepie-archdaemon Jun 27, 2026
3c80d6a
Tighten llama memory row gap
pewdiepie-archdaemon Jun 27, 2026
5d42e76
Tighten llama memory row gap again
pewdiepie-archdaemon Jun 27, 2026
fc566cf
Stabilize llama advanced row spacing
pewdiepie-archdaemon Jun 27, 2026
0765c60
Lower stabilized llama advanced block
pewdiepie-archdaemon Jun 27, 2026
7212614
Increase llama mode toggle height
pewdiepie-archdaemon Jun 27, 2026
3f296e6
Nudge vllm attention field right
pewdiepie-archdaemon Jun 27, 2026
9eaf5b6
Darken cookbook launch command
pewdiepie-archdaemon Jun 27, 2026
1a0f096
Match launch command hover surface
pewdiepie-archdaemon Jun 27, 2026
4fa2002
Adjust CPU llama row and VRAM readout
pewdiepie-archdaemon Jun 27, 2026
d614675
Lower CPU llama memory row
pewdiepie-archdaemon Jun 27, 2026
d7193e7
Move vllm attention farther right
pewdiepie-archdaemon Jun 27, 2026
7246e41
Move vllm block size left
pewdiepie-archdaemon Jun 27, 2026
36c8a0a
Move vllm block size left again
pewdiepie-archdaemon Jun 27, 2026
ef7e5f9
Add icons to cookbook engine filter
pewdiepie-archdaemon Jun 27, 2026
1b0e0a1
Move core serve memory fields left
pewdiepie-archdaemon Jun 27, 2026
51aff00
Move core serve memory fields farther left
pewdiepie-archdaemon Jun 27, 2026
d37abae
Move core serve memory fields further left
pewdiepie-archdaemon Jun 27, 2026
61cf07e
Align runtime note with serve presets
pewdiepie-archdaemon Jun 27, 2026
e4fed9e
Adjust serve preset and memory field offsets
pewdiepie-archdaemon Jun 27, 2026
fe4aece
Move serve memory fields left again
pewdiepie-archdaemon Jun 27, 2026
2cf1e13
Clarify cookbook conda env support
pewdiepie-archdaemon Jun 27, 2026
9aed141
Adjust cookbook serve control spacing
pewdiepie-archdaemon Jun 27, 2026
f0b3c0b
Simplify cookbook scan use cases
pewdiepie-archdaemon Jun 27, 2026
a5eea9c
Toggle manual hardware edit button
pewdiepie-archdaemon Jun 27, 2026
d1ad95c
Set cookbook GPU buttons to 30px
pewdiepie-archdaemon Jun 27, 2026
fbe3a0d
fix(security): prevent ReDoS in XML and args tool-call parsers (#4941)
nopoz Jun 27, 2026
5f7de83
Nudge serve GPU selector left
pewdiepie-archdaemon Jun 27, 2026
259662e
test: split endpoint resolver tests (#4957)
alteixeira20 Jun 27, 2026
c114e76
Move vllm advanced fields closer
pewdiepie-archdaemon Jun 27, 2026
2ef44e4
Move vllm block size left
pewdiepie-archdaemon Jun 27, 2026
36898fb
Move serve preset row up
pewdiepie-archdaemon Jun 27, 2026
8b110c2
fix(tasks): keep scheduled-task prompt cache stable
hestiaOS Jun 27, 2026
de4c338
Lower serve preset buttons slightly
pewdiepie-archdaemon Jun 27, 2026
496544b
Clarify diffusers image editing support
pewdiepie-archdaemon Jun 27, 2026
0d84441
Lower cookbook engine filter button
pewdiepie-archdaemon Jun 27, 2026
ded57e5
Align serve backend controls
pewdiepie-archdaemon Jun 27, 2026
c95bbd6
Nudge serve engine control up
pewdiepie-archdaemon Jun 27, 2026
c01c095
fix(ai): offload model resolution from async paths
tanmayraut45 Jun 27, 2026
6bba539
Move vllm swap control left
pewdiepie-archdaemon Jun 27, 2026
36ba856
Fine tune vllm advanced offsets
pewdiepie-archdaemon Jun 27, 2026
63c07c2
Set vllm env preset width
pewdiepie-archdaemon Jun 27, 2026
a32c3f2
Adjust vllm preset and offsets
pewdiepie-archdaemon Jun 27, 2026
9782e5b
fix(cookbook): load user-site pth hooks for runtime installs
devpedrobarbosa Jun 28, 2026
ff0f1b3
fix(mcp): retain builtin startup tasks and reap npx probe
tanmayraut45 Jun 28, 2026
5b8bfda
fix(chat): sanitize web search query to strip markdown and code block…
rudra496 Jun 28, 2026
a690393
Reset mobile serve memory offsets
pewdiepie-archdaemon Jun 28, 2026
3aa48e9
Persist OCR captions in gallery
pewdiepie-archdaemon Jun 28, 2026
ac7cf67
Harden added models endpoint rendering
pewdiepie-archdaemon Jun 28, 2026
cbed87e
Make added models list cache-only
pewdiepie-archdaemon Jun 28, 2026
e58d970
Avoid model endpoint probes on boot
pewdiepie-archdaemon Jun 28, 2026
31dbc6b
Fix mobile note archive action
pewdiepie-archdaemon Jun 28, 2026
8066a8e
refactor(routes): move gallery domain into routes/gallery subpackage …
ydonghao Jun 28, 2026
827a6b2
Reject blank ownerless claim owner (#4929)
redpersongpt Jun 28, 2026
a7fc134
fix(security): prevent ReDoS in verdict-prose and continuation matche…
nopoz Jun 28, 2026
55661b8
Fix failed task activity colors
pewdiepie-archdaemon Jun 28, 2026
7fa3414
Fix expanded email attachment chip layout
pewdiepie-archdaemon Jun 28, 2026
2cf7f24
Keep PDF annotation controls hoverable
pewdiepie-archdaemon Jun 28, 2026
613a4c0
Close notes when opening documents
pewdiepie-archdaemon Jun 28, 2026
e018c7c
fix(cookbook): accept $(find) subshells in serve command validation
michaelxer Jun 28, 2026
bb2148d
refactor(routes): move research domain into routes/research/ subpackage
ydonghao Jun 28, 2026
7094c8e
Merge dev into main for testing
pewdiepie-archdaemon Jun 28, 2026
6b617f9
Move email writing style into AI settings
pewdiepie-archdaemon Jun 28, 2026
927b1f7
fix(llm): normalize OpenAI-compatible chat URLs
nikakhalatiani Jun 28, 2026
bfeea7f
fix(docs): correct broken backup-restore link in setup.md
michaelxer Jun 28, 2026
bad9ec2
test: localize calendar recurrence helper import (#4944)
alteixeira20 Jun 28, 2026
893e490
test: split provider endpoint tests (#4961)
alteixeira20 Jun 28, 2026
c0a68ac
Guard document style against persona guessing
pewdiepie-archdaemon Jun 28, 2026
4143bfa
Clear stale chat stream indicators
pewdiepie-archdaemon Jun 28, 2026
1e78ac9
Show busy spinner while deleting email
pewdiepie-archdaemon Jun 28, 2026
240768a
Show email delete overlay before request
pewdiepie-archdaemon Jun 28, 2026
4d90eb3
Show overlays during bulk email delete
pewdiepie-archdaemon Jun 28, 2026
3b6d771
Restore chat thumbnails and gallery OCR captions
pewdiepie-archdaemon Jun 29, 2026
402a277
Persist upload OCR captions in gallery
pewdiepie-archdaemon Jun 29, 2026
b419caf
Show chat uploads in gallery immediately
pewdiepie-archdaemon Jun 29, 2026
e2c8b8e
Allow stalled chat uploads to be cancelled
pewdiepie-archdaemon Jun 29, 2026
4a7c03d
Link gallery uploads back to chat
pewdiepie-archdaemon Jun 29, 2026
ff6359a
Restore cookbook download task progress
pewdiepie-archdaemon Jun 29, 2026
5d5500f
Keep open editor drafts in chat context
pewdiepie-archdaemon Jun 29, 2026
b712a0a
Reuse open email drafts for agent replies
pewdiepie-archdaemon Jun 29, 2026
a6b6a22
Clarify empty AI reply errors
pewdiepie-archdaemon Jun 29, 2026
2a28bb2
Fix added models probe button
pewdiepie-archdaemon Jun 29, 2026
92cfb2a
Retry blank email AI replies
pewdiepie-archdaemon Jun 29, 2026
89119a8
Persist email AI reply context notes
pewdiepie-archdaemon Jun 29, 2026
783ea99
Show cached model scan failures
pewdiepie-archdaemon Jun 29, 2026
9731048
Ignore non-string mail CLI recipients (#1824)
redpersongpt Jun 29, 2026
dff7931
Normalize gallery CLI text fields (#2012)
redpersongpt Jun 29, 2026
a326a6a
Skip invalid notes CLI item rows (#2005)
redpersongpt Jun 29, 2026
3021569
Reject non-string atomic text writes (#1819)
redpersongpt Jun 29, 2026
840e59c
Gate background tasks behind foreground activity
pewdiepie-archdaemon Jun 29, 2026
ff6fd3e
Fix task status toggle hit target
pewdiepie-archdaemon Jun 29, 2026
19e2326
Rescue plain UI open-panel tool text
pewdiepie-archdaemon Jun 29, 2026
46b127b
Implement email auto translate cache task
pewdiepie-archdaemon Jun 29, 2026
139d76a
Reject resolver results without IPs (#1826)
redpersongpt Jun 29, 2026
d2a6d73
Ignore invalid serve profile inputs (#1827)
redpersongpt Jun 29, 2026
00dfd2d
Keep snap helper safe without context (#1828)
redpersongpt Jun 29, 2026
387f951
Ignore invalid harmonize mask layers (#1829)
redpersongpt Jun 29, 2026
bbbe145
Ignore non-string personal doc text (#1832)
redpersongpt Jun 29, 2026
df9c20e
Ignore invalid context budget numbers (#1831)
redpersongpt Jun 29, 2026
2d9c081
Lengthen email loading skeleton rows
pewdiepie-archdaemon Jun 29, 2026
a87d0bf
Add task email output sender controls
pewdiepie-archdaemon Jun 30, 2026
24c2c43
Speed up task activity load
pewdiepie-archdaemon Jun 30, 2026
a51f65e
Lazy load startup task and email work
pewdiepie-archdaemon Jun 30, 2026
c987200
Fix incognito agent mode and cookbook tmux preview
pewdiepie-archdaemon Jun 30, 2026
80ac782
Gate email auto translate behind active chat
pewdiepie-archdaemon Jun 30, 2026
f91c0c4
Pause background tasks while Odysseus is active
pewdiepie-archdaemon Jun 30, 2026
ec8ef3e
Auto scan cookbook hardware when cache is missing
pewdiepie-archdaemon Jun 30, 2026
2469d81
Add hover labels to mini sidebar buttons
pewdiepie-archdaemon Jun 30, 2026
699dbc6
Cancel background tasks when Odysseus becomes active
pewdiepie-archdaemon Jun 30, 2026
b8338b2
Improve document agent streaming and chat metrics
pewdiepie-archdaemon Jun 30, 2026
a72ec0c
Show thumbnails on past research cards
pewdiepie-archdaemon Jun 30, 2026
838cacf
Fix task activity scrolling and background spam
pewdiepie-archdaemon Jun 30, 2026
6ae3b6e
Move task start-now pill up
pewdiepie-archdaemon Jun 30, 2026
e131245
Merge remote-tracking branch 'origin/dev'
pewdiepie-archdaemon Jun 30, 2026
7854298
Write email replies into open composer
pewdiepie-archdaemon Jun 30, 2026
b5ea5a1
Preserve quoted email history during AI edits
pewdiepie-archdaemon Jun 30, 2026
4f387e0
Speed up email composer typing
pewdiepie-archdaemon Jun 30, 2026
baecea2
Keep email composer open during fast edits
pewdiepie-archdaemon Jun 30, 2026
0cdbdf4
Fallback model picker to available model
pewdiepie-archdaemon Jun 30, 2026
6127e43
Preserve HTML email quote history
pewdiepie-archdaemon Jun 30, 2026
d8e7600
Hide font size in markdown preview
pewdiepie-archdaemon Jun 30, 2026
69b9bb0
fix(agent): execute fenced tool calls with inline args and route bare…
botinate Jun 30, 2026
41420c5
refactor(routes): move memory domain into routes/memory/ subpackage (…
ydonghao Jun 30, 2026
3d75fad
fix(security): apply sensitive-file deny-list to grep tool (#5011) (#…
michaelxer Jun 30, 2026
ba43c73
fix(agent): confine glob literal lookups to the search root (#5010)
ashvinctrl Jun 30, 2026
005ff73
fix(security): wrap email style, integration, and MCP descriptions as…
cjRem44x Jun 30, 2026
9a80ab2
fix(model-context): read real context window for unknown proxy models…
ashvinctrl Jun 30, 2026
2412db1
fix(security): harden gallery endpoint URL checks (#4981)
alteixeira20 Jun 30, 2026
1c1afe5
fix: add grace period to document tidy to prevent deleting new docume…
badgerbees Jun 30, 2026
f38323c
fix(docker): make host Docker socket opt-in (#4902)
alteixeira20 Jun 30, 2026
7522b02
fix(parser): parse Gemma 3/4 custom tool calling tokens (#5033)
Katsoragi Jun 30, 2026
d85afd5
fix(agent): preserve bare email tool parity (#5075)
RaresKeY Jun 30, 2026
d2959c1
Stabilize chat and cookbook workflows
pewdiepie-archdaemon Jul 1, 2026
39eabbb
Merge remote-tracking branch 'origin/dev'
pewdiepie-archdaemon Jul 1, 2026
a07bbec
Repair document tool args and metrics cleanup
pewdiepie-archdaemon Jul 1, 2026
2918739
Fix merged test regressions
pewdiepie-archdaemon Jul 1, 2026
dc3530b
Show fallback model in picker
pewdiepie-archdaemon Jul 1, 2026
265f091
Support mobile enter for queued agent prompts
pewdiepie-archdaemon Jul 1, 2026
e157f1e
fix(cookbook): stop Ollama runner from executing the install one-line…
mazen-salah Jul 2, 2026
260f432
fix(session): use utcnow_naive across session routes (#1116) (#5003)
lekt9 Jul 2, 2026
b26ebbd
fix(security): match the sensitive-file deny-list case-insensitively …
ashvinctrl Jul 2, 2026
dff91ef
fix(agent): skip deny-listed sensitive files in glob (#5094)
ashvinctrl Jul 2, 2026
88191d1
fix: auto-spam move/delete targets the wrong message (seqnum vs UID) …
afonsopc Jul 2, 2026
b1f9f67
fix(security): confine research file paths (#4986)
alteixeira20 Jul 2, 2026
5e9b415
fix(search): pin httpx connection to resolved IP to block DNS rebindi…
ErnestHysa Jul 2, 2026
0dc98ec
fix(ui): prevent race condition in default chat model dropdown init (…
holden093 Jul 2, 2026
8c94322
fix(mobile): stack the model-comparison grid into one column on phone…
BrunooMoniz Jul 2, 2026
9718f78
Fix stale streams and cookbook task controls
pewdiepie-archdaemon Jul 3, 2026
0fc98c4
Add bulk email attachment downloads
pewdiepie-archdaemon Jul 3, 2026
5777cf2
Add AI edit command box to gallery editor
pewdiepie-archdaemon Jul 3, 2026
c89258e
Open documents from native tool outputs
pewdiepie-archdaemon Jul 3, 2026
d360401
Route structured writing requests to documents
pewdiepie-archdaemon Jul 3, 2026
79716d7
Keep open document context for section edits
pewdiepie-archdaemon Jul 3, 2026
cf85c42
Parse local function_model tool wrappers
pewdiepie-archdaemon Jul 3, 2026
5f6e6a2
Hide untagged reasoning dumps in chat
pewdiepie-archdaemon Jul 3, 2026
7f43678
fix(tools): handle non-dict JSON values in _parse_tool_args (closes #…
Tanmay9223 Jul 3, 2026
ff7164b
fix: resolve RAG manager search signature TypeError (#4994)
fatahjamro Jul 3, 2026
b7df800
fix(agent): fall back to keyword tool selection when retrieval times out
QlikChrister Jul 3, 2026
0b3338c
test: split service health tests (#4972)
alteixeira20 Jul 3, 2026
1f6dc80
ci: add focused test guidance signal (#4982)
alteixeira20 Jul 3, 2026
d3ab478
fix(integrations): don't append a trailing slash when api_call path i…
harshit-ojha0324 Jul 3, 2026
43ead1a
fix(security): scope send_to_session to an exact session owner
ashvinctrl Jul 4, 2026
6f6cb6e
refactor(routes): move history domain into routes/history/ subpackage…
ydonghao Jul 4, 2026
5c16d39
fix(calendar): honor list_events date range aliases (#3283)
badgerbees Jul 4, 2026
a3bbe37
Merge pull request #5195 from ashvinctrl/fix/send-to-session-null-owner
alteixeira20 Jul 4, 2026
d3faa00
fix(security): match grep's rg sensitive-file exclusions case-insensi…
ashvinctrl Jul 4, 2026
3dd031c
fix(security): validate integration api_call URLs with the outbound S…
wbaxterh Jul 4, 2026
6114ef0
fix(security): pin webhook delivery to the SSRF-validated IP (DNS reb…
wbaxterh Jul 4, 2026
897e695
fix(security): apply the webhook SSRF guard to the reminder ntfy send…
wbaxterh Jul 4, 2026
439285e
fix(search): extract non-ASCII capitalized names in _extract_entities
Ohualtex Jul 4, 2026
e3750fc
fix(security): make research path lookup CodeQL-friendly (#5129)
alteixeira20 Jul 4, 2026
7d481b2
Merge pull request #5204 from Ohualtex/fix/search-query-unicode-entit…
bitboody Jul 4, 2026
440d99d
Merge pull request #5166 from QlikChrister/fix/tool-rag-timeout-keywo…
bitboody Jul 4, 2026
d8d98ca
fix(security): sanitize email rich body render path (#5212)
undergroundrap Jul 4, 2026
a50e30c
test(integrations): drop redundant trailing-slash assertion
harshit-ojha0324 Jul 4, 2026
264da65
fix(chat): honor explicit web search denial
Jul 4, 2026
a052215
Merge pull request #5181 from harshit-ojha0324/fix/webhook-trailing-s…
bitboody Jul 5, 2026
9dc0d66
Merge pull request #5222 from RaresKeY/fix/chat-web-search-deny-20260704
bitboody Jul 5, 2026
5acd0ce
refactor(routes): move contacts domain into routes/contacts/ subpacka…
ydonghao Jul 5, 2026
c8169ad
fix(security): scope owner-less email accounts to a mailbox match in …
ashvinctrl Jul 5, 2026
3592285
fix(email): enforce MCP account owner scope (#5234)
RaresKeY Jul 5, 2026
2826dcf
fix(tasks): gate cookbook serve task execution (#5235)
RaresKeY Jul 5, 2026
35f867c
Merge pull request #4983 from michaelxer/fix-setup-link-4926-20260628
bitboody Jul 6, 2026
017903d
Checkpoint Odysseus local update
pewdiepie-archdaemon Jul 7, 2026
b5ec40d
Merge remote-tracking branch 'origin/dev'
pewdiepie-archdaemon Jul 7, 2026
038bdd8
Stabilize local dev merge
pewdiepie-archdaemon Jul 7, 2026
168f593
Fix Cookbook download runner for Python 3.11
pewdiepie-archdaemon Jul 7, 2026
c67deaa
Merge pull request #5283 from pewdiepie-archdaemon/sync-main-into-dev…
pewdiepie-archdaemon Jul 7, 2026
dd68e2a
fix(docker): detect snap+WSL2 GPU passthrough incompatibility, docume…
tse-jeff Jul 7, 2026
2d81770
fix(chat): restore missing _explicit_web_intent definition (#5290)
SteveHolloway71 Jul 8, 2026
54f1d01
fix(chat): require explicit web search enable
RaresKeY Jul 8, 2026
3064819
fix(chat): give extensionless image/audio uploads a valid MIME subtyp…
Ohualtex Jul 8, 2026
5e50a3e
docs(docker): polish WSL2 snap GPU guidance
RaresKeY Jul 8, 2026
a35384e
fix(copilot): guard request_flags against a non-dict last message (#5…
wbaxterh Jul 8, 2026
d88c8cb
Merge pull request #5313 from RaresKeY/fix/chat-web-search-explicit-deny
bitboody Jul 8, 2026
807e92c
docs: remove completed troubleshooting cookbook task from ROADMAP (#4…
wbaxterh Jul 10, 2026
4901a96
fix(reminders): sanitize ntfy Title header to ASCII (#5208)
Am-GJ Jul 10, 2026
a8d215a
fix(tasks): scope manage_tasks mutations to an exact task owner (#5264)
ashvinctrl Jul 11, 2026
7a1c739
fix: hwfit params_b/is_prequantized crash on non-string catalog field…
afonsopc Jul 11, 2026
7b25b6d
fix: odysseus-memory cmd_add crashes on non-dict existing memory row …
afonsopc Jul 11, 2026
667f9e4
fix: _matchesCombo crashes on non-string keybind from server (#2049)
afonsopc Jul 11, 2026
def3483
fix: TTS available crashes on non-string tts_provider (#2034)
afonsopc Jul 11, 2026
e0fd681
fix(email): never fall back to sequence-number IMAP ops for move/flag…
davieduard0x01 Jul 11, 2026
21c7bf8
fix(email): atomically claim scheduled emails before sending (#5110)
jagadish-zentiti Jul 11, 2026
bc771fb
fix(mcp): guard DbTokenStorage against non-dict oauth_tokens JSON (#5…
jagadish-zentiti Jul 11, 2026
6efc07c
Skip vanished backup list entries (#2006)
redpersongpt Jul 11, 2026
e6d9d68
CalDAV: close the DAVClient on sync and write-back paths (#4793)
tanmayraut45 Jul 11, 2026
1f8687a
fix(calendar): trust operator CA bundle in CalDAV test_connection (#4…
wbaxterh Jul 11, 2026
890d6a0
fix(agent): cancel orphaned tool task when SSE client disconnects mid…
jagadish-zentiti Jul 11, 2026
2531ba4
fix(chat): Expand user chat bubble edit textbox width (#3963)
dltechy Jul 11, 2026
801c3a2
fix(email): use UID commands instead of sequence numbers in IMAP fetc…
pkarlsson-codes Jul 11, 2026
732b207
fix(email): clear bulk selection on context change (#5229)
RaresKeY Jul 11, 2026
7f3fd77
fix: preserve pythonpath for built-in mcp servers (#5117)
RaresKeY Jul 11, 2026
b571c7d
fix(markdown): stop currency dollars rendering as KaTeX inline math (…
TuanKietTran Jul 11, 2026
6b8f845
fix(llm): avoid blocking Kimi Code async header probes (#5231)
RaresKeY Jul 11, 2026
d16b849
fix(stabilization): harden attachment lifecycle and agent guard signa…
falabellamichael Jul 11, 2026
f13e54d
fix(cleanup): update MODULE_SUMMARY and remove dead MEMORY_DOC paths …
eyeofastarte Jul 11, 2026
df2fad2
fix(db): restrict data/app.db to 0600 (#4420)
0xLeathery Jul 11, 2026
5435349
fix(chat): restore missing _explicit_web_intent definition (#5290)
SteveHolloway71 Jul 8, 2026
724305b
fix(chat): require explicit web search enable
RaresKeY Jul 8, 2026
9844a2f
chore(release): bump version to 1.0.2
RaresKeY Jul 11, 2026
5971b09
fix(mcp_manager): implement concurrent server connections with timeou…
bitboody Jul 8, 2026
c1d6287
fix(mcp_manager): remove timeout from MCP connection attempts and han…
bitboody Jul 12, 2026
c80462e
fix(skills): block private SSRF targets and revalidate redirects in i…
EmirCobanOfficial Jul 14, 2026
28d27ee
docs(setup): document Arch NVIDIA Docker GPU setup
bananatruck Jul 16, 2026
047dbf9
Merge pull request #2 from abandonrule/sync/upstream-20260717-odysseus
ap0ught Jul 17, 2026
9aa593b
Merge branch 'odysseus-dev:main' into main
ap0ught Jul 17, 2026
90408e0
fix(docker): bump Docker CLI to a patched release
cmayfield Jul 17, 2026
fae3bfc
Merge pull request #3 from abandonrule/fix-docker-cli-cves
abandonrule Jul 17, 2026
f87107e
Merge pull request #5580 from abandonrule/main
bitboody Jul 18, 2026
4f04c34
feat(models): define capability schema and readers (#2739)
RaresKeY Jul 18, 2026
09d4fec
test(email): cover agent draft owner isolation (#5226)
RaresKeY Jul 18, 2026
6c4cb24
test(cookbook): cover adopt remote host validation (#5225)
RaresKeY Jul 18, 2026
2006c90
chore(release): bump dev version to 1.0.2 (#5473)
RaresKeY Jul 18, 2026
37a831b
fix(url-safety): reject RFC 6598 shared address space in strict mode …
StressTestor Jul 18, 2026
68ba51c
fix(llm): enhance fallback logic to handle empty completions and impr…
Abhiiishek44 Jul 18, 2026
58f0c26
fix: services research source extraction crashes on a non-dict findin…
afonsopc Jul 20, 2026
e57f60b
refactor(routes): move note domain into routes/note/ subpackage (#5236)
ydonghao Jul 20, 2026
bda7f40
chore: update repository URLs after organization transfer (#5622)
RaresKeY Jul 20, 2026
8f0eaf8
refactor(routes): move cleanup domain into routes/cleanup/ subpackage…
ydonghao Jul 21, 2026
ec0805a
refactor(routes): move admin_wipe domain into routes/admin_wipe/ subp…
ydonghao Jul 21, 2026
76ff5cb
refactor(routes): move compare domain into routes/compare/ subpackage…
ydonghao Jul 21, 2026
c854b0b
Merge pull request #5286 from tse-jeff/fix/snap-wsl2-gpu-passthrough
bitboody Jul 21, 2026
d7ecdf1
ci: add CodeQL advanced setup to scan pull requests before merge (#5250)
nopoz Jul 21, 2026
a16ac07
refactor(routes): move search domain into routes/search/ subpackage
ydonghao Jul 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
13 changes: 13 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,17 @@ __pycache__/
dist/
build/
.env
.env.bak.*
# Secrets: keep plaintext and every transient secrets.env variant out of
# the build context. If an encrypted secrets.env is used, it is mounted
# at runtime — never baked into the image. Mirrored in .gitignore.
secrets.env
secrets.env.*
secrets.env~
.secrets.env.swp
.secrets.env.swo
**/#secrets.env#
!secrets.env.example
/data/
/logs/
.git/
Expand All @@ -18,6 +29,8 @@ build/
.vscode/
.idea/
dev-docs/
docs/
*.md
*.db
*.sqlite
*.sqlite3
Expand Down
98 changes: 98 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,27 @@ LLM_HOST=localhost
# when started with OLLAMA_HOST=0.0.0.0:11434.
# OLLAMA_BASE_URL=http://host.docker.internal:11434/v1

# Optional LM Studio URL. In Docker, host LM Studio is reachable here
# when LM Studio is set to serve on all interfaces (0.0.0.0).
# LM_STUDIO_URL=http://host.docker.internal:1234

# OpenAI API key (only needed if using OpenAI models).
# Do not commit real keys. Keep this commented until needed.
# OPENAI_API_KEY=your_openai_api_key_here

# Research service LLM endpoint
# RESEARCH_LLM_ENDPOINT=http://localhost:8000/v1/chat/completions

# Extra CA bundle for LLM providers whose TLS chain isn't in the default
# trust store. Layered ON TOP of the system / certifi bundle — verification
# stays on for every host, the trust set just gets larger. Useful for:
# - GigaChat / Sber (Russian Trusted Root CA): without this the endpoint
# shows offline with CERTIFICATE_VERIFY_FAILED — self-signed certificate
# in certificate chain.
# - On-premise / corporate LLM gateways with an internal CA.
# Point at a PEM file containing the missing root(s).
# LLM_CA_BUNDLE=/etc/odysseus/ca/extra-roots.pem

# ============================================================
# Search & Web
# ============================================================
Expand All @@ -42,17 +56,34 @@ SEARXNG_INSTANCE=http://localhost:8080
# SQLite database path (default: sqlite:///./data/app.db)
# DATABASE_URL=sqlite:///./data/app.db

# ============================================================
# Data directory
# ============================================================
# Move everything that lives under data/ - settings, sessions, database, auth,
# cache, uploads, etc. - to another path:
# ODYSSEUS_DATA_DIR=C:\path\to\dir

# ============================================================
# Auth & Security
# ============================================================

# Enable authentication (default: true)
# AUTH_ENABLED=true

# Host bind address and port for the Odysseus web UI in Docker Compose.
# Keep APP_BIND on loopback unless you intentionally want LAN/reverse-proxy access.
# APP_BIND=127.0.0.1
# Change this if another local service already uses 7000 (macOS AirPlay often does).
# APP_PORT=7000

# Development-only auth bypass for loopback requests.
# Keep false for Docker, LAN, reverse proxy, and any shared deployment.
# LOCALHOST_BYPASS=false

# Mark session cookies Secure. Set true when Odysseus is served through HTTPS
# by a trusted reverse proxy or private access gateway.
# SECURE_COOKIES=true

# Optional: pre-seed the first admin password during setup.
# Do not commit a real password.
# ODYSSEUS_ADMIN_PASSWORD=change_me_before_first_boot
Expand Down Expand Up @@ -88,6 +119,9 @@ SEARXNG_INSTANCE=http://localhost:8080
# Default: http://{LLM_HOST}:11434/v1/embeddings (ollama)
# EMBEDDING_URL=http://localhost:11434/v1/embeddings

# Embedding API key (if there's one)
# EMBEDDING_API_KEY=embedding_api_key_here

# Embedding model name (must be available at the endpoint above)
# EMBEDDING_MODEL=all-minilm:l6-v2

Expand Down Expand Up @@ -119,3 +153,67 @@ SEARXNG_INSTANCE=http://localhost:8080
# Empty/local/localhost runs scripts on the app host. Set to an SSH host alias
# if you intentionally want scheduled scripts to run remotely.
# ODYSSEUS_SCRIPT_HOST=localhost

# Chat / agent attachment size cap in bytes (default: 10 MB).
# Raise this for local installs that need larger PDFs or text documents.
# Example: 52428800 = 50 MB.
# ODYSSEUS_CHAT_UPLOAD_MAX_BYTES=10485760

# Other per-feature upload size caps in bytes. All are validated and optional;
# defaults shown. An invalid value (non-integer or < 1) fails fast at startup.
# ODYSSEUS_GALLERY_UPLOAD_MAX_BYTES=104857600 # gallery image upload (100 MB)
# ODYSSEUS_GALLERY_TRANSFORM_UPLOAD_MAX_BYTES=26214400 # gallery transform input (25 MB)
# ODYSSEUS_MEMORY_IMPORT_MAX_BYTES=10485760 # memory import file (10 MB)
# ODYSSEUS_PERSONAL_UPLOAD_MAX_BYTES=26214400 # personal document upload (25 MB)
# ODYSSEUS_EMAIL_COMPOSE_UPLOAD_MAX_BYTES=26214400 # email compose attachment (25 MB)
# ODYSSEUS_STT_MAX_AUDIO_BYTES=26214400 # speech-to-text audio (25 MB)
# ODYSSEUS_ICS_MAX_BYTES=10485760 # calendar .ics import (10 MB)

# ============================================================
# Host Docker access (explicit opt-in)
# ============================================================
# Default Docker Compose does not mount /var/run/docker.sock. Existing
# Ollama, vLLM, and other OpenAI-compatible endpoints remain usable without it.
#
# Enable this only for intentional Cookbook/local Docker-daemon management.
# Raw socket access is high-trust and can grant broad control over the host
# Docker daemon. Set DOCKER_GID to the host docker group's numeric GID.
# Put these values in .env, or export them before running docker compose.
# COMPOSE_FILE=docker-compose.yml:docker/host-docker.yml
# DOCKER_GID=963
# docker/host-docker.yml sets this inside the container. Keep it paired
# with the socket overlay; setting it alone is not sufficient.
# ODYSSEUS_ENABLE_HOST_DOCKER=true
#
# Host Docker access can be combined with one GPU overlay:
# COMPOSE_FILE=docker-compose.yml:docker/gpu.nvidia.yml:docker/host-docker.yml
# COMPOSE_FILE=docker-compose.yml:docker/gpu.amd.yml:docker/host-docker.yml

# ============================================================
# GPU support (Docker Compose)
# ============================================================
# Pass the host GPU into the odysseus container. Default (unset) = CPU.
# COMPOSE_FILE is a native `docker compose` feature: a colon-separated
# list of files merged left-to-right. Pick ONE GPU line below, or leave
# all commented for CPU.
#
# NVIDIA (requires nvidia-container-toolkit + `nvidia-ctk runtime
# configure --runtime=docker` on the host):
# COMPOSE_FILE=docker-compose.yml:docker/gpu.nvidia.yml
# COMPOSE_FILE=docker-compose.yml;docker/gpu.nvidia.yml #(Windows)
#
# AMD ROCm (requires ROCm drivers on the host and the GID of the render group):
# COMPOSE_FILE=docker-compose.yml:docker/gpu.amd.yml
# Find the render GID with: getent group render | cut -d: -f3
# RENDER_GID=989
#
# These overlays only expose the GPU devices. The slim Odysseus image
# still needs CUDA/ROCm userspace via Cookbook -> Dependencies (vLLM,
# llama-cpp-python, etc.) before models can actually serve on GPU.

# ============================================================
# Storage Paths (Docker Compose)
# ============================================================

# APP_DATA_DIR=./data
# APP_LOGS_DIR=./logs
27 changes: 26 additions & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
@@ -1,2 +1,27 @@
*.sh text eol=lf
# Normalize line endings so a Windows checkout (git core.autocrlf=true) can't
# corrupt shell-script shebangs. A CRLF `#!/bin/sh\r` makes the kernel look for
# an interpreter literally named "/bin/sh\r", producing the Docker startup error
# "exec /usr/local/bin/entrypoint.sh: no such file or directory" (issues #150, #77).
* text=auto

# Shell scripts must stay LF on every platform (run by sh/bash, incl. in Docker).
*.sh text eol=lf
*.bash text eol=lf
entrypoint.sh text eol=lf
docker/entrypoint.sh text eol=lf

# Windows-native scripts stay CRLF.
*.ps1 text eol=crlf
*.cmd text eol=crlf
*.bat text eol=crlf

# Binary assets — never normalize.
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.webp binary
*.pdf binary
*.ico binary
*.woff binary
*.woff2 binary
9 changes: 9 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Code owners.
#
# Intentionally empty for now. The catch-all rule that mapped every path to a
# single owner froze all merges the moment "Require review from Code Owners"
# was enabled, because no other maintainer's approval could satisfy the gate.
# A per-area ownership map (security/auth, CI, frontend, agent internals, with
# multiple named owners per line) is being worked out in issue #593; once
# agreed it replaces this file. Until then, required reviews and the security
# CI gate (docs/security-ci.md) remain in force via branch protection.
114 changes: 114 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
name: Bug Report
description: Report a reproducible bug in Odysseus.
labels: ["bug"]

body:
- type: markdown
attributes:
value: |
**Before submitting:** search [open issues](https://github.com/odysseus-dev/odysseus/issues)
and [discussions](https://github.com/odysseus-dev/odysseus/discussions) first.
Duplicate reports slow things down.

For security vulnerabilities, **do not open a public issue** —
use [GitHub Security Advisories](https://github.com/odysseus-dev/odysseus/security/advisories/new)
and read [SECURITY.md](https://github.com/odysseus-dev/odysseus/blob/main/SECURITY.md) first.

- type: checkboxes
id: prerequisites
attributes:
label: Prerequisites
options:
- label: I searched [open issues](https://github.com/odysseus-dev/odysseus/issues?q=is%3Aissue+is%3Aopen) and [discussions](https://github.com/odysseus-dev/odysseus/discussions) and did not find an existing report of this bug.
required: true
- label: This is **not** a security vulnerability. (Vulnerabilities go to [GitHub Security Advisories](https://github.com/odysseus-dev/odysseus/security/advisories/new) — see [SECURITY.md](https://github.com/odysseus-dev/odysseus/blob/main/SECURITY.md).)
required: true
- label: I am running the latest code from the `dev` branch (the default branch you get on clone, where fixes land first) and the bug still reproduces there. Please `git pull` the latest `dev` before filing.
required: true

- type: dropdown
id: install-method
attributes:
label: Install Method
options:
- "-- Please Select --"
- Docker (docker compose up)
- Manual Python install (pip / venv)
- Windows native (launch-windows.ps1)
- macOS app (build-macos-app.sh / start-macos.sh)
- Other (describe in the reproduction steps below)
validations:
required: true

- type: dropdown
id: os
attributes:
label: Operating System
options:
- "-- Please Select --"
- Linux
- macOS
- Windows
- Other
validations:
required: true

- type: textarea
id: steps
attributes:
label: Steps to Reproduce
description: Exact steps that reliably trigger the bug. The more specific, the faster this gets fixed.
placeholder: |
1. Go to ...
2. Click / type ...
3. Observe ...
validations:
required: true

- type: textarea
id: expected
attributes:
label: Expected Behaviour
description: What should have happened?
validations:
required: true

- type: textarea
id: actual
attributes:
label: Actual Behaviour
description: What actually happened? Include the full error message if there is one.
validations:
required: true

- type: textarea
id: logs
attributes:
label: Logs / Screenshots
description: Paste relevant terminal output or attach screenshots. Remove API keys, passwords, and personal data before pasting.
render: text

- type: input
id: model-backend
attributes:
label: Model / Backend (if relevant)
description: "e.g. Ollama + llama3.2:latest, vLLM + mistral-7b, OpenAI API, Anthropic API"
placeholder: "Ollama + llama3.2:latest"

- type: dropdown
id: willing_to_fix
attributes:
label: Are you willing to submit a fix?
options:
- "-- Please Select --"
- "Yes — I can open a PR"
- "Partially — I can help but need guidance"
- "No — I am only filing the report"
validations:
required: true

- type: textarea
id: additional-info
attributes:
label: Additional Information
description: Anything else that might help — browser console errors, related issues, things you already tried, or environment quirks.
13 changes: 13 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
blank_issues_enabled: false
contact_links:
- name: Question / Need Help
url: https://github.com/odysseus-dev/odysseus/discussions/categories/q-a
about: Ask how-to questions, setup help, and model configuration questions here. Issues are for confirmed bugs and concrete proposals only.

- name: Idea or Suggestion
url: https://github.com/odysseus-dev/odysseus/discussions/categories/ideas
about: Discuss ideas and gauge interest before opening a formal feature request. If there is already a discussion, link it in your feature request.

- name: Security Vulnerability
url: https://github.com/odysseus-dev/odysseus/security/advisories/new
about: Report vulnerabilities privately via GitHub Security Advisories — never as a public issue. Read SECURITY.md before reporting.
Loading
Loading