# Version 3.0.7 - TextBee Automated Inbound Hardening

This version removes the need for manual TextBee pulling and hardens the automatic inbound path.

## What changed

1. TextBee `smsId` remains the primary inbound dedupe key.
2. The poller no longer discards a new active-lead reply only because the TextBee timestamp is at or slightly before the stored cursor. If the message fits the active lead window and has not been saved, it can process.
3. The background poller now uses a filesystem lock so multiple cPanel/Passenger Node workers do not poll the TextBee inbox at the same time.
4. The received-SMS API call now has a timeout so TextBee/Cloudflare 502/524 stalls do not wedge the poller.

## Recommended env values

```env
TEXTBEE_INBOUND_POLLING_ENABLED=true
TEXTBEE_INBOUND_POLLING_INTERVAL_SECONDS=30
TEXTBEE_INBOUND_POLLING_LIMIT=100
TEXTBEE_RECEIVED_SMS_TIMEOUT_MS=15000
```

Webhook remains the preferred path. Polling is only a backup for missed webhooks.
