This PR allows clients to render historical messages when resuming a thread via `thread/resume` by reading from the list of `EventMsg` payloads loaded from the rollout, and then transforming them into Turns and ThreadItems to be returned on the `Thread` object. This is implemented by leveraging `SessionConfiguredNotification` which returns this list of `EventMsg` objects when resuming a conversation, and then applying a stateful `ThreadHistoryBuilder` that parses from this EventMsg log and transforms it into Turns and ThreadItems. Note that we only persist a subset of `EventMsg`s in a rollout as defined in `policy.rs`, so we lose fidelity whenever we resume a thread compared to when we streamed the thread's turns originally. However, this behavior is at parity with the legacy API.
12 lines
278 B
Rust
12 lines
278 B
Rust
mod export;
|
|
mod jsonrpc_lite;
|
|
mod protocol;
|
|
|
|
pub use export::generate_json;
|
|
pub use export::generate_ts;
|
|
pub use export::generate_types;
|
|
pub use jsonrpc_lite::*;
|
|
pub use protocol::common::*;
|
|
pub use protocol::thread_history::*;
|
|
pub use protocol::v1::*;
|
|
pub use protocol::v2::*;
|