feat: collaboration temps reel - edition simultanee (#62)
CI / lint (push) Successful in 1m1s
CI / security (push) Successful in 41s
CI / test (push) Successful in 1m47s
CI / build (push) Successful in 1m20s
CI / e2e (push) Successful in 10m36s
Desktop Build / build-windows (push) Canceled after 0s
Desktop Build / build-linux (push) Canceled after 0s

WebSocket /ws/collab/{vault}/{path} (rooms par fichier), relais Yjs/CRDT, awareness (curseurs colores + presence), persistance serveur debounce 2s, auth WS + check_vault_access, reconnexion automatique. Frontend frontend/js/collab.js, backend backend/collab.py. Tests: 17 backend (5 clients simultanes) + 10 frontend. Docs: CHANGELOG, ROADMAP, fiche features/collaboration.md, README FR/EN.
This commit is contained in:
2026-09-11 23:27:22 -04:00
parent 3f7b7847a5
commit 063b02e996
19 changed files with 1741 additions and 33 deletions
+12 -2
View File
@@ -93,7 +93,8 @@
<script type="importmap">
{
"imports": {
"@codemirror/state": "https://esm.sh/@codemirror/[email protected]"
"@codemirror/state": "https://esm.sh/@codemirror/[email protected]",
"yjs": "https://esm.sh/[email protected]"
}
}
</script>
@@ -111,8 +112,11 @@
rectangularSelection,
crosshairCursor,
highlightActiveLine,
Decoration,
ViewPlugin,
WidgetType,
} from "https://esm.sh/@codemirror/[email protected]?external=@codemirror/state";
import { EditorState } from "@codemirror/state";
import { EditorState, StateEffect } from "@codemirror/state";
import {
defaultHighlightStyle,
syntaxHighlighting,
@@ -196,6 +200,10 @@
rust,
oneDark,
keymap,
Decoration,
ViewPlugin,
WidgetType,
StateEffect,
};
</script>
</head>
@@ -1368,6 +1376,8 @@
title="Renommer le fichier"
/>
<div class="editor-spacer"></div>
<div class="collab-presence" id="collab-presence" style="display: none"
title="Collaboration"></div>
<span class="editor-save-dot ok" id="editor-save-dot"
><span class="dot"></span
><span id="editor-save-label">Saved</span></span