Thx to Peter for noticing not-to-be was not propagating to "owned" stuff --that seems to be working better now, but we'll keep a watch on that.
Along the way I added a helpful debugging tool. If one specifies
:cells-debug t
...to cells-reset the integrity dataflow propagation records what it does and then in the event of a backtrace prints it all out before doing a describe on the error condition.
One can also specify a function as the :cells-debug value. Here is the one I used to debug a problem today:
(a1-reset :cells-debug (lambda (c is) (loop for (id . info) in is unless (find id '(:ephemeral-reset :awaken)) do (format t "~&a1> ~(~a > ~a~) " id info) finally (describe c) (break "integ backtrace: see listener for deets"))))
The info is just whatever gets supplied as the "defer-info" when something gets queued up for integrity handling, ie, the second parameter to the with-integrity macro.
kt