Sounds good. I still wonder about the use of wrapping for SWISH. After all, the wrapping is effective for all threads, so you have to use some thread-local activation anyway (global variable, thread-local predicate). Why not create a hard coded wrapper? Possibly not in general, but for SWISH embedding using conditional compilation.
As it stands, the new version of clpBNR that runs on SWISH is only missing two features that are available on a local SWIP install: tracing constraint propagation (which uses wrap_predicate) and the trace action on setting watchpoints on clpBNR intervals, which requires debugger activation via trace/0. These are both somewhat obscure developer tools and I don’t see any need to support these on SWISH - anybody using them should probably be running on local SWIP. So don’t expend any extra effort on my account; the status quo is quite acceptable IMO.