feat: add collaborative whiteboard app - #572
Merged
Merged
Conversation
dschmidt
reviewed
Sep 24, 2026
dschmidt
reviewed
Sep 24, 2026
dschmidt
reviewed
Sep 24, 2026
Contributor
|
Thanks for taking care of the extraction |
Member
|
Can you please add a tx config to the |
AlexAndBear
reviewed
Sep 26, 2026
Adds an Excalidraw whiteboard on top of the Groupware yjs infrastructure. The app contributes the adapter between the .excalidraw file format and the shared Y.Doc plus a thin React host; everything the user sees inside the editor is Excalidraw's own UI, including the collaborator avatars it derives from the same awareness. Also wires the yjs service into the dev stack and the e2e pipeline, which had no collaboration backend before.
AlexAndBear
force-pushed
the
feat/excalidraw-app
branch
from
September 29, 2026 09:13
ed8a382 to
5563b3b
Compare
AlexAndBear
reviewed
Sep 29, 2026
AlexAndBear
previously requested changes
Sep 29, 2026
The published 8.0.0 does not list yjs and y-protocols/awareness as external modules yet, so the app bundled its own copy of yjs instead of taking it from the host and failed with "Yjs was already imported". The range carries a prerelease so that any 8.1.0 prerelease and the final 8.1.0 match. minimumReleaseAgeExclude is version exact and needs the alpha listed explicitly.
pnpm-lock.yaml conflicted with the renovate dependency updates on main. Resolved by taking main's lockfile and reinstalling, so the extension-sdk prerelease pin is re-resolved on top of the updated dependencies.
The app takes yjs from the host rather than bundling its own copy. Web shares it since web#3398, which is not in 8.0.0, the version the CI image serves. Without it the remote cannot evaluate, the app never registers and the "New" menu entry the test clicks does not exist. Uses the existing skipIfWeb fixture, same as web-app-unzip. Remove the guard once an OpenCloud image ships web 8.1.0 or newer.
The image declares WORKDIR /app and CMD ["node", "src/server.ts"], but woodpecker runs service containers in the workspace directory, so node looked for src/server.ts inside the repository and the service died with MODULE_NOT_FOUND before accepting any connection.
The requirement was only phrased relative to the extension-sdk version, which a deployment cannot act on. The sdk pin covers the build side only; which OpenCloud serves the app is up to the deployment, so the minimum belongs in the docs. Same boundary the e2e guard uses.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This adds the excalidraw app: opencloud-eu/web#3111