44bb8687f7
Background MI50 work was invisible — the dream loop logs one line per cycle, so a multi-minute consolidation or a chat-on-mi50 showed nothing while the GPU pegged. Now complete/chat_call/chat_call_stream each emit 'llm call' (kind, backend, model, ~tokens) and 'llm done' (ms, output size, tools). Watch what's hitting any backend live via journalctl --user -fu lyra-dream -u lyra-web. No signature change, so test stubs that replace complete() are unaffected. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>