OK, found the problem. Well, two problems.
First is that we weren't recognizing [$my->id], it was still expecting {$my->id}, as that code predates when we cghanged to using [] instead of {} inside {fabrik ...} plugin strings, due to issues with the way J! parses those strings (embedding { ... {...} ...} breaks it). I'm adding some code in there so we recognize either usage.
But the problematic one, the "serialization of closure", is because of the way we build the $cacheId, when displaying the view. The $cacheId is created as ...
Code:
$cacheId = serialize(array($uri, $input->post, $user->get('id'), get_class($view), 'display', $this->cacheId));
... which produces a unique string for this view, which tells us if we can use the cached content, or need to rerun the display. And it seems that when loading the CB page, the $input->post now includes some J! objects (inserted by the CB page handling), which indeed are "closures" and cannot be serialized.
I'm reluctant to change that, as we need the POST data in there to control normal handling of Fabrik display caching.
I think what I'll need to do is add a session variable in the CB plugin, something like fabrik.plugin.nocache, and test that in the main form display code.
Once I've sorted that out, I'll take a look at that "is not compatible with your CB version" thing.
-- hugh