You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Operator directives 2026-05-18 stacked:
* "iGPU micro-llm agent is mios-daemon collects Linux logs, Journals,
Agent(s) task(s), scratchpad(s), and success and failures and acts
as a nudger/confirmation"
* "DO WHATEVERS' NATIVE FOR OPENAI API STANDARDS AND PATTERNS FOR
MODERN MULTIAGENTIC OS-NATIVE AI's"
* "this all still works with Hermes's Kanban still--CORRECT!??" (yes)
Changes:
1. Default model bumped: qwen3:0.6b-cpu -> qwen3:1.7b (micro size,
lands on the AMD/Intel iGPU CDI lane that the earlier passthrough
commits wired). Operator override via MIOS_DAEMON_MODEL.
2. New task_collector_loop (6th daemon thread). Every 5 min (boot
delay 75s), aggregates from the canonical shared mutable
scratchpads:
* /var/lib/mios/hermes/kanban.db (active agent tasks --
READ ONLY; Hermes's own kanban_* tools own writes)
* /var/lib/mios/hermes/sessions/*.json (recent tool_call
history -- counts + per-result success/fail summary)
* /var/lib/mios/scratch/ + /var/lib/mios/ai/scratch/
(shared mutable scratchpads operator directive 2026-05-18)
* /var/lib/mios/daemon/launch_failures.json (from
launch_verifier_loop)
* Recent classify_loop summary from state.json
3. Sends the aggregate to Ollama via the OpenAI-compat
/v1/chat/completions endpoint with
response_format={"type":"json_object"} -- standard OpenAI
structured-output (operator: "WHATEVERS' NATIVE FOR OPENAI API
STANDARDS"). Output JSON:
{"nudges":[{"type":"<kebab>","severity":"low|med|high",
"summary":"<one sentence>",
"action":"<single concrete step>"}, ...],
"digest":"<2-4 sentence ground-truth status>"}
4. Atomic writes to two shared mutable scratchpads:
/var/lib/mios/scratch/agent-nudges.md (operator-facing)
/var/lib/mios/scratch/agent-nudges.json (structured)
Color-coded severity (🔴 high / 🟡 med / 🟢 low), action lines
formatted as backtick-code so the agent can copy-paste them
into terminal.
5. SOUL.md state-paths section gains the new nudges file with the
rule "At the start of any non-trivial turn, cat
/var/lib/mios/scratch/agent-nudges.md first" -- saves the agent
from re-walking the logs and surfaces things (stalled task,
unverified launch, scratchpad note from another agent) it'd
otherwise miss.
6. _update_state("nudges", {...}) so the sidecar filter +
mios-system-status can show the nudger pulse with source
counts.
Fail-open: every aggregation step has a try/except returning [];
every LLM call returns {} on URL/timeout/parse error. The loop
never crashes the daemon.
Kanban compatibility verified: schema auto-discovery tries
'tasks' / 'cards' / 'kanban_tasks' / 'items' in order, picks the
first match, gracefully picks the column subset that exists. The
Hermes kanban_* tool surface (kanban_create, kanban_list,
kanban_show, kanban_complete, kanban_block, kanban_comment)
remains the authoritative WRITE path; mios-daemon is a READER.
Day-0 / bootc: code at /usr/libexec/mios/mios-daemon, scratchpad
dirs created by /usr/lib/tmpfiles.d/mios-*.conf (already), nudge
files written under /var/lib (mutable, image-immutable code path).
Restart of mios-daemon picks up the new thread; live verified:
"starting: model=qwen3:1.7b ... watching units ..." (qwen3:1.7b
is the micro-LLM lane per operator directive).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
0 commit comments