mirror of
https://github.com/pewdiepie-archdaemon/odysseus.git
synced 2026-07-13 12:38:02 +00:00
Cookbook UI: Ollama browser, advanced serve fold, API tokens form, diagnosis toolbar, polish
Surface a lot of accumulated cookbook + UI work as a single non-agent
commit so the agent rework lands cleanly.
Highlights:
- Ollama as a first-class backend in the Cookbook:
* Download input accepts ollama-style names (name:tag) → backend=ollama
* /api/cookbook/ollama/library (cached scrape of ollama.com + curated
fallback so classic models like qwen2.5 stay reachable)
* "Browse Ollama library" toggle below Download with size chips
* Engine=Ollama in hwfit toolbar merges the Ollama library into the
main scan list as per-tag rows with the same Fit/Param/Quant/VRAM
columns; click → fills Download input
- API Tokens form added to Integrations panel (matching wired
loadTokens()/initTokenForm() that had no HTML)
- Serve panel polish: Advanced fold tightening (-8px nudges on vLLM
checks, Extra args, Spec row), n_cpu_moe + Split Mode controls
pulled up 8px to align with the row's checkboxes, GGUF File dropdown
exposed for Ollama backend, GPU re-render on Edit serve restore,
_forceBackend flag so saved serveState wins over backend detection,
cookbook:servers-changed CustomEvent so panels don't need refresh
- Models page redesign: Add Models row (URL + hidden API key reveal +
Type select + Scan/Ollama/Key/Test/Add icon buttons), Probe All +
Clear-offline buttons in Added Models toolbar, offline-pill removed
(opacity already conveys state), Engine dropdown gains Ollama option
- _ping_endpoint probes /v1/models then base, accepts 4xx as
reachable (vLLM returns 404 on bare /v1, fully working endpoints
were showing offline)
- Diagnosis card: × dismiss + Copy bundle buttons restored on the
serve error feedback card
- Orphan tmux sweep re-enabled behind a 60s rate-limit + background
Thread (off the main event loop) so dead serves get discovered
- cookbook_routes auto-register watchdog: drops the endpoint if the
serve session exits non-zero within the first ~3min
- ollama-rocm sidecar awareness in download wrapper (`docker exec
ollama-rocm ollama pull` when host ollama isn't installed)
- Skill extractor sets initial_status="published" when
auto_approve_skills pref is on (audit demotes later)
- Skill list / model list / cookbook scan misc polish
This commit is contained in:
@@ -2118,6 +2118,28 @@ export function addMessage(role, content, modelName, metadata) {
|
||||
return lastWrap;
|
||||
}
|
||||
|
||||
// --- Wake-task / supervisor system check-in ---
|
||||
// The self-wake mechanism injects "Did you finish?" as a user message
|
||||
// (or persisted history shows a "[Task] Self-check: <id>" envelope)
|
||||
// so the agent loop re-enters and re-checks status. Render as a
|
||||
// normal user-style bubble — same chrome as a real user message,
|
||||
// just with role "Supervisor" and a short summary body — instead of
|
||||
// a slim system chip. Matches chat style and integrates cleanly
|
||||
// into the conversation flow.
|
||||
let _isWakeCheck = !!(metadata?.wake_check_in || metadata?.hidden_from_user_view);
|
||||
if (!_isWakeCheck && typeof textRaw === 'string') {
|
||||
// Also catch historical messages persisted as "[Task] Self-check: <sid>"
|
||||
// (older wake tasks that didn't set wake_check_in metadata).
|
||||
if (/^\s*\[Task\]\s+Self-check:/i.test(textRaw)) {
|
||||
_isWakeCheck = true;
|
||||
}
|
||||
}
|
||||
if (_isWakeCheck) {
|
||||
// Supervisor self-check messages are an internal control signal —
|
||||
// skip rendering entirely so they don't show up in the conversation.
|
||||
return null;
|
||||
}
|
||||
|
||||
// --- Standard single-bubble message ---
|
||||
const wrap = document.createElement('div');
|
||||
wrap.className = 'msg ' + (role === 'user' ? 'msg-user' : 'msg-ai');
|
||||
|
||||
Reference in New Issue
Block a user