Skip to content

v0.1.0

Choose a tag to compare

@devin-ai-integration devin-ai-integration released this 09 Sep 15:41
· 9 commits to main since this release

First release. Google-Docs style co-editing of issues, comments and wiki pages with no extra infrastructure: browsers synchronize through Redmine itself over HTTP polling, no websocket server.

Demo

Features

  • Collaborative real-time editing (Yjs CRDT) of issue descriptions, issue notes, edited journal notes and wiki pages
  • Transport over plain HTTP polling to the Redmine app itself, optional long polling; no websocket server or infrastructure change
  • Every other field of the issue edit form (status, assignee, dates, custom fields...) is shared as well: remote changes are applied to the native controls with a "changed by" mark, and survive Redmine's own form refresh
  • Remote carets and selections of the other editors drawn over the textarea, one colour per user with a name label
  • Presence bar under each shared textarea: who else is editing, who is typing, live/offline state
  • Shared drafts survive a page reload for a configurable time and are discarded after everybody leaves
  • Saving from a co-edited issue form or wiki page does not trigger Redmine's stale-object conflict for the other editors; changes made outside a collaborative form still do
  • New comments private (default, presence only) or shared; when a shared comment is posted the other editors get a banner naming the author and the notes box is locked until they reload
  • Plugin settings: fields to share, notes mode, poll periods, long polling hold, draft lifetime, compaction threshold

Compatibility

Redmine 5.1, 6.0, 6.1 and 7.0 (tested in CI). No Node.js needed to install: the Yjs bundle is committed.

Install

cd /path/to/redmine/plugins
git clone --branch v0.1.0 https://github.com/jperelli/redmine_realtime_editor.git
cd /path/to/redmine
bundle exec rake redmine:plugins:migrate RAILS_ENV=production

Plugin directory: https://www.redmine.org/plugins/redmine_realtime_editor