* [history-ot] rename remaining history-v1-ot references to history-ot
* [web] rename History-v1 OT -> History OT in admin panel
* [web] rename OT Migration -> History OT Migration in admin panel
GitOrigin-RevId: 103ce816d5320d6379d51009cdc08b8a71aa48e6
* [history-v1-ot] initial implementation of using doc-level history-v1-ot
* [web] fix advancing of the otMigrationStage
Use 'nextStage' for the user provided, desired stage when advancing.
Co-authored-by: Brian Gough <brian.gough@overleaf.com>
* [document-updater] document size check in editor-core
* [history-ot] rename history-v1-ot to history-ot and add types
* [history-ot] apply review feedback
- remove extra !!
- merge variable assignment when processing diff-match-match output
- add helper function for getting docstore lines view of StringFileData
Co-authored-by: Alf Eaton <alf.eaton@overleaf.com>
* Revert "[document-updater] add safe rollback point for history-ot (#25283)"
This reverts commit d7230dd14a379a27d2c6ab03a006463a18979d06
Signed-off-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
---------
Signed-off-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
Co-authored-by: Brian Gough <brian.gough@overleaf.com>
Co-authored-by: Alf Eaton <alf.eaton@overleaf.com>
GitOrigin-RevId: 89c497782adb0427635d50d02263d6f535b12481
* [misc] freeze time before any other unit test setup steps
Freezing it after other work (notably sandboxed-module imports) will
result in flaky tests.
* [web] update the projects lastUpdated timestamp when changing file-tree
GitOrigin-RevId: b82b2ff74dc31886f3c4bd300375117eead6e0cd
Note: "connected" here means across all real-time pods.
- editing_session_mode, counter
- mode=connect - a client connected
- mode=disconnect - a client disconnect
- mode=update - continuous editing
- status=empty - all clients disconnected
- status=single - a single client is connected
- status=multi - multiple clients are connected
- project_not_empty_since histogram with buckets [0,1h,2h,1d,2d,1w,30d]
- status=empty/single/multi as described above
GitOrigin-RevId: 1cc42e72bbb5aae754399bdbc3f8771642f35c22
* Support for adding reviewer role
* show reviewer in track changes user list
* added "review" in assertClientCanViewProject
* test if reviewer can read project
* added collaboratorsGetter tests
* eit toggle-track-changes when track changes changes
* [real-time] ensure tc is enabled when reviewer role is used
* use assertClientCanReviewProjectAndDoc, refactor _assertClientCanApplyUpdate
GitOrigin-RevId: 158bd1ff0d4b4977da950134f8ad8b3740855290
* Support for adding reviewer role
* show reviewer in track changes user list
* added "review" in assertClientCanViewProject
* test if reviewer can read project
* added collaboratorsGetter tests
* eit toggle-track-changes when track changes changes
* Support for changing privilege to reviewers for invited users (#22159)
* Add reviewer in change privilege level handler
* added reviewer translation
* added acceptance tests
* fix tests
* Set track changes state permissions for reviewer role (#22167)
* Add reviewer in change privilege level handler
* added reviewer translation
* added acceptance tests
* fix tests
* Set track changes state permissions for reviewer role
* added authorization helper tests
* added ensureUserCanReviewProjectContent middleware
* allow changing track changes only with write permissions
* removed canUserReviewProjectContent
* List projects where user is added as a reviewer (#22249)
* List projects where user is added as reviewer
* list projects in /user/projects
* fix tests
GitOrigin-RevId: 54064a7f961fe06f188ab449cd469cdaaf01b20a
* Add `unicorn/prefer-node-protocol`
* Fix `unicorn/prefer-node-protocol` ESLint errors
* Run `npm run format:fix`
* Add sandboxed-module sourceTransformers in mocha setups
Fix `no such file or directory, open 'node:fs'` in `sandboxed-module`
* Remove `node:` in the SandboxedModule requires
* Fix new linting errors with `node:`
GitOrigin-RevId: 68f6e31e2191fcff4cb8058dd0a6914c14f59926
- renamed package from `metrics-sharelatex` to `@overleaf/metrics`
- drop support for statsd backend
- decaffeinate
- compress `/metrics` response using gzip
- bump debugging agents to latest versions
- expose prometheus interfaces for custom metrics (custom tags)
- cleanup of open sockets metrics
- fix deprecation warnings for header access
A stale browser tab tried to join a deleted project.
Emitting 'project not found'/'ProjectNotFound' will trigger a page
reload in the frontend, upon web can render a 404.
See frontend: ConnectionManager.joinProject callback
Users will get redirected to the login page and will see a 'restricted'
page after logging in again.
See frontend: ConnectionManager.reportConnectionError
ioredis may reuse the error instance for multiple callbacks. E.g. when
the connection to redis fails, the queue is flushed with the same
MaxRetriesPerRequestError instance.
See the docs of OError.tag:
https://github.com/overleaf/o-error#long-stack-traces-with-oerrortag
(currently at 221dd902e7bfa0ee92de1ea5a3cbf3152c3ceeb4)
I am tagging all errors at each async hop. Most of the controller code
will only ever see already tagged errors -- or new errors created in
our app code. They should have enough info that we do not need to tag
them again.