// Copyright (C) 2026 Petr Mironychev // SPDX-License-Identifier: GPL-3.0-or-later // Additional attribution terms under GPLv3 §7(b) apply — see LICENSE #pragma once #include #include #include "session/Message.hpp" namespace QodeAssist::Session { class ConversationHistory { public: void append(const Message &message); qsizetype size() const; const QList &messages() const; const Message &at(qsizetype index) const; const Message &last() const; Message *lastMessage(); void visitBlocks(const std::function &visit); bool operator==(const ConversationHistory &other) const = default; friend QDebug operator<<(QDebug debug, const ConversationHistory &history) { return debug.nospace() << "History(" << history.m_messages << ")"; } private: QList m_messages; }; } // namespace QodeAssist::Session