88a284cc91
Extracted SyncSupplierProjectJob::targetWeekdayForNow() — slepok cut-off boundary is 21:00 МСК, matching supplier's snapshot fix-point. Before fix Carbon::tomorrow flipped at midnight, mis-aligning portal sync (Thu 23:59 МСК pointed to Fri while post-21:00 portion of day N belongs to slepok dated N+1 effective day N+2). hour < 21 МСК → target = today + 1 day hour >= 21 МСК → target = today + 2 days 3 pure unit tests (Mon 20:00→Tue, Mon 22:00→Wed discriminator, Tue 00:01→Wed no-midnight-flicker) confirm new logic. Baseline regression verified — 8 pre- existing Pest failures on Windows-native PG env are NOT caused by this change. Stage 4 §4.4.2. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>