Commit Graph
100 Commits
Author SHA1 Message Date
pewdiepie-archdaemon 06a0d3ce92 Reapply "Merge branch 'main' of github.com:pewdiepie-archdaemon/odysseus"
This reverts commit 67bf3f6b78.
2026-06-03 22:47:00 +09:00
pewdiepie-archdaemon 67bf3f6b78 Revert "Merge branch 'main' of github.com:pewdiepie-archdaemon/odysseus"
This reverts commit 3a790b792b, reversing
changes made to 082aa4ee48.
2026-06-03 22:46:19 +09:00
pewdiepie-archdaemon 3a790b792b Merge branch 'main' of github.com:pewdiepie-archdaemon/odysseus 2026-06-03 22:39:33 +09:00
pewdiepie-archdaemon 082aa4ee48 Codex Agent integration: HTTP surface + plugin bundle + Settings UI
This persists work that had been living only in the cookbook docker
container's writable layer — never committed to the host source. Brought
back to git intact, app.py registration re-applied surgically on top of
current main (not the older container copy, which would have regressed
the Windows MIME fix, asynccontextmanager lifespan, and webhook auth
exempts).

routes/codex_routes.py (new):
- GET  /api/codex/capabilities  — what this Odysseus exposes.
- GET  /api/codex/plugin.zip    — downloads integrations/codex as a zip.
- GET  /api/codex/todos         — scope-gated todos:read|write.
- POST /api/codex/todos         — scope-gated todos:write.
- GET  /api/codex/emails        — scope-gated email:read|draft|send.
- GET  /api/codex/emails/{uid}  — single-message fetch.
- _scope_owner() enforces api_token scopes before touching user data.

routes/api_token_routes.py (+103 lines):
- Adds Codex-token-specific issuance + revocation paths.

integrations/codex/ (new bundle, shipped via /api/codex/plugin.zip):
- README.md                       — install instructions.
- .codex-plugin/plugin.json       — Codex plugin manifest.
- scripts/odysseus_api.py         — Python client used by the skill.
- skills/odysseus/SKILL.md        — Codex skill definition.

static/js/settings.js (+253 lines):
- New "Codex Agent" option in the Integrations dropdown.
- Add / edit panel with plugin-bundle download link + curl-with-token
  install instructions per agent.

app.py:
- 7-line surgical change: capture email_router = setup_email_routes()
  and register setup_codex_routes(email_router=email_router) after the
  email module so the Codex routes can borrow its helpers.
2026-06-03 22:38:05 +09:00
pewdiepie-archdaemon 36b526979f Cookbook polish: auto-reconnect, ctx slider fixes, scoring, lots of UI
Backend (services/hwfit + routes):
- VRAM column sort now shows global highest first (was special-cased to
  ascending then truncated top-N, which made "highest VRAM" mathematically
  unreachable). Every column path uses reverse=True for the truncation.
- Hardware probe cache TTL 30min -> 24h so changing filters doesn't keep
  re-probing the rig during a session; Rescan button still forces fresh.
- Multi-GPU rigs filter GGUF Q*/IQ quants (vLLM/SGLang can't serve them);
  default non-prequantized to BF16 on 2+ GPUs.
- AWQ / AWQ-8bit / GPTQ-8bit get a -1.0 quality penalty so FP8 wins ties.
- Version-aware tiebreaker (parse Mn.n / Vn) — MiniMax-M2.7 ranks above M2.5.
- hf_models.json: zai-org/GLM-5.1 added; zai-org/GLM-5 quantization flipped
  Q4_K_M -> BF16. DeepSeek-V4-Flash / -Pro + their -Base variants registered
  with new FP4-MoE-Mixed / FP8-Mixed quant keys (calibrated BPP from the
  actual 156 GB / 284 GB disk footprints).
- New FP4-MoE-Mixed + FP8-Mixed entries in QUANT_BPP / QUANT_SPEED_MULT /
  QUANT_QUALITY_PENALTY / QUANT_BYTES_PER_PARAM / PREQUANTIZED_PREFIXES.

Frontend — Scan/Download:
- Engine + Quant swapped in the toolbar; Quant defaults to "All".
- Ctx (range slider) ported from origin/main: 8k/16k/32k/50k/128k/Max. Drag
  re-sorts by vram ascending (smallest fitting first); back to Max → score.
- Ctx slider rail now visible — was background:transparent in a duplicate
  later-cascade rule. Hardcoded grey + !important.
- Search input moved to the far right of the toolbar.
- Type/Standard default; "Context" not uppercased; Search placeholder dimmed.
- Engine "?" + Quant "?" inline help chips inside their dropdown boxes.
- Fit-column dot toggles fit-only filter; un-toggling re-sorts by VRAM desc.
- Quant column truncates to 9 chars + ellipsis ("FP4-MoE-M..."), full in
  tooltip. Smart title-suffix strips the parts already in the repo name
  (QuantTrio/MiniMax-M2-AWQ + quant AWQ-4bit -> just "(4bit)").
- Conditional warning for safetensors models on non-GPU rigs only.
- Dependency Install / Installed / Installed▾ / N/A all 75.85px wide.
- Rebuild llama.cpp moved into the llama_cpp dep row, styled as a tag.
- Foldable Download admin-card (h2 chevron); line under h2 only when folded.
- HF token save gets a green ✓ + "Saved" flash.
- Cached scan no longer counts stalled rows as downloaded.
- Footer: "Request it →" link with GitHub mark to the public discussion
  (#1962) for model-add requests.

Frontend — Running tab:
- Strict download-finish check (DOWNLOAD_OK or /snapshots/, not bare
  "Download complete"). True overall % for multi-shard downloads:
  ((N-1)+frac)/total instead of hf_transfer's per-shard aggregate.
- ETA in the uptime ticker: "downloading: 12m 34s · ETA 1h 23m".
- Clear button kills the tmux session too; if the output still shows a
  live shard line, the pill is hidden + relabels as "reconnect" + revives
  on click.
- Self-heal: on cookbook open AND every bg-monitor cycle (10s, throttled
  to 8s), scan persisted done/error/crashed downloads and probe their
  tmux session — if alive, flip status back to running and reattach.
- Per-launch zombie probe: clicking Download on a model whose persisted
  state is done but tmux is still alive revives the existing task and
  refuses to start a duplicate.
- Pre-launch GPU probe: vllm / sglang / diffusers serve check
  /api/cookbook/gpus first; warns + confirms if no GPU is visible.
- Server-side state guard: rejects "done" POSTs for downloads lacking
  DOWNLOAD_OK / DOWNLOAD_FAILED / /snapshots/ when the last-mentioned
  shard is N<total — stale tabs can't poison persisted state any more.
- Running count includes tasks whose output looks active even if persisted
  status got stuck. Dir text on the running row, font matched to uptime.

Serve panel:
- Ctx text input always resets to model max on open (default 20000 when
  metadata is missing).
- Max Seqs default 8 -> 4. KV Cache dtype select 32px tall.
- Lightning icon on Launch (same as Action toggle).
- Diagnosis card simplified (no fold/copy/dismiss), suggestion font
  matches body; action buttons get icons on the left (Retry/Copy/Edit/
  Install/Kill/Switch/etc.).
- Incomplete-download serve warning when model status is
  downloading / stalled / has_incomplete.
- MTP "?" tooltip ("supported on a few model families … up to ~3× faster").
2026-06-03 20:25:25 +09:00
pewdiepie-archdaemon a10a81d8a5 Merge remote-tracking branch 'origin/main' into visual-pr-playground
# Conflicts:
#	routes/cookbook_routes.py
#	routes/hwfit_routes.py
#	services/hwfit/fit.py
#	services/hwfit/models.py
#	static/js/cookbook-diagnosis.js
#	static/js/cookbook-hwfit.js
#	static/js/cookbook.js
#	static/js/cookbookRunning.js
2026-06-03 16:49:10 +09:00
pewdiepie-archdaemon 87ec5a636c Cookbook: scoring fixes, UI polish, false-finished + stale-state bug fixes
Backend (services/hwfit + routes):
- rank_models picks visible set by REQUESTED column, not always score —
  sorting by Param now shows highest-param models PERIOD (incl. too_tight).
- New fit_only param. Multi-GPU rigs filter GGUF Q*/IQ quants (vLLM/SGLang
  cannot serve them); default non-prequantized to BF16 on 2+ GPUs.
- AWQ / GPTQ-8bit get a -1.0 quality penalty (was 0.0, tied with FP8), so
  FP8 wins when both fit.
- Version-aware tiebreaker (parse Mn.n / Vn) — MiniMax-M2.7 ranks above
  M2.5 on equal composite score; >=100B integers not misread as versions.
- /api/cookbook/hf-latest no longer drops models without an "NB" pattern in
  the repo id (MiniMax-M2.7, DeepSeek-V4-Pro etc. were silently filtered).
- Cached-model scan: atexit flushes models JSON even if the script is
  killed mid-walk; each scan_dir wrapped in try/except; timeout 60s -> 180s.
- KB granularity for sub-MB sizes (was "0 MB" for 12 KB shells). New
  "stalled" status for shells <1 MB with no .incomplete files.
- /api/cookbook/state POST guard: rejects "done" download tasks lacking
  DOWNLOAD_OK / DOWNLOAD_FAILED / /snapshots/ when the last-mentioned
  shard is N<total — stops stale tabs from poisoning persisted state.
- hf_models.json: add zai-org/GLM-5.1; flip zai-org/GLM-5 quantization
  Q4_K_M -> BF16 (it is the native base, not a quant).

Frontend (static/js):
- Scan/Download toolbar: quant defaults to All; ctx slider (8k/16k/32k/
  50k/128k/Max) ported from origin/main with sort=fit on drag, sort=score
  on Max. GPU toggle commits _activeCount to maxGpu on initial render. Fit
  column header tagged with active budget (RAM / GPU / N GPU).
- Foldable Download admin-card: the Download h2 is the chevron trigger;
  state persists in localStorage.
- Download card surfaces destination dir (Dir: <path>). Same dir on running
  task row, font/color matched to uptime (9px Fira Code muted, opacity .4).
- Serve panel ctx text input always resets to model max on open. Sub-MB
  cached models show with red "download stalled" badge.
- Bulk-select Cancel + Delete reset the Select button label on exit.
- Cookbook running: false-finished bug fixed — DOWNLOAD_OK or /snapshots/
  required; bare "Download complete" no longer marks the task done after
  the first config file. Clear button now sends tmux kill-session too.
  True overall % for multi-shard downloads: ((N-1)+frac)/total instead of
  hf_transfer per-shard aggregate.
- Diagnosis card simplified: removed fold toggle, copy button, dismiss X.
  Suggestion font matches message body (12px).
- HF token field flashes green check + "Saved" on save.
- Cached scan no longer counts stalled rows as downloaded in Scan/Download.

CSS:
- dep Install button width pinned to 76px to match Installed split.
- task-sub row +1px; task-status badge gets margin-right 8px.
- Ctx slider styled like gallery editor sliders (thin pill rail, red thumb).
- Bulk-select cancel button top -3px -> -5px.
2026-06-03 16:32:20 +09:00
pewdiepie-archdaemon c619683ef4 Tighten PR template and CONTRIBUTING to gate visual/style changes
The post-launch PR flood from LLM coding agents drowned the repo in PRs
that don't run the app, attach no screenshots, and invent parallel
component styling. Even tiny correctness fixes accumulated into a visual
mess. Make the rules explicit in both the PR template and CONTRIBUTING:

- Run the app and view the change in a browser before submitting.
- Required screenshot for any UI/render touch (no longer "delete if not UI").
- Explicit style requirements: reuse CSS variables, no Unicode emoji
  (use SVG icons), monospaced font, dark theme, no parallel widgets.
- Direct callout for bulk agent-generated PRs: open an issue first.

PRs that ignore these will be closed without merge, regardless of code
correctness.
2026-06-03 15:35:10 +09:00
pewdiepie-archdaemon e9b0a8e55e Owner-scope RAG doc ids so identical chunks across users don't collide (#1738, #1760)
_generate_doc_id hashed only text. add_document / add_documents_batch
early-return when the id exists, so the second owner indexing a
byte-identical chunk hit the first owner's id, was silently dropped,
and never stored under their owner — their owner-filtered search then
quietly omitted it. Hash owner + text; empty owner reproduces the
legacy id, so the unowned/base index keeps existing ids and isn't
re-churned. Same-owner identical chunks still dedupe.

Caught by #1738 and #1760 (independent reports of the same bug).
2026-06-03 11:36:31 +09:00
pewdiepie-archdaemon 8332b83ef6 Rebuild memory vector index from the full saved set, not just the audited owner (#1747)
audit_memories saves final_entries merged with other owners' entries
(correct), but then rebuilt the shared vector collection from
final_entries alone — wiping every other owner from semantic search
until they happened to run their own audit. Keyword fallback masked
it, so it degraded silently. Capture saved_entries once and rebuild
from that.

Caught by #1747.
2026-06-03 11:36:24 +09:00
pewdiepie-archdaemon 23e85ab8a4 Memory MCP delete: match exact id, not prefix (#1303)
The delete action looked up the target with startswith() to capture
full_id, but then re-applied startswith() to filter the list — so a
short or ambiguous memory_id silently deleted every memory whose id
shared the prefix, while the success message reported only the first
match. The edit action used the first match and stopped, so the two
actions disagreed on multi-match behaviour. Use full_id for both.

Caught by #1303.
2026-06-03 11:36:19 +09:00
pewdiepie-archdaemon 4547b7c6d8 Decrypt CalDAV password before write-back (#1731)
writeback_event read cfg["password"] (the encrypted blob) and passed it
straight to DAVClient, so every local create/edit/delete authenticated
with the literal ciphertext, the remote rejected it, and the change
never reached the server — the exact silent-write-loss this module was
built to prevent. The pull path src/caldav_sync.py already decrypts;
mirror that. decrypt() is a no-op on legacy plaintext.

Caught by #1731.
2026-06-03 11:36:12 +09:00
pewdiepie-archdaemon 8d0822de21 Close app_api blocklist gap for bare /api/tokens and /api/users
The blocklist prefixes had trailing slashes, so path.startswith() only
matched /api/tokens/{id} but not /api/tokens itself — the bare GET (list)
and POST (mint) endpoints were reachable via app_api. Same gap on
/api/users (list/create/delete). Drop trailing slashes so both bare and
sub-resource forms are blocked. /api/auth and /api/admin had no bare
endpoints today but get the same treatment to prevent future drift.

Caught by #1462.
2026-06-03 11:20:39 +09:00
pewdiepie-archdaemon 9621d1a1d1 Polish email and cookbook flows 2026-06-02 22:42:07 +09:00
pewdiepie-archdaemon f1c6ba096b Improve Cookbook serve diagnostics and recommendations 2026-06-02 12:15:47 +09:00
pewdiepie-archdaemon 9cf2eaceae Protect memory tidy owner scope 2026-06-02 09:52:52 +09:00
pewdiepie-archdaemon 028f00f81b Label Docker bind mounts for SELinux 2026-06-02 09:50:35 +09:00
pewdiepie-archdaemon 05432e7418 Allow Docker startup without env file 2026-06-02 09:49:35 +09:00
pewdiepie-archdaemon de64bda6bc Fix endpoint model preservation for tasks 2026-06-02 09:44:24 +09:00
PewDiePie 5a04c78e56 Merge pull request #797 from ErnestHysa/fix/research-path-traversal
fix(research): validate session_id to block path traversal
2026-06-02 09:42:23 +09:00
PewDiePie 73d2e25d1e Merge pull request #782 from tanmayraut45/fix/active-streams-toctou
Fix TOCTOU race in chat stream status endpoint
2026-06-02 09:42:07 +09:00
PewDiePie 29052ea60b Merge pull request #776 from tanmayraut45/fix/searxng-container-caps
Fix searxng container permission errors during setup
2026-06-02 09:41:46 +09:00
PewDiePie 0769bb8559 Merge pull request #809 from BSG-Walter/main
fix: resolve DuckDuckGo redirect URLs in HTML fallback search
2026-06-02 09:41:34 +09:00
PewDiePie f857255f14 Merge pull request #824 from ooovenenoso/fix/odysseus-issue-802-windows-js-mime
fix: normalize JS static MIME types on Windows
2026-06-02 09:41:18 +09:00
PewDiePie 72575775f6 Merge pull request #837 from jamesarslan/fix/agent-toolcall-null-content
Fix tool-calling HTTP 400 on Gemini and Ollama (empty assistant content with tool_calls)
2026-06-02 09:41:01 +09:00
pewdiepie-archdaemon 45bdb1a666 Polish task UI slash commands and Ollama serving 2026-06-02 09:36:03 +09:00
pewdiepie-archdaemon f991e01df3 Show Ollama models in Cookbook Serve 2026-06-02 07:38:45 +09:00
pewdiepie-archdaemon 24ebb44073 Clarify AI tasks and skipped activity rows 2026-06-02 07:11:40 +09:00
pewdiepie-archdaemon 452eae2bfd Fix Brain tab panel visibility 2026-06-02 07:07:51 +09:00
pewdiepie-archdaemon b194604557 Match mobile task state button height 2026-06-02 07:06:17 +09:00
pewdiepie-archdaemon f5fb1f3995 Polish task activity icons 2026-06-02 07:04:52 +09:00
pewdiepie-archdaemon f12dfaf025 Compact mobile task controls 2026-06-02 07:02:26 +09:00
pewdiepie-archdaemon fd59d2d7d5 Remove mobile notes close button 2026-06-02 07:00:40 +09:00
pewdiepie-archdaemon 0df806259d Clarify task status controls on mobile 2026-06-02 06:57:53 +09:00
pewdiepie-archdaemon 91af23e508 Make favorite dot feedback transient 2026-06-02 06:52:03 +09:00
pewdiepie-archdaemon fae1a75fbe Add model favorite dot feedback 2026-06-02 06:50:22 +09:00
pewdiepie-archdaemon ba8de14b4d Remove broken remind slash command 2026-06-02 06:48:41 +09:00
pewdiepie-archdaemon fdb25198d7 Nudge model picker favorite dots 2026-06-02 06:46:05 +09:00
pewdiepie-archdaemon f9133748db Add direct tool slash commands 2026-06-02 06:44:29 +09:00
pewdiepie-archdaemon fb1d399764 Refresh slash command hints 2026-06-02 06:40:23 +09:00
pewdiepie-archdaemon c7cc6f025a Adjust model picker favorite dot alignment 2026-06-02 06:36:10 +09:00
pewdiepie-archdaemon ccb9600d71 Polish model picker favorites 2026-06-02 06:33:53 +09:00
pewdiepie-archdaemon 4ebf370669 Merge branch 'pr-673' into visual-pr-playground 2026-06-02 06:26:32 +09:00
pewdiepie-archdaemon 721ccf85a5 Merge branch 'pr-644' into visual-pr-playground 2026-06-02 06:26:32 +09:00
pewdiepie-archdaemon 8f6bd52b86 Merge branch 'pr-738' into visual-pr-playground 2026-06-02 06:26:32 +09:00
pewdiepie-archdaemon f2f631cd9c Merge branch 'pr-480' into visual-pr-playground 2026-06-02 06:26:32 +09:00
pewdiepie-archdaemon 77a3c86cba Merge branch 'pr-611' into visual-pr-playground 2026-06-02 06:26:32 +09:00
pewdiepie-archdaemon 64d9c14841 Merge branch 'pr-506' into visual-pr-playground 2026-06-02 06:26:32 +09:00
pewdiepie-archdaemon e556b87caf Merge branch 'pr-550' into visual-pr-playground 2026-06-02 06:26:32 +09:00
pewdiepie-archdaemon 97705007ee Merge branch 'pr-594' into visual-pr-playground 2026-06-02 06:26:31 +09:00
pewdiepie-archdaemon a7acd335f3 Merge branch 'pr-575' into visual-pr-playground 2026-06-02 06:26:31 +09:00
pewdiepie-archdaemon 693c6983ea Merge branch 'pr-469' into visual-pr-playground 2026-06-02 06:26:31 +09:00
pewdiepie-archdaemon 2ef0121ac0 Merge branch 'pr-684' into visual-pr-playground 2026-06-02 06:26:31 +09:00
pewdiepie-archdaemon 30b4e544b8 Merge branch 'pr-668' into visual-pr-playground 2026-06-02 06:26:31 +09:00
pewdiepie-archdaemon d889fe8769 Merge branch 'pr-696' into visual-pr-playground 2026-06-02 06:26:31 +09:00
pewdiepie-archdaemon 90b64f32c9 Stabilize auth session revocation tests 2026-06-02 06:02:49 +09:00
pewdiepie-archdaemon d15a9a5091 Stabilize security regression tests 2026-06-02 05:48:59 +09:00
pewdiepie-archdaemon 7e485919ea Polish email reply and task controls 2026-06-01 23:02:25 +09:00
pewdiepie-archdaemon c45a4c8b9a Fix cached GGUF model metadata in Cookbook Serve 2026-06-01 22:46:54 +09:00
pewdiepie-archdaemon dd5f4e02bd Harden Cookbook package SSH probe 2026-06-01 22:44:34 +09:00
pewdiepie-archdaemon 646f2e5acd Fix Cookbook serve exit code reporting 2026-06-01 22:41:25 +09:00
pewdiepie-archdaemon 190423211a Polish email tasks and window controls 2026-06-01 20:56:46 +09:00
pewdiepie-archdaemon 636e359de0 Handle incomplete detached agent streams 2026-06-01 16:54:11 +09:00
pewdiepie-archdaemon 740b831728 Validate internal tool owner attribution 2026-06-01 15:25:15 +09:00
pewdiepie-archdaemon 50ad76113e Add native Windows compatibility layer 2026-06-01 15:09:47 +09:00
pewdiepie-archdaemon 6f468c1335 Trim README quick start 2026-06-01 15:07:41 +09:00
pewdiepie-archdaemon a53dd28c17 Match task status pills to cookbook style 2026-06-01 15:01:24 +09:00
pewdiepie-archdaemon ff414b18d2 Add Deep Research extraction controls 2026-06-01 14:55:33 +09:00
pewdiepie-archdaemon b76b8a5e1d Make task status pills interactive 2026-06-01 14:54:24 +09:00
pewdiepie-archdaemon d1a753e2b0 Fix library space toggles 2026-06-01 14:50:06 +09:00
pewdiepie-archdaemon 99b6b9562d Let hovered space toggles override stale focus 2026-06-01 14:45:47 +09:00
pewdiepie-archdaemon 6bee3833f7 Improve space toggles and email warmup 2026-06-01 14:35:38 +09:00
pewdiepie-archdaemon 0d53ded340 Prewarm email list before first open 2026-06-01 14:25:17 +09:00
pewdiepie-archdaemon 4f68041926 Keep email reader height stable while loading 2026-06-01 14:19:07 +09:00
pewdiepie-archdaemon c6fc7924d6 Reduce Docker context and fix emoji markdown rendering 2026-06-01 14:18:41 +09:00
pewdiepie-archdaemon f390c5fc52 Hide pending email send toast after delay 2026-06-01 14:09:02 +09:00
pewdiepie-archdaemon b50f9279fd Clarify slow email send status 2026-06-01 14:01:56 +09:00
pewdiepie-archdaemon e8e0080ff1 Stabilize email card expansion loading 2026-06-01 13:58:27 +09:00
pewdiepie-archdaemon 865d88f359 Polish email send and card toggles 2026-06-01 13:52:07 +09:00
pewdiepie-archdaemon 75ec9926fd Let email sends continue after closing compose tab 2026-06-01 13:42:14 +09:00
pewdiepie-archdaemon 0c670ea9dd Clarify contacts integration cards 2026-06-01 13:35:13 +09:00
pewdiepie-archdaemon ac35588625 Secure cookbook package probe endpoint 2026-06-01 13:22:37 +09:00
pewdiepie-archdaemon 3ecdfb4a77 Make email escape close reliable 2026-06-01 13:21:12 +09:00
pewdiepie-archdaemon af78253b65 Revert "Keep email list mounted between opens"
This reverts commit 8579333b62.
2026-06-01 13:20:03 +09:00
pewdiepie-archdaemon 8579333b62 Keep email list mounted between opens 2026-06-01 13:17:58 +09:00
pewdiepie-archdaemon 35a1e21800 Fix shell routes on Windows without PTY support 2026-06-01 13:15:40 +09:00
pewdiepie-archdaemon 3f062b952d Prefetch adjacent emails while reading 2026-06-01 13:14:47 +09:00
pewdiepie-archdaemon 7af6f6f031 Warm recent email read cache 2026-06-01 13:12:11 +09:00
pewdiepie-archdaemon 50b5b04027 Use stable IMAP UIDs for email actions 2026-06-01 13:08:42 +09:00
pewdiepie-archdaemon ea2778d981 Move email account management to integrations 2026-06-01 13:01:33 +09:00
pewdiepie-archdaemon 2b5510fa0a Add admin user rename 2026-06-01 12:52:58 +09:00
pewdiepie-archdaemon 67ae1dcf08 Preserve large pasted messages in context 2026-06-01 12:38:35 +09:00
pewdiepie-archdaemon 4a22ee453d Stop auto-adding Ollama endpoints 2026-06-01 11:52:49 +09:00
pewdiepie-archdaemon d90fa42151 Clarify Cookbook diffusion dependencies 2026-06-01 11:45:26 +09:00
pewdiepie-archdaemon 2670f28829 Improve Cookbook serve reliability 2026-06-01 11:43:08 +09:00
pewdiepie-archdaemon 464436ea06 Make Docker web port configurable 2026-06-01 11:20:25 +09:00
pewdiepie-archdaemon ad0b25b703 Fix chat message history timestamps 2026-06-01 11:18:18 +09:00
pewdiepie-archdaemon 71d74290f0 Generate SearXNG secret on first boot 2026-06-01 11:03:02 +09:00
pewdiepie-archdaemon 89093d0b9f Add contributing guide 2026-06-01 10:57:31 +09:00
pewdiepie-archdaemon 67f1675130 Restrict credentialed CORS headers 2026-06-01 10:54:08 +09:00