feat: F5.6c measured and accepted on test-filius; tickets up to 5 s ahead of F's clock

test-filius refused every ticket as from the future: its clock was 886 ms
behind the dashboard's machine, with NTP still 8 ms (one ticket in 125, as a
ticket carries whole seconds). F now takes a ticket signed up to 5 s ahead
(TICKET_AHEAD_SECONDS); itsdangerous refuses one second, and the oracle
keeps that on record.

tools/live measures and accepts on a live F, with fresh projects each run:
m3 (200 rooms of the largest example with pings: probe p95 37 ms), m4 (63 KB
document; dragging makes an update per pointer move, 59/s), m5 (an hour
through the proxy), acceptance (two browsers, 14 checks, passed three times)
and clock (F's clock against ours).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-04 19:22:22 +00:00
co-authored by Claude Opus 5.5
parent 087721cba3
commit 416d5fdea3
15 changed files with 630 additions and 7 deletions
+10
View File
@@ -78,6 +78,16 @@ Braucht Docker Compose v2. Gesichert werden muss nur das Volume
`conf.d`); vorher die Adresse von F für `filius-lxc.invalid` einsetzen.
`FILIUS_ORIGINS` ist jeweils der eigene Name mit `https://`.
**Die Uhr von F muss per NTP laufen** (beim LXC: die des Proxmox-Hosts).
Eine Eintrittskarte trägt ganze Sekunden; F nimmt sie bis 5 s vor seiner
Uhr. Ging F 886 ms nach, scheiterte fast jede Anmeldung.
`node tools/live/clock.mjs <adresse> <port>` misst den Versatz.
Messen und Abnehmen an einem laufenden F: `tools/live/` (`m3.ts` Last,
`m4.ts` Dokumentgröße, `m5.ts` Dauerverbindung, `acceptance.ts` zwei
Browser in einem Projekt) mit den Geheimnissen der Umgebung in
`/root/.filius-test.env`; jeder Lauf legt frische Projekte an und löscht sie.
Das Image liefert auch den Editor aus: F nimmt den Ordner `editor/` neben
`main.mjs` (anderswo `FILIUS_EDITOR_DIR`). Es läuft auf Node 24, die
Entwicklung auf Node 20; vor einem Update einmal mit