feat: DX v0.1.2 — userId-параметр, waitForStatus, parseEventType/ack
- send/emit: первый класс ?string $userId (сливается с payload,
  параметр сильнее payload['user_id'])
- waitForStatus(): поллинг статуса события до целевого
  (дефолт done/failed, timeout 30 c); морг транспорта не прерывает
  ожидание, не дождались — StatusTimeoutException с последним статусом
- WebhookVerifier: parseEventType() — тройка из X-Gnexus-Event-Type,
  ack(?eventId) — тело ответа 2xx приёмника
- smoke: источник из SYNAPSE_DEFAULT_SOURCE (как в реальном сервисе),
  userId в обоих send; прогнан против живого стека — ALL OK
- README: waitForStatus/userId в списке методов, новые строки таблиц

Тесты: phpunit OK (47 tests, 124 assertions).

Co-Authored-By: Claude Code <noreply@anthropic.com>
1 parent 200550e commit b5dcb61ea403fdae6e7fc51c74d50c86e8f400e9
@Eugene Sukhodolskiy Eugene Sukhodolskiy authored 1 day ago
Showing 7 changed files
View
README.md
View
examples/plain-php/smoke.php
View
src/Exception/StatusTimeoutException.php 0 → 100644
View
src/SynapseClient.php
View
src/Webhook/WebhookVerifier.php
View
tests/SynapseClientTest.php
View
tests/WebhookVerifierTest.php