hydrogen-web/doc/TODO.md
2019-06-03 00:33:19 +02:00

2.7 KiB

Minimal thing to get working

  • DONE: finish summary store
  • DONE: move "sdk" bits over to "matrix" directory
  • DONE: add eventemitter
  • DONE: make sync work
  • DONE: store summaries
  • DONE: setup editorconfig
  • DONE: setup linting (also in editor)
  • DONE: store timeline
  • DONE: store state
  • DONE: make summary work better (name and joined/inviteCount doesn't seem to work well)
  • DONE: timeline doesn't seem to recover it's key well upon loading, the query in load seems to never yield an event in the persister
  • map DOMException to something better
    • it's pretty opaque now when something idb related fails. DOMException has these fields: code: 0 message: "Key already exists in the object store." name: "ConstraintError"
  • DONE: emit events so we can start showing something on the screen maybe?
  • DONE: move session._rooms over to Map, so we can iterate over it, ...
  • DONE: build a very basic interface with
    • DONE: a start/stop sync button
    • DONE: a room list sorted alphabetically
  • DONE: do some preprocessing on sync response which can then be used by persister, summary, timeline
  • DONE: support timeline
    • DONE: clicking on a room list, you see messages (userId -> body)
  • DONE: style minimal UI
  • DONE: implement gap filling and fragments (see FRAGMENTS.md)
  • allow collection items (especially tiles) to self-update
  • improve fragmentidcomparer::add
  • send messages
  • better UI
  • fix MappedMap update mechanism
  • see if in BaseObservableMap we need to change ...params
  • put sync button and status label inside SessionView
  • fix some errors:
    • find out if (this._emitCollectionUpdate)(this) is different than this._emitCollectionUpdate(this)
    • got "database tried to mutate when not allowed" or something error as well
    • find out why when RoomPersister.(_createGapEntry/_createEventEntry) we remove .buffer the transaction fails (good), but upon fixing and refreshing is missing a message! syncToken should not be saved, so why isn't this again in the sync response and now the txn does succeed?
  • DONE: take access token out of IDB? this way it can be stored in a more secure thing for non-web clients, together wit encryption key for olm sessions ... ? like macos keychain, gnome keyring, ... maybe using https://www.npmjs.com/package/keytar
  • experiment with using just a normal array with 2 numbers for sortkeys, to work in Edge as well.
  • send messages
  • fill gaps with call to /messages
  • create sync filter
  • lazy loading members
  • decide denormalized data in summary vs reading from multiple stores PER room on load
  • allow Room/Summary class to be subclassed and store additional data?
  • store account data, support read markers