Skip to content

Reintroduce mail and experimental GenUI cards - #67

Merged
linuscooper merged 9 commits into
mainfrom
feature/reintroduce-mail
Jul 29, 2026
Merged

Reintroduce mail and experimental GenUI cards#67
linuscooper merged 9 commits into
mainfrom
feature/reintroduce-mail

Conversation

@SebastianBoehler

Copy link
Copy Markdown
Contributor

Summary

Reintroduces the mail surface and expands the assistant's generative UI path. Some GenUI pieces are intentionally experimental and should get careful review before merge.

Changes

  • Restores the mail UI/repository flow with inbox loading, message details, mailbox switching, unread filtering, search, pull-to-refresh, and short-lived repository caching.
  • Adds richer generated UI card support for mail, deadlines, talks, academic status, study progress, Mensa, campus locations, schedules, quick replies, next actions, and custom views.
  • Renders tool-backed cards in chat and trims duplicate prose when the card already displays the fetched data.
  • Moves local LiteRT tool routing into Dart, keeps stable local system instructions separate from volatile context, and adds generation timeouts/model unload behavior.
  • Adds inline math Markdown support for assistant messages.
  • Extends tests for mail caching/view behavior, GenUI payload builders, and local prompt/tool-loop behavior.

Notes

  • GenUI rendering and custom view payloads are still exploratory; review should focus on payload validation, fallback behavior, and UX failure modes.
  • Mail access still depends on the user's locally stored profile/password flow.

Validation

  • Not run in this PR creation step. Diff inspected against origin/main before opening the PR.

… duplicate tool loop, add message timout

2. Enable GenUI component workflow for Mail, Deadlines
…cycle

1. Add closed registry of card widgets (mail, deadlines, academic status, schedule, mensa, talks, campus location, study progress, quick-reply/next-action/custom-view) plus a model-emitted `ui` block parser (generated_ui_message.dart) that decouples card display from which tool ran.
2. Add inline/display LaTeX rendering in chat replies (markdown_math.dart).
3. Wire card payload dispatch through the tool catalog and both LLM provider paths (local + cloud).
4. Tune the on-device LiteRT/AI Core client: proper model memory management, remove duplicate tool loop, add message timeout.
@linuscooper
linuscooper marked this pull request as ready for review July 29, 2026 23:04
@linuscooper
linuscooper merged commit 074611a into main Jul 29, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants