On 20 Juli, 11:42, Michael Van Biesbrouck <
mlvan...@gmail.com> wrote:
> Not a race condition (non-deterministic behaviour in which one event
> sometimes happens before another), but definitely a problem with your
> robot. The sample robots detect their own blip changes and don't
> respond to them, thus avoiding this problem. I think that Debuggy is
> one example.
>
I stand corrected, not a race condition. I was tired when I wrote that
post.
Anyway, Debuggy doesn't listen for the VERSION events at all.
<w:capability name="wavelet_self_added"/>
<w:capability name="wavelet_participants_changed"/>
<w:capability name="blip_submitted"/>
<w:capability name="document_changed"/>
<w:capability name="wavelet_blip_created"/>
Yes, there is a problem with the bot, but my question is how to adress
it. The Debuggy bot, for instance, does not perform any precondition
checks before procesing the event. The only check is to prevent it to
trace it's own blips. It still acts on every event it receives, which
leads me to believe that the above event, i.e. the one it responds to
do not trigger the bot when it sends it's delta to the server.
As opposed to the behaviour of my bot. I can post the source if anyone
is interested but it's trivial. It just writes the event name to the
wave when it receives it. And it receives the BLIP_VERSION_CHANGED and
WAVELET_VERSION_CHANGED events when it posts to the wave (and here's
the interesting part) but not the other events.