-
Notifications
You must be signed in to change notification settings - Fork 8
Cross platform #82
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
tjsturos
wants to merge
1,458
commits into
develop
Choose a base branch
from
cross-platform
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Cross platform #82
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Author
|
@lamat1111 @CassOnMars at some point we should move this to the develop branch and make sure to tag any issues that we have fixed with this PR |
This was referenced Sep 27, 2025
Closed
This was referenced Oct 31, 2025
22e795a to
9c84f33
Compare
Smart tokenization for #[Channel Name]<id> format - Prevents splitting display names across tokens - Applies to MessagePreview and fallback renderer
- Add useResolvedBookmark hook for message lookup - Render full MessagePreview when message available - Fall back to cached preview for cross-device sync - Support media content (images, stickers) in cache
Fixed z-index stacking issue where NavMenu appeared above modal overlay. Changes: - Created EditHistoryModalProvider context for deep component access - Added editHistoryModal state to useModalManagement hook - Moved modal rendering from Message.tsx to Layout.tsx - Message.tsx now uses useEditHistoryModal() context hook Documentation: - Rewrote modals.md (~850 → ~170 lines) - Documented two-system architecture as intentional design - Archived modal-system-unification task after feature-analyzer review The hybrid modal system (ModalProvider + Layout-Level) is correct by design: - ModalProvider: top-level triggers, centralized state - Layout-Level: deep triggers, avoids prop drilling, better performance
Cross platform bookmarks
- Add Discord-style message link rendering (#channelname › icon) - Same-space links render as styled mentions, cross-space as URLs - Create messageLinkUtils.ts and environmentDomains.ts utilities - Refactor inviteDomain.ts to use centralized environment detection - Fix code block vs inline code detection using React Context - Protect URLs inside code blocks and markdown links from processing - Add link truncation (50 chars) in markdown renderer - Pass currentSpaceId to MessagePreview in confirmation modals - Reduce spacing in MessagePreview header
- Consolidate QR security warning into single string - Update line references for Privacy.tsx changes - Add translations for combined warning message
- Document new hash-based delta sync protocol in data-management guide with 5-step flow diagram (sync-request → sync-delta) - Add Space Hub Key, Config Key (X448) to cryptographic architecture - Document SealHubEnvelope, SealSyncEnvelope, UnsealSyncEnvelope SDK functions - Add IndexedDBAdapter and src/adapters/ to file references - Update kick-user and security docs with config key encryption layer - Add SyncSummary, SyncManifest, SyncDeltaPayload type references
- Convert all console.log/warn/error to logger from quorum-shared - Enables environment-aware logging (silent in prod, visible in dev) - Can toggle logging at runtime via logger.enable()/disable() - Adds consistent [Module] prefixes for filtering in console - Covers ActionQueue, ConfigService, MessageService, DirectMessage, Channel, MessageDB, and useMessageActions
- Remove duplicate icon aliases: bars→menu, comment-dots→message, celebration→party, life-ring→support, dot-circle→radio - Add new icons: message-dots, messages - Update all component usages to use canonical icon names - Simplifies icon primitive, reduces maintenance overhead
- Use message-dots icon instead of message - Comment out home screen with animated gif - Comment out show/hide home screen toggle links - Keep code for easy re-enablement later
- Replace app logo with Icon primitive using "message" icon - Add dm-icon class with flexbox centering for the icon - Add responsive sizing: 32px desktop, 28px mobile - Add horizontal divider between DM icon and spaces list - Reduce spacing between divider and first space icon - Maintain selection/unread toggle states and badge - Remove glow effect from space icons, keep only for DM icon
- Use callback ref pattern to measure actual menu height before positioning - Fix large gap when menu flips upward near viewport bottom - Render menu hidden initially, then show after position is calculated - Add OFFSET_UP constant for consistent cursor-to-menu spacing - Document UserProfile modal positioning bug for future fix The old implementation used a hardcoded MENU_HEIGHT (320px) which was much larger than actual rendered height, causing excessive gap when flipping. Now measures real height via callback ref for accurate positioning.
- Move solved bug report to .solved folder - Fix icon names: bars→menu, dot-circle→radio, comment-dots→message-dots - Update USER_PROFILE_HEIGHT constant (400→280) - Remove unused modalHeight/viewportHeight params from modalPositioning - Minor ContextMenu formatting cleanup
- Add trash icon button to uploaded images in all modals - Implement markedForDeletion state in file upload hooks - Save handlers now properly handle image deletion - Wrap ReactTooltip in Portal to fix z-index in modals - Increase tooltip z-index from 10002 to 10200 - Add .image-upload-delete-btn styles with hover effects - Only show upload tooltip when no image exists Files: CreateSpaceModal, UserSettingsModal, SpaceSettingsModal, useFileUpload, useSpaceFileUploads, useProfileImage, useSpaceProfile, ReactTooltip, _modal_common.scss
- Add sidebar-left-expand and sidebar-left-collapse icons - Reorganize icon categories (consolidated from 12 to 9) - Change nav menu toggle: menu icon when collapsed, chevron-left when expanded (hamburger→chevron pattern) - Swap button order: nav toggle first, sidebar expand second - Update both Channel.tsx and DirectMessage.tsx
- Fix useLongPress hook to track movement cancellation - Don't call preventDefault on touchstart (blocks scrolling) - Add movementCancelled ref to distinguish scroll from tap - Create TouchAwareListItem wrapper for scrollable lists - Apply to SearchResultItem, NotificationItem, Channel members - Keyboard accessibility handled internally by wrapper
- Add CSS to remove browser focus outline on SVG icons with cursor: pointer - Targets both :focus and :focus-visible states - Fixes white border artifact when clicking copy-to-clipboard icons
- Desktop notifications now only trigger for DM posts from other users, fixing false notification spam - Added pending notification count tracking to NotificationService - MessageService increments count only for DM posts (not space messages, sync, reactions, edits, or own messages) - WebsocketProvider uses filtered count instead of raw message count - Fixed lint issues: const instead of let, async IIFE pattern - Removed unused useQuorumApiClient import
- Add isContextMenuOpen state to DragStateContext - Update SpaceIcon and FolderButton to check context menu state - Set context menu open state when opening/closing folder/space menus - Prevents tooltip from showing over context menu on right-click
When sending messages, the conversation timestamp was updated but lastReadTimestamp was not, causing false unread indicators. - Add currentUserAddress param to saveMessage() in MessageDB - Update lastReadTimestamp when senderId matches current user - Pass user address through MessageService and ActionQueueHandlers - Covers DM send, channel send, and retry paths - Update unread-message-indicators doc with fix details
Allow users to mute individual DM conversations to suppress unread indicators, NavMenu badge counts, and desktop notifications while keeping the conversation accessible. - Add mutedConversations field to UserConfig type - Create useDMMute hook following useDMFavorites action queue pattern - Add mute toggle to context menu (right-click) and settings modal - Filter muted conversations from unread count in NavMenu badge - Suppress desktop notifications via NotificationService integration - Add "Muted" filter with conditional visibility in filter dropdown - Rename "DM Requests" filter to "Unknown" for clarity
- Changed 'Syncing Space...' to generic 'Syncing...' message - Added toast logic to sync-delta handler (new protocol) - Shows toast when syncing >= 20 messages - Reuses shared syncDismissTimer (5s debounce after last chunk)
Show sender name and notification type instead of generic messages: - DM: "New message from Alice" - @you mention: "Bob mentioned you in Space Name" - @everyone mention: "Bob mentioned @everyone in Space Name" - @ROLE mention: "Bob mentioned @admins in Space Name" - Reply: "Carol replied to your message in Space Name" - Multiple: "5 new notifications"
- Update desktop-notifications.md with contextual notification API - Add mute-conversation-system.md documentation - Move completed notification tasks to .done folder - Update INDEX.md and markdownFiles.json - Add commit skill commands
- Analyze quorum-shared v2.1.0 contents vs desktop codebase - Document migration candidates (primitives, theme, hooks, utils) - Include quorum-mobile component comparison - Add branch reorganization workflow plan - Update INDEX.md with new report and task entries
- Group consecutive messages from same sender within 5 mins - Compact messages show timestamp on hover instead of avatar - Add shouldShowCompactHeader utility with time threshold logic - Memoize display info in MessageList for performance - Add CSS variables for avatar/spacer size coupling - Preserve full header for replies, system messages, separators
Fix scroll jank when sending messages and auto-scroll on delete: - Remove redundant manual scrollToBottom() calls, let Virtuoso handle it - Add scroll-padding-bottom to .message-list for sticky composer - Add onBeforeDelete callback to set deletion flag BEFORE optimistic update - Use ref instead of state for deletion flag (synchronous updates) Fix composer pill/rounded shape transition on send: - Delay isMultiline state change by 100ms to match CSS transition - Prevents pill shape appearing while textarea is still visually tall Files: Channel.tsx, DirectMessage.tsx, MessageList.tsx, Message.tsx, useMessageActions.ts, MessageComposer.tsx, _chat.scss
- Add muted badge (bell-off icon) on avatar top-left corner - Add accent border around avatar for favorite contacts - Pass isMuted and isFavorite props to DirectMessageContact - Add bell-x icon to icon library for future use - Add dm-muted-badge and dm-favorite-avatar styles
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.