Summary
SRPCTransport.create() accepts interceptors: list[ClientCallInterceptor] but never stores or applies them. Interceptor middleware (logging, auth, tracing) is silently ignored.
Root cause
create() discards interceptors before construction:
@classmethod
def create(cls, card, url, config, interceptors): # accepted
channel = config.slimrpc_channel_factory(url)
return cls(channel, card) # dropped
Suggested fix
Mirror the upstream JsonRpcTransport pattern:
- Accept and store
interceptors in __init__
- Forward from
create() → __init__
- Add
_apply_interceptors() and call it in every method before the stub call
Affected version
slima2a 0.3.0
Summary
SRPCTransport.create()acceptsinterceptors: list[ClientCallInterceptor]but never stores or applies them. Interceptor middleware (logging, auth, tracing) is silently ignored.Root cause
create()discards interceptors before construction:Suggested fix
Mirror the upstream
JsonRpcTransportpattern:interceptorsin__init__create()→__init___apply_interceptors()and call it in every method before the stub callAffected version
slima2a0.3.0