GUI chat blocks are reconstructed positionally from the markdown stream
(emoji headers), so the block-ID resolve chain was dead weight:
- server: remove Agent.NextBlockID, blockCounter, format.Block.ID; the
streaming handler uses a plain 'streaming' bool. IDs were computed on
every block but never surfaced (RenderBlock ignored them; the 'block'
9P file was already gone).
- GUI: remove fetchBlock (rdwr against the removed 'block' file) and the
bookmark apparatus (bookmarksModel, add/remove/isBookmarked, the
Bookmarks tree, and a call to the never-defined scrollToBlockId).
- plumb: ollie:// is now pure navigation (session/agent); drop #blockId
from data/plumbing, plumber.h, and handleOllieMessage.
Also reconcile docs with today's changes: fsedsl -> virtfs references,
removed *.raw chat files, fresh SLOC counts (core ~16,250; kde ~9,400),
and evolution.md Phase 43/44 + dead-ends entries.
go test ./... passes; KDE GUI builds clean.
The filtered text views (log, chat) hid call and tool blocks entirely
and had no visibility into bypass requests, which were only published as
events. RenderBlock now renders tool calls (name + args), tool output,
and bypass request/resolution notices; reasoning and context stay
hidden. SetBypassPending/ResolveBypass append bypass and bypass-resolved
blocks to the requesting agent so clients without an event stream (TUI,
o script) see pending approvals and outcomes.