* Update websockets to allow joining document-based rooms
* dynamic websocket joining
* emit user.join/leave events when entering and exiting document rooms
* presence storage
* feat: frontend presence store
* lint
* UI updates
* First pass editing state
* refactoring
* Timeout per user/doc
lint
* Document data loading refactor to keep Socket mounted
* restore: Mark as viewed functionality
Add display of 'you' to collaborators
* fix: Socket/document remount when document slug changes due to title change
* Revert unneccessary package update
* Move editing ping interval to a shared constant
* fix: Flash of sidebar when loading page directly on editing mode
* separate document and revision loading
* add comments for socket events
* fix: Socket events getting bound multiple times on reconnect
* fix: Clear client side presence state on disconnect
* fix: Don't ignore server side error
Improved documentation
* More comments / why comments
* rename Socket -> SocketPresence
* fix: Handle redis is down
remove unneccessary join
* fix: PR feedback
* feat: Record events in DB
* feat: events API
* First pass, hacky activity feed
* WIP
* Reset dashboard
* feat: audit log UI
feat: store ip address
* chore: Document events.list api
* fix: command specs
* await event create
* fix: backlinks service
* tidy
* fix: Hide audit log menu item if not admin
* feat: New onboarding documents
* Images -> blocks
* Add tips
* test: removes assumptions of welcome documents
this actually results in the tests being much more understandable too
* add db flag when document was created from welcome flow
* Atom / RSS meta link
* Spike
* Feeling good about this spike now
* Remove document.collection
* Remove koa.ctx from all presenters to make them portable outside requests
* Remove full serialized model from events
Move events.add to controllers for now, will eventually be in commands
* collections.create event
parentDocument -> parentDocumentId
* Fix up deprecated tests
* Fixed: Doc creation
* documents.move
* Handle collection deleted
* 💚
* Authorize room join requests
* Move starred data structure
Account for documents with no context on sockets
* Add socket.io-redis
* Add WEBSOCKETS_ENABLED env variable to disable websockets entirely for self hosted
New installations will default to true, existing installations to false
* 💚 No need for promise response here
* Reload notice
Added: Unsubscribe option to notification email footers
Added: Two new notification types (emails not written yet)
Fixed: Validation added to notification setting events
* Big upgrades
* WIP: Stash
* Stash, 30 flow errors left
* Downgrade mobx
* WIP
* When I understand the difference between class and instance methods
* 💚
* Fixes: File import
Model saving edge cases
pinning and starring docs
Collection editing
Upgrade mobx devtools
* Notification settings saving works
* Disabled settings
* Document mailer
* Working notifications
* Colletion created notification
Ensure not notified for own actions
* Tidy up
* Document updated event only for document creation
Add indexes
Notification setting on user creation
* Commentary
* Fixed: Notification setting on signup
* Fix document move / duplicate stale data
Add BaseModel.refresh method
* Fixes: Title in sidebar not updated after editing document
* 💚
* Improve / restore error handling
Better handle offline errors
* 👕
* Stash. Super rough progress
* Stash
* 'h' how toggles history panel
Add documents.restore endpoint
* Add tests for documents.restore endpoint
* Document restore endpoint
* Tiding, RevisionMenu, remove scroll dep
* Add history menu item
* Paginate loading
* Fixed: Error boundary styling
Select first revision faster
* Diff summary, styling
* Add history loading placeholder
Fix move modal not opening
* Fixes: Refreshing page on specific revision
* documentation for document.revision
* Better handle versions with no text changes (will no longer be created)