The rect variable in the onUp and onTouchEnd closures was shadowing the
outer rect declaration in handlePipMouseDown and handlePipTouchStart.
Renamed inner declarations to savedRect. Also renamed rect → elRect in
handlePipDoubleClick for the same reason.
Removed unused eslint-disable-next-line comment in MessageSearch.tsx.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
B1 - GIF upload progress: spinner on GIF button + disabled state while
fetch+upload is in flight; clears on success or error
B2 - PiP position persistence: drag end saves left/top to localStorage;
entering PiP restores saved position (clamped to current viewport)
B3 - PiP snap-to-corner: double-click the PiP overlay snaps to nearest
corner with a 180ms CSS transition; saves new position
B4 - Device sessions loading state: useOtherUserDevices now returns
{status:'loading'|'error'|'success', devices} instead of bare
array; UserDeviceSessions shows spinner while loading
B5 - Device sessions error state: catch in hook sets status:'error';
panel shows warning icon + 'Could not load sessions' message
B6 - Screenshare fullscreen Safari guard: hide button when
document.fullscreenEnabled is false (iOS Safari, some mobile)
B7 - Status save error: show critical-coloured error text below Save
button when saveState.status === AsyncStatus.Error
B9 - Encrypted search coverage counter: 'X / Y cached' badge next to
'Encrypted Rooms' heading using existing localResult fields
D2 - PiP screenshare spotlight: track auto-spotlight in a ref; release
spotlight when screenshare ends while in PiP mode
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Type 'from:@name' in the search box to filter by sender — a dropdown
of matching users (avatar + display name + full ID) appears as you type
and selecting one converts it into a removable sender chip in the filter
bar. Multiple senders supported. Also works via manual entry on submit.
- SearchInput: detects trailing 'from:@...' pattern on every keystroke,
shows PopOut autocomplete from mx.getUsers(), onMouseDown prevents
input blur when selecting, cleans up fragment after selection
- SearchFilters: selectedSenders/onSelectedSendersChange props, sender
chips rendered with user icon and X to remove
- useLocalMessageSearch: filters cached events by sender set when senders
param is provided (encrypted room search respects the filter too)
- MessageSearch: handleSenderAdd deduplicates and writes to ?senders= URL
param; localResult now passes senders to the local search
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Each encrypted room in scope shows:
- Message count and oldest cached date
- 'Load messages' if no cache, 'Load more' if more history available
- 'Fully cached' label when all history is loaded
Clicking load/load-more paginates backwards 100 messages at a time.
localResult re-computes via cacheVersion after each load so search
results update automatically without re-typing the query.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
No Matrix web client supports E2EE message search server-side — the
homeserver only sees ciphertext. This is the same approach FluffyChat
takes: scan locally decrypted events already in the live timeline.
Changes:
- useLocalMessageSearch: searches getLiveTimeline().getEvents() in
encrypted rooms using decrypted content (getContent(), not event.content)
- MessageSearch: runs client-side search in parallel with server search,
shows results in a dedicated 'Encrypted Rooms' section with clear notice
about scope (only cached/recently viewed messages)
- Encryption notice shown when encrypted rooms are in scope — explains
why results may be missing and what to do
- Server result limit raised from 20 → 50
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- react 18.2.0 to 19.2.6
- react-dom 18.2.0 to 19.2.6
- @types/react 18.2.39 to 19.2.15
- @types/react-dom 18.2.17 to 19.2.3
React 19 breaking changes fixed:
- useRef<T>(null) now returns RefObject<T | null>; cast to
RefObject<T> at 16 component call sites (safe, runtime unchanged)
- useRef<T>() without arg no longer valid; add | undefined>(undefined)
in useDebounce, useFileDrop, useThrottle, useVirtualPaginator hooks,
RoomInput, RoomTimeline, and ClientNonUIFeatures
- useReducer<typeof reducer> 1-arg form removed; drop explicit type arg
in useForceUpdate (inferred from reducer function)
- global JSX namespace removed; import type { JSX } from react in
react-custom-html-parser.tsx
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Add setting to enable 24-hour time format
* added hour24Clock to TimeProps
* Add incomplete dateFormatString setting
* Move 24-hour toggle to Appearance
* Add "Date & Time" subheading, cleanup after merge
* Add setting for date formatting
* Fix minor formatting and naming issues
* Document functions
* adress most comments
* add hint for date formatting
* add support for 24hr time to TimePicker
* prevent overflow on small displays
* add active theme context
* add chroma js library
* add hook for accessible tag color
* disable reply user color - temporary
* render user color based on tag in room timeline
* remove default tag icons
* move accessible color function to plugins
* render user power color in reply
* increase username weight in timeline
* add default color for member power level tag
* show red slash in power color badge with no color
* show power level color in room input reply
* show power level username color in notifications
* show power level color in notification reply
* show power level color in message search
* render power level color in room pin menu
* add toggle for legacy username colors
* drop over saturation from member default color
* change border color of power color badge
* show legacy username color in direct rooms
* load room on url change
* add direct room list
* render space room list
* fix css syntax error
* update scroll virtualizer
* render subspaces room list
* improve sidebar notification badge perf
* add nav category components
* add space recursive direct component
* use nav category component in home, direct and space room list
* add empty home and direct list layout
* fix unread room menu ref
* add more navigation items in room, direct and space tab
* add more navigation
* fix unread room menu to links
* fix space lobby and search link
* add explore navigation section
* add notifications navigation menu
* redirect to initial path after login
* include unsupported room in rooms
* move router hooks in hooks/router folder
* add featured explore - WIP
* load featured room with room summary
* fix room card topic line clamp
* add react query
* load room summary using react query
* add join button in room card
* add content component
* use content component in featured community content
* fix content width
* add responsive room card grid
* fix async callback error status
* add room card error button
* fix client drawer shrink
* add room topic viewer
* open room card topic in viewer
* fix room topic close btn
* add get orphan parent util
* add room card error dialog
* add view featured room or space btn
* refactor orphanParent to orphanParents
* WIP - explore server
* show space hint in room card
* add room type filters
* add per page item limit popout
* reset scroll on public rooms load
* refactor explore ui
* refactor public rooms component
* reset search on server change
* fix typo
* add empty featured section info
* display user server on top
* make server room card view btn clickable
* add user server as default redirect for explore path
* make home empty btn clickable
* add thirdparty instance filter in server explore
* remove since param on instance change
* add server button in explore menu
* rename notifications path to inbox
* update react-virtual
* Add notification messages inbox - WIP
* add scroll top container component
* add useInterval hook
* add visibility change callback prop to scroll top container component
* auto refresh notifications every 10 seconds
* make message related component reusable
* refactor matrix event renderer hoook
* render notification message content
* refactor matrix event renderer hook
* update sequence card styles
* move room navigate hook in global hooks
* add open message button in notifications
* add mark room as read button in notification group
* show error in notification messages
* add more featured spaces
* render reply in notification messages
* make notification message reply clickable
* add outline prop for attachments
* make old settings dialog viewable
* add open featured communities as default config option
* add invite count notification badge in sidebar and inbox menu
* add element size observer hook
* improve element size observer hook props
* improve screen size hook
* fix room avatar util function
* allow Text props in Time component
* fix dm room util function
* add invitations
* add no invites and notification cards
* fix inbox tab unread badge visible without invite count
* update folds and change inbox icon
* memo search param construction
* add message search in home
* fix default message search order
* fix display edited message new content
* highlight search text in search messages
* fix message search loading
* disable log in production
* add use space context
* add useRoom context
* fix space room list
* fix inbox tab active state
* add hook to get space child room recursive
* add search for space
* add virtual tile component
* virtualize home and directs room list
* update nav category component
* use virtual tile component in more places
* fix message highlight when click on reply twice
* virtualize space room list
* fix space room list lag issue
* update folds
* add room nav item component in space room list
* use room nav item in home and direct room list
* make space categories closable and save it in local storage
* show unread room when category is collapsed
* make home and direct room list category closable
* rename room nav item show avatar prop
* fix explore server category text alignment
* rename closedRoomCategories to closedNavCategories
* add nav category handler hook
* save and restore last navigation path on space select
* filter space rooms category by activity when it is closed
* save and restore home and direct nav path state
* save and restore inbox active path on open
* save and restore explore tab active path
* remove notification badge unread menu
* add join room or space before navigate screen
* move room component to features folder and add new room header
* update folds
* add room header menu
* fix home room list activity sorting
* do not hide selected room item on category closed in home and direct tab
* replace old select room/tab call with navigate hook
* improve state event hooks
* show room card summary for joined rooms
* prevent room from opening in wrong tab
* only show message sender id on hover in modern layout
* revert state event hooks changes
* add key prop to room provider components
* add welcome page
* prevent excessive redirects
* fix sidebar style with no spaces
* move room settings in popup window
* remove invite option from room settings
* fix open room list search
* add leave room prompt
* standardize room and user avatar
* fix avatar text size
* add new reply layout
* rename space hierarchy hook
* add room topic hook
* add room name hook
* add room avatar hook and add direct room avatar util
* space lobby - WIP
* hide invalid space child event from space hierarchy in lobby
* move lobby to features
* fix element size observer hook width and height
* add lobby header and hero section
* add hierarchy room item error and loading state
* add first and last child prop in sequence card
* redirect to lobby from index path
* memo and retry hierarchy room summary error
* fix hierarchy room item styles
* rename lobby hierarchy item card to room item card
* show direct room avatar in space lobby
* add hierarchy space item
* add space item unknown room join button
* fix space hierarchy hook refresh after new space join
* change user avatar color and fallback render to user icon
* change room avatar fallback to room icon
* rename room/user avatar renderInitial prop to renderFallback
* add room join and view button in space lobby
* make power level api more reusable
* fix space hierarchy not updating on child update
* add menu to suggest or remove space children
* show reply arrow in place of reply bend in message
* fix typeerror in search because of wrong js-sdk t.ds
* do not refetch hierarchy room summary on window focus
* make room/user avatar un-draggable
* change welcome page support button copy
* drag-and-drop ordering of lobby spaces/rooms - WIP
* add ASCIILexicalTable algorithms
* fix wrong power level check in lobby items options
* fix lobby can drop checks
* fix join button error crash
* fix reply spacing
* fix m direct updated with other account data
* add option to open room/space settings from lobby
* add option in lobby to add new or existing room/spaces
* fix room nav item selected styles
* add space children reorder mechanism
* fix space child reorder bug
* fix hierarchy item sort function
* Apply reorder of lobby into room list
* add and improve space lobby menu items
* add existing spaces menu in lobby
* change restricted room allow params when dragging outside space
* move featured servers config from homeserver list
* removed unused features from space settings
* add canonical alias as name fallback in lobby item
* fix unreliable unread count update bug
* fix after login redirect
* fix room card topic hover style
* Add dnd and folders in sidebar spaces
* fix orphan space not visible in sidebar
* fix sso login has mix of icon and button
* fix space children not visible in home upon leaving space
* recalculate notification on updating any space child
* fix user color saturation/lightness
* add user color to user avatar
* add background colors to room avatar
* show 2 length initial in sidebar space avatar
* improve link color
* add nav button component
* open legacy create room and create direct
* improve page route structure
* handle hash router in path utils
* mobile friendly router and navigation
* make room header member drawer icon mobile friendly
* setup index redirect for inbox and explore server route
* add leave space prompt
* improve member drawer filter menu
* add space context menu
* add context menu in home
* add leave button in lobby items
* render user tab avatar on sidebar
* force overwrite netlify - test
* netlify test
* fix reset-password path without server redirected to login
* add message link copy button in message menu
* reset unread on sync prepared
* fix stuck typing notifications
* show typing indication in room nav item
* refactor closedNavCategories atom to use userId in store key
* refactor closedLobbyCategoriesAtom to include userId in store key
* refactor navToActivePathAtom to use userId in storage key
* remove unused file
* refactor openedSidebarFolderAtom to include userId in storage key
* add context menu for sidebar space tab
* fix eslint not working
* add option to pin/unpin child spaces
* add context menu for directs tab
* add context menu for direct and home tab
* show lock icon for non-public space in header
* increase matrix max listener count
* wrap lobby add space room in callback hook