Add user preferences to retain deleted messages and edit history (default true). Introduce MessageFlag::DeletedBySender and HistoryItem::markDeletedBySender()/isDeletedBySender() to mark items instead of destroying them when keepDeletedMessages is enabled. Update Session::processMessagesDeleted/processNonChannelMessagesDeleted to respect the preference. Add EditedVersion, Session::recordEditVersion/editVersions and an _editVersions map; HistoryItem::applyEdition records prior text/date when keepEditHistory is enabled (keeps up to 50 versions). Add tests/tests_keep_deleted_messages.py covering the new behavior.