Files
mdg-filius/README.md
T
julian.kiedaischandClaude Opus 5.5 88db6eff7e 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>
2026-10-04 13:30:43 +00:00

2.7 KiB

mdg-filius

Netzwerksimulation nach FILIUS für den Browser — als App „Filius" im MDG-Dashboard, gemeinsam bearbeitbar.

Based on Filius by Dr. Stefan Freischlad and the Filius project.

Dieses Projekt ist unabhängig. Es wird weder vom ursprünglichen Filius-Projekt (Universität Siegen) noch von filius-project (Filius on iPad) herausgegeben, betrieben oder unterstützt.

Herkunft

Der Simulationskern ist eine Übertragung nach TypeScript aus

Jede übertragene Datei nennt in ihrem Kopf die Quelldatei. CHANGES.md führt die Herkunft je Paket. Lizenz dieses Repos: GPL-3.0 (LICENSE).

Aufbau

Pfad Inhalt
packages/core Simulationskern: Modell, Ereignis-Warteschlange, Protokolle, Anwendungen — ohne DOM, ohne Node
packages/fls .fls lesen, schreiben, Unbekanntes bewahren
packages/doc gemeinsames Dokument (Yjs): Projekt ⇄ Dokument, Schnappschuss des Kerns, Hausmeister, die Änderungen der Werkzeuge und des Geräte-Blatts (mit Javas Eingabeprüfung)
packages/protocol die eine Nachrichtenliste zwischen Editor und Simulationsraum (/sim)
packages/sim Simulationsraum (für Server F und den Web Worker) und LocalSimHost
packages/editor Oberfläche im Iframe des Dashboards (React, Vite): Fläche, Palette, Werkzeuge des Entwurfs, Geräte-Blatt, Aktionsmodus (Desktops, Anwendungen, Datenaustausch), Dokumentationsmodus (Text, Gliederungsfläche, Bild exportieren, Bericht als PDF); npm run dev -w @mdg-filius/editor öffnet die Entwicklungsseite
packages/server Filius-Dienst auf Server F: gemeinsame Dokumente über Hocuspocus (/sync), gespeichert in Postgres (Stand und Aktualisierungen, verdichtet), Hausmeister, /healthz; npm run build -w @mdg-filius/server bündelt ihn nach dist/main.mjs (Anmeldung, Simulationsräume und Dienstweg folgen)

Plan und Entscheidungen: knowledge/plans/FILIUS_WEB_PLAN.md im Dashboard.

Entwickeln

npm install
npm run hooks      # Sprachprüfung vor jedem Commit (braucht das Dashboard drumherum)
npm run check      # Typprüfung + Tests (die Server-Tests starten eine Wegwerf-Postgres in Docker, oder nehmen FILIUS_TEST_DATABASE_URL)
npm run test:browser  # Tests im echten Browser (Playwright: Chromium; der Touch-Test auch in WebKit als iPad hoch und quer)

Code, Kommentare und Testnamen sind englisch; sichtbare Texte stehen hinter i18n-Schlüsseln (Deutsch/Englisch).