text icon indicating copy to clipboard operation
text copied to clipboard

enh/y indexeddb

Open max-nextcloud opened this issue 4 months ago • 2 comments

  • wip: try y-indexeddb
  • chore(split) useIndexedDbProvider from Editor.vue
  • fix(cron): do not reset document
  • enh(yjs): store baseVersionEtag alongside doc
  • Fixes: #7415

TODOs

  • [x] Think through other file operations.
  • [x] Typing without network, closing the editor, opening it again: no content lost
  • [x] After closing and opening the editor, undo history is empty
  • [ ] Add base_version_etag as custom property to IndexedDB
    • [x] After loading document from IndexedDB, send baseVersionEtag as part of create request
    • [x] In case of conflict, use existing manual conflict handling
    • [x] After manual conflict handling, reset y-indexeddb provider for document
    • [x] Fix endless reload loop when base version has been cleared:
      • Open file with version in indexed db but on a different baseVersionEtag.
      • Different versions are detected. Reload button is offered.
      • Reload does not change the indexed db content - so conflict persists.
    • [x] migrate change mime type test to playwright
    • [x] debug failing change mime type test.
    • [ ] make bc channel depend on base version etag.
    • [ ] Test... start editing offline, overwrite file in other tab, see what happens when getting back online @max-nextcloud
  • [ ] Opening editor: steps from IndexedDB that didn't get sent to server yet need to get pushed
  • [ ] Opening editor: when steps from IndexedDB didn't get sent to server yet, unsaved changes should be indicated and saved
  • [x] cleanup yDoc file server-side when file is deleted @mejo-
  • [ ] cleanup client side state for deleted files
  • [ ] config flag

max-nextcloud avatar Sep 08 '25 09:09 max-nextcloud

  • [x] cleanup yDoc file server-side when file is deleted @mejo-

Turns out this already happens and we don't have to change anything: https://github.com/nextcloud/text/blob/ce8ca645ab64cbf5c0de56fe214bb04d4dfee25b/lib/Listeners/BeforeNodeDeletedListener.php#L42

mejo- avatar Dec 03 '25 09:12 mejo-