v2.7.1
Patch release — four bug fixes to the request/reply mux inbox (#118) and the pull-pipelining engine (#120).
Fixed
[bugfix]request()/requestMany()now surface a clear, catchableConnectionExceptionwhen the shared mux reply-inbox subscription_INBOX.<inbox>.*is rejected by server permissions, instead of hanging every request to a silent timeout (#167). The connection detects the async permission-ERR, drops the dead mux state (so a reconnect does not replay the rejected wildcard SUB), and fails requests fast with a message naming the_INBOX.>wildcard permission required. The in-flight request that triggers the rejection also fails fast.[bugfix]Pull consumers with a priority group under theoverflow/prioritizedpolicy now honorsetDepth()instead of pulling strictly serially — those policies never emit aNats-Pin-Id, so the grouped-and-unpinned serialization guard previously disabled pipelining for the whole run. A grouped run now pulls serially only until its first delivery, then fans out. Conversely, apinned_clientgroup that captured a pin and then LOST it (a423cleared it mid-run) now re-serializes its pin re-capture instead of racing pin-less pulls at full depth (#170).[bugfix]requestMany()no longer discards already-collected replies if the mux reply inbox is permission-rejected mid-collection: it returns the partial batch it has, and surfaces the clear permission error only when nothing was collected.
Full gate: PHPStan level 8, 1746 unit tests. No public API or wire-format change.