Claude 15879f0f51 feat: add Slack-style message grouping to ChatViewer
Implement message grouping that groups consecutive messages from the
same author within a 5-minute window, significantly reducing visual
clutter in chat conversations.

Key changes:
- Add MessageGroup interface to represent grouped messages
- Create MessageGroupItem component for rendering grouped messages
- Update messagesWithMarkers logic to group messages by author and time
- Show author name and timestamp only on first message of group
- Subsequent messages in group show timestamp on hover
- Only group regular user messages (not system or zap messages)
- Groups break at day markers for temporal clarity

Benefits:
- Reduces visual noise by 50%+ in active conversations
- Easier to scan by speaker/topic
- Industry-standard pattern (Slack, Discord, Telegram)
- Saves vertical space without losing information

Technical details:
- Groups messages within 300 second (5 minute) window
- Memoized component with custom comparator for performance
- Compatible with existing features (reactions, replies, scroll-to)
- Updates Virtuoso itemContent to render message groups
- Updates handleScrollToMessage to find groups containing target message
2026-01-16 19:50:23 +00:00
2025-12-18 15:46:02 +01:00
👶
2025-12-09 16:26:31 +01:00
2025-12-19 12:49:29 +01:00
2025-12-13 15:06:05 +01:00
2025-12-10 13:00:39 +01:00
2025-12-22 20:40:16 +00:00
2025-12-20 14:25:40 +01:00
2026-01-14 19:24:37 +01:00
👶
2025-12-09 16:26:31 +01:00
👶
2025-12-09 16:26:31 +01:00
👶
2025-12-09 16:26:31 +01:00
2025-12-14 16:50:16 +01:00

Grimoire

A Nostr protocol explorer and developer tool with a tiling window manager interface.

Features

  • Tiling Windows - Each window is a Nostr "app" (profile viewer, event feed, NIP docs, etc.)
  • Command Palette - Unix-style commands via Cmd+K to open apps and navigate
  • Multi-workspace - Virtual desktops with independent layouts
  • Real-time - Reactive event subscriptions with automatic updates

Stack

React 19, TypeScript, Vite, TailwindCSS, Jotai, Dexie, Applesauce

Getting Started

npm install
npm run dev

Scripts

Command Description
npm run dev Start dev server
npm run build Build for production
npm test Run tests in watch mode
npm run lint Lint code
npm run format Format code

License

MIT

Description
No description provided
Readme MIT 14 MiB
Languages
TypeScript 98.9%
CSS 0.8%
JavaScript 0.3%