feat: F5.1 server F keeps the shared documents

A new package, packages/server: Hocuspocus 3.4.4 on /sync, a project a
document, refused with a reason when the store has not got it; every update
stored in Postgres as it comes and compacted after 500 updates, a minute of
quiet and when the last person leaves (FOR UPDATE on the row written when
the project is made); the janitor runs only here, at loading and 250 ms
after a change that is not its own; readers change nothing; /healthz; JSON
log. On closing it takes no one new and closes the sockets too (Hocuspocus'
close is a message after which a client signs in again on the same socket).
The tests use real clients against a throwaway Postgres in Docker.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-04 13:30:43 +00:00
co-authored by Claude Opus 5.5
parent bd2e725791
commit 88db6eff7e
17 changed files with 1245 additions and 3 deletions
+30
View File
@@ -0,0 +1,30 @@
{
"name": "@mdg-filius/server",
"version": "0.0.0",
"private": true,
"license": "GPL-3.0-only",
"type": "module",
"exports": {
".": "./src/index.ts"
},
"scripts": {
"build": "esbuild src/main.ts --bundle --platform=node --format=esm --target=node20 --outfile=dist/main.mjs --external:pg-native --banner:js=\"import { createRequire } from 'node:module'; const require = createRequire(import.meta.url);\"",
"start": "node dist/main.mjs"
},
"dependencies": {
"@hocuspocus/server": "3.4.4",
"@mdg-filius/core": "0.0.0",
"@mdg-filius/doc": "0.0.0",
"@mdg-filius/protocol": "0.0.0",
"@mdg-filius/sim": "0.0.0",
"pg": "8.23.1",
"ws": "8.22.0",
"y-protocols": "1.0.6",
"yjs": "^13.6.33"
},
"devDependencies": {
"@hocuspocus/provider": "3.4.4",
"@types/pg": "8.23.1",
"@types/ws": "8.18.2"
}
}