SKANDER servertelegram v3.9.1 — CROSS-WORKER SIGNAL DELIVERY VALIDATION Date: 2026-08-29 ROOT CAUSE FOUND IN v3.9.0 SOURCE PASS wsFollowers was process-local PASS pollWaiters was process-local PASS recentEvents was process-local PASS Telegram ingestion could occur in Passenger worker A while Android client was attached to worker B PASS v3.9.0 canonical SETTINGS were cross-worker, but SIGNAL FANOUT was not cross-worker FIX PASS shared filesystem relay bus: data/relay_bus/events.jsonl PASS shared global sequence: data/relay_bus/sequence.txt PASS cross-worker exact-revision Telegram claim/dedupe PASS WebSocket delivery consumes shared bus events PASS HTTP /api/client/poll syncs shared bus before polling PASS admin_control also uses shared bus PASS same-worker delivery remains immediate PASS filesystem bus failure fails open for same-worker clients PASS stale retained signal events are not replayed indefinitely PASS claim files are periodically pruned CRITICAL REGRESSION FIX FOUND DURING INTEGRATION PASS incremental JSONL sync no longer drops the first newly appended event after a previous nonzero byte offset PASS partial-line trimming happens only on initial tail preload / truncation reset COMPATIBILITY PASS based on servertelegram v3.9.0 fast-persistence source PASS v3.9.0 canonical settings persistence retained PASS v3.8.2 cancel-then-replace behavior retained PASS v3.8.1 edit-cancel compatibility retained PASS v3.7.1 URL-safe direction parser retained PASS application v1.25.38 relay routes/envelope fields remain protocol-compatible STATIC / UNIT TESTS PASS npm run check PASS npm test PASS test_parser.js PASS test_formats_v32.js PASS test_v33.js PASS test_v37_edits.js PASS test_v381_edit_cancel.js PASS test_v382_edit_replace.js PASS test_v390_persistence_speed.js PASS test_v391_cross_worker_bus.js TWO-PROCESS INTEGRATION PASS Node worker A and B started on separate ports with one shared data directory PASS Android-style client registered on worker B PASS manual Telegram-style signal ingested/broadcast on worker A PASS worker A had no local follower for the registered client PASS worker B received shared signal event PASS HTTP client poll on worker B returned type=signal, pair=EURUSD, direction=CALL, sequence=2 PASS CROSS_WORKER_SIGNAL_DELIVERED=true PASS worker B sharedBus.lastError=null DEPLOYMENT HEALTH EXPECTATIONS version = 3.9.1 relay.enabled = true relay.sharedBus.lastError = null persistence.writable = true relay.sharedBus.lastSequence should advance when new signal/control is published NOTE Production delivery still requires: - correct RELAY_ACCESS_KEY match between server and app - relay enabled globally - source broadcastEnabled not false - device signalDeliveryEnabled not false - writable data directory - connected/authorized Telegram source for live channel ingestion