May 3, 2026

AI Assistant Refinements: Media, Timer, and UI Theming

New rich-media cards were introduced, enabling tools to shortlist and run local OCR on up to three image candidates

New rich-media cards were introduced, enabling tools to shortlist and run local OCR on up to three image candidates. The LLM can now select a relevant image using the source article title as context for reliable matching. The rich media payload is updated to include the data-image span attribute and subsequently payload.image_url for the frontend.

The timer ability was added as an ephemeral, pure-FE countdown card with pause, stop, and an alarm. It is pre-injected only on UMP (User Message Processor), and the rich-media contract ensures the wall-clock time is kept invisible to the LLM while preserving reload-safe semantics.

A significant architectural fix was implemented to enforce the rich-media contract physically: ordinal injection is now gated on the channel == 'user' dispatcher, and a strip_spans helper removes any rogue spans emitted by subagents before the parent receives them.

The timer functionality received fixes to ensure the countdown reliably freezes on pause and jumps forward by the pause duration on resume.

The interface received major theming improvements, allowing for persistent Light/Dark mode toggling and ensuring all components (chat bubbles, audio player, etc.) render correctly across both themes.

The chat bubble experience was enhanced with a transparent, full-bleed assistant bubble featuring a constellation glyph and timestamp in a new header row, and all hardcoded shadows were eliminated.

Improvements were made to subagent handling, including renaming the schema property from type to agent_type to prevent collisions with the dispatcher’s action envelope, and adding per-type wait caps for long operations like web surfing.

Error logging was exposed in the dashboard via a new Cognition → Errors sub-tab, which tails the last 256 KB of the production log.

  • Added timer ability for ephemeral countdown cards with pause/stop. Implemented OCR-shortlisted image candidates for search and news cards. Enforced rich-media contract via channel-gated ordinal injection and subagent span stripping. Migrated UI components to support persistent Light and Dark theming. Exposed runtime error logs in the dashboard via a new sub-tab. Fixed name collision in subagent schema by renaming ✓type to ✓agent_type.