You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(Push): address PR review on Appwrite Push adapter
- Pipeline PUBLISHes up to the broker-advertised Receive Maximum (default
256) and match PUBACKs by packet id. Drops effective send time from
N×RTT to ~RTT for large fan-outs.
- Verify PUBACK packet id matches the in-flight publish so an
out-of-order or duplicate ack cannot attribute success to the wrong
device token (Greptile P2, Copilot).
- Surface json_encode failures as a RuntimeException instead of
silently sending an empty payload to the broker (Greptile P1).
- Persistent read buffer on the adapter so coalesced TCP reads do not
drop trailing MQTT packets between readPacket() calls (Copilot).
- MQTT::encodeConnect throws when a password is supplied without a
username (MQTT 5 §3.1.2.9, Greptile P2).
- MQTT::encodePublish validates QoS is 0/1/2 instead of silently
masking the bits (Copilot).
- FakeBroker fixture rewritten on Swoole — drops the pcntl dependency
that wasn't installed in the alpine test image, and exercises the same
async runtime Appwrite uses in production. Dockerfile installs ext-
swoole via PECL for the tests image.
- New tests: pipelined send to 64 devices, password-without-username
rejection, invalid-QoS rejection.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
0 commit comments