Simplify chat rendering: unified markdown stream, plain text GUI
Server changes:
- Remove chat.raw/log.raw JSONL files — single chat/log markdown stream
- Remove block file (lookup by ID) — no block-level granularity
- format.RenderBlock() now outputs markdown with emoji headers
- Agent struct: remove rawLog, partialLine, partialVers fields
- TextLogStream for blocking stream reads
GUI changes:
- Remove ChatBlockModel (JSONL parsing, KSyntaxHighlighting, diagrams)
- Remove ChatBlockDelegate (block-based rendering)
- ChatPane uses single TextArea with PlainText format
- Zero CPU on idle — direct string append, no timers, no parsing
- Keep action toolbar (Stop, Compact, Clear, Copy, Templates, Procs, Peers)
- Fix scroll-to-bottom using ScrollBar.vertical position tracking
- Add hasPendingBypass, approveBypass(), denyBypass() for shortcuts
TUI and GUI now consume identical markdown stream from chat file.
~1000 lines deleted across format, agent, fs, and GUI code.