Skip to content

Commit d8a2059

Browse files
Merge verified Odysseus fixes
1 parent 4c9a8ca commit d8a2059

117 files changed

Lines changed: 15677 additions & 3175 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Dockerfile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ FROM python:3.14-slim
1616
# downloads, and serves from Docker installs.
1717
# git/cmake are required when Cookbook builds llama.cpp on first llama.cpp
1818
# launch inside Docker.
19-
# nodejs/npm provide npx for the optional built-in Browser MCP server.
19+
# nodejs/npm provide npx for the built-in Browser MCP server.
20+
# chromium provides the actual browser binary used by that MCP server.
2021
# gosu lets the entrypoint drop privileges cleanly so signals still reach
2122
# uvicorn directly (no extra shell layer like `su`/`sudo` would add).
2223
RUN apt-get update && apt-get install -y --no-install-recommends \
@@ -26,6 +27,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
2627
git \
2728
nodejs \
2829
npm \
30+
chromium \
2931
tmux \
3032
openssh-client \
3133
gosu \

ROADMAP.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,14 @@ the codebase, you are probably right to stay away.
3232
before the user request really starts. We need slimmer prompts, better tool
3333
selection, smaller default tool sets, and clearer guidance for models with
3434
4k/8k/16k context windows.
35+
- Local model speculative decoding support. For Odysseus-tuned local models,
36+
plan to ship or recommend a small same-tokenizer draft model when the serving
37+
backend supports it. Early vLLM testing showed a generic `Qwen3-0.6B` draft
38+
beside `Qwen3-8B` can materially reduce wall time, while an unsupported
39+
DSpark conversion performed poorly. Treat this as a supported draft-model lane
40+
first; keep MTP-specific packaging as future work only when the architecture
41+
and runtime support are real. Judge this by time-to-success, tool correctness,
42+
grammar, and unchanged target output, not tokens/sec alone.
3543
- Skill/tool prompt-injection audit. User-editable skills, notes, documents,
3644
fetched pages, and memories should be treated as untrusted data. Keep testing
3745
whether models follow malicious instructions from those surfaces.

core/session_manager.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -543,6 +543,12 @@ def delete_session(self, session_id: str) -> bool:
543543
"""Permanently delete a session and all its messages."""
544544
db = SessionLocal()
545545
try:
546+
try:
547+
from src.session_image_cleanup import cleanup_session_images
548+
cleanup_session_images(session_id, db=db)
549+
except Exception as e:
550+
logger.warning(f"Image cleanup failed while deleting session {session_id}: {e}")
551+
546552
# Detach documents so they survive as orphans in the library
547553
db.query(DbDocument).filter(DbDocument.session_id == session_id).update(
548554
{DbDocument.session_id: None}, synchronize_session=False

0 commit comments

Comments
 (0)