GaduGadu protocol supports delivery acknowledges - you can be sure that message was received. Kadu implemented it in two ways (you can choose one in Configuration):
* ignore it
* block chat window until ack is received
The first one sucks, because message could be lost in deep network and you will never know, second one sucks, because you sometimes have to wait for more than 5 second until you could write another message.
On 2007 mishaaq wrote a patch that would display a status icon next to each message. So you have information about delivery and chat window is not blocked. This patch was not applied (don't remember why) and is not available now (url is invalid now). This functionality is so much needed - I decided to write simple version of it from scratch.
As usual for me I started with looking again at the whole messages code and I've found that we need to make MessagesManager, remove PendingMessagesManager (or change it into MessagesManager), make Message a StorableObject and QSharedData and then everything will work great and look great and will be very hackable ;)
In near future 50% of Kadu classes will be managers. I hope it is a right way - it still looks so.