Skip to content

feat(ui/widgets): remove the redundant Messages home widget (#10697) - #10803

Merged
lalalune merged 2 commits into
developfrom
feat/10697-remove-messages-widget
Jul 1, 2026
Merged

lalalune merged 2 commits into
developfrom
feat/10697-remove-messages-widget

Conversation

@lalalune

@lalalune lalalune commented Jul 1, 2026

Copy link
Copy Markdown
Member

What & why

The #1 proposed change of #10697: remove the standalone Messages home tile. It re-fetched and re-listed recent conversations that the always-present chat overlay (ContinuousChatOverlay) already covers — a second inbox on the home grid. The user wants the home grid to surface actionable attention, not a duplicate conversation list. Follow-up-worthy messages already flow through the notification model as category: "message" (mentions → priority: "high"), so they surface in the notification rail instead.

Change

  • Delete MessagesWidget + messages.stories.tsx + messages.test.tsx + messages.populated.test.tsx.
  • Unregister from widgets/registry.ts: drop the import, the registerWidgetComponent("messages", …), the messages.recent home-slot declaration, and "messages" from the always-visible core set.
  • Keep @elizaos/plugin-messages covered: the app plugin now folds into the notification rail via a defaultWidget: "notifications" sink declaration (same pattern as the phone plugin), so the per-plugin home-widget coverage gate (widget-coverage.test.ts) stays green. The phone plugin's defaultWidget is repointed off "messages" too, and the messages sink aliases to notifications.
  • Reconcile tests + docs: registry.home.test.ts (now asserts no messages.recent resolves), WidgetHost.home-launch.test.tsx (drops the widget-messages assertions), WIDGET_MATRIX.md (drops the row), and the e2e fixture comment.

The native-OS Messages view/tab (the SMS app in NATIVE_OS_TILES / useAvailableViews / launcher curation) is a separate surface and is deliberately untouched — verified those tests stay green.

Non-breaking

The messages member of the core defaultWidget union (@elizaos/core plugin.ts) is kept (aliased to notifications), so no @elizaos/core plugin-contract change and no external-plugin break. Dropping the union member is a separable follow-up.

Tests

registry.home / registry.defaultWidget / WidgetHost.home-launch / notifications / HomeScreen   26 passed
widget-coverage        6/7 (the 7th, `>=28 app-manifest plugins`, is a pre-existing
                       checkout artifact — 26 plugin submodules present locally vs 28
                       in CI; independent of this change since plugins/ is untouched)
launcher-curation / useAvailableViews (native Messages view)   29 passed
packages/ui typecheck → exit 0

Evidence

On-device (Android 14 emulator) — the home grid before (duplicate Messages tile + Notifications) → after (Messages tile removed; the message folds into the Notifications rail) — .github/issue-evidence/10697-remove-messages-widget-android.png:

on-device home grid

Real-LLM trajectory: N/A — widget-registry consolidation, no model/prompt path.

🤖 Generated with Claude Code

lalalune and others added 2 commits July 1, 2026 09:49
The standalone Messages home tile re-fetched and re-listed recent conversations
that the always-present chat overlay already covers — a second inbox on the home
grid. Remove it; follow-up-worthy messages now surface as `category: "message"`
notifications in the notification rail (the canonical "important message to
follow up" signal).

- Delete `MessagesWidget` + its stories/tests.
- Unregister from the widget registry: drop the import, the
  `registerWidgetComponent("messages", …)`, the `messages.recent` home-slot
  declaration, and `"messages"` from the always-visible core set.
- The `@elizaos/plugin-messages` app plugin now folds into the notification rail
  via a `defaultWidget: "notifications"` sink declaration (same pattern as the
  phone plugin), so the per-plugin home-widget coverage gate stays green; repoint
  the phone plugin's `defaultWidget` off `"messages"` too, and alias the
  `messages` sink → notifications.
- Reconcile the home/coverage tests + WIDGET_MATRIX (drop the `messages.recent`
  row); the native-OS Messages *view/tab* (SMS app) is a separate surface and is
  untouched.

Non-breaking: the `messages` member of the core `defaultWidget` union is kept
(aliased to notifications); dropping it from the `@elizaos/core` plugin contract
is a separate follow-up.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your trial has ended. Reactivate Greptile to resume code reviews.

@coderabbitai

coderabbitai Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 2e3baf2d-e36a-44fc-8fd6-135f15658929

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/10697-remove-messages-widget

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

❌ PR title does not match the required pattern. Please use one of these formats:

  • 'type: description' (e.g., 'feat: add new feature')
  • 'type(scope): description' (e.g., 'chore(core): update dependencies')
    Valid types: feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert, release

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant