moment/TODO.md

6.7 KiB

  • invite keybind & context menu

  • better cancel for all boxes

  • Media

    • Handle set avatar upload errors

    • Support encrypted m.file

    • Confirmation box after picking file to upload

    • Show real progression for mxc thumbnail loadings

    • Show reason under broken thumbnail icons

    • Support m.file thumbnails

    • Generate video thumbnails

    • GIFs can use the video player

    • Display GIF static thumbnails while the real GIF is loading

    • Video bug: when media is done playing, clicking on progress slider always
      bring back to the beginning no matter where

    • Video: missing buttons and small size problems

    • Audio: online playback is buggy, must download+play file

    • EventLink

      • Special treatment for matrix.to URLs?
    • EventFile & Downloading (right click on media > save as...)

  • Refactoring

    • Use a singleton for utils.js

    • Use HBox for Profile

      • Get rid of all currentSpacing stuff
    • Banners

    • Composer

    • Try gel for the models and stop being lazy in python

    • Room Sidepane save/load size & keybinds

  • Fixes

    • Pausing uploads doesn't work well with matrix.org

    • Quickly posting with another account leads to sync stop

    • CPU usage

    • code not colored in room subtitle

    • In the "Leave me" room, "join > Hi > left" aren't combined

    • Event delegates changing height don't scroll the list

    • When selecting text and scrolling up, selection stops working after a while

      • Ensure all the text that should be copied is copied
      • Multiple messages are currently copied out of order
    • Pressing backspace in composer sometimes doesn't work

    • Message order isn't preserved when sending a first message in a E2E
      room, then while keys are being shared sending one with another account,
      then sending one with the first account again

    • Left rooms reappear as joined rooms

    • If account not in config anymore, discard ui state last page on startup

    • Do something when access token is invalid

    • Don't store states in delegates

    • hr not working

    • Terrible performance using QT_QPA_PLATFORM=wayland-egl, must use xcb

    • Quote links color in room subtitles (e.g. "> http://foo.orgA)" )

  • UI

    • Scrollable popup

    • HDrawer snapping

    • Make theme error/etc text colors more like name colors

    • In account settings, display name field text should be colored

    • Way to open context menus without a right mouse button

    • smartVerticalFlick() gradual acceleration

    • Restore previous focus after closing right click context menu

    • Choose a better default easing type for animations

    • Make HListView scrollbars visible

    • Remove first html lists left margin

    • Adapt UI for small heights

    • In room creation, click avatar to set the future room's avatar

    • In join room page, show the matching room's avatar when typing

    • In find someone page, show the matching user's avatar when typing

    • Combine events so they take less space

      • After combining is implemented, no need to hide profile changes anymore.
    • Replies

    • Messages editing and redaction

    • Code highlighting

    • Adapt shortcuts flicking speed to font size

    • EditAccount page:

      • Device settings
      • Multiaccount aliases:
        • Warn when conflict with another alias
        • Forbid spaces?
        • Add an explanation tooltip
        • Prevent sending messages with an user not in room
        • Support \ escaping
      • Accept drag and dropping a picture to set avatar
    • Add stuff to room tooltips like last messages

    • Show something when connection is lost or 429s happen

    • "Rejoin" LeftBanner button if room is public

    • Daybreak color

    • Conversation breaks: show time of first new msg after break instead of big
      blank space

    • Sidepane

      • Animate when logging out last account and sidepane turns invisible
      • Header back button when reduced
      • Better look when reduced to minimum size
    • Server selection

    • Register/Reset for AddAccount page

    • Prevent using an alias if that user is not in the room or no permission

    • Spinner when loading past room events

    • Theming

    • Settings page

    • Notifications

    • Opening links with keyboard

    • Better <pre>

    • Custom file picker for Linux (...)

  • Major features

    • E2E
      • Device verification
      • Edit/delete own devices
      • Request room keys from own other devices
      • Auto-trust accounts within the same client
      • Provide help when undecryptable messages occur, including:
        • Trigger nio.AsyncClient.request_room_key
        • Option to export-logout-login-import to fix one-time key problems
    • Read receipts
    • Status message and presence
  • Client improvements

    • Refetch profile after manual profile change, don't wait for a room event

    • Prevent starting multiple client instances, causes problems with E2E DB

    • Check if username exists on login screen

    • Soft logouts

    • pyotherside.atexit()

    • Logout previous session if adding an account that's already connected

    • Config file format

    • Startup improvements

      • Initial sync filter to get more events on first sync
      • Lazy loading members
      • Store profiles, room events and states
      • Use AsyncClient store_sync_tokens
        • Make sure to all members are fetched before sending an E2E message
        • Fetch all members when using the filter members bar
    • Direct chats category

    • Animate RoomEventDelegate DayBreak apparition

    • Live-reloading accounts.json

  • nio

    • Dedicated error for invalid password on key import

    • Running blocking DB function calls in executor

    • AsyncClient.share_group_session: send device batches concurrently

    • RoomMessageMedia and RoomAvatarEvent info attributes

    • m.room.aliases events

    • MatrixRoom invited members list

      • Verify room has correct name when creating direct chat and peer hasn't
        accepted the invite yet
    • Left room events after client reboot

    • org.matrix.room.preview_urls events

    • Support "Empty room (was ...)" after peer left

    • Previewing room without joining

    • Get content repo config API

    • Add the resume() method

    • See if we can turn all the Error classes into actual exceptions

  • Distribution

    • Include python dependencies in binary with rcc?
    • README.md