Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions .changeset/protocol_thread_schema.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
livekit-protocol: patch

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Dependent crate bumps missing from changeset

When livekit-protocol changes, this changeset omits its dependent crates. The changeset check requires their bumps and fails the PR.

Learn more

The changeset check computes the transitive closure of knope-managed packages depending on each changed crate in detect. Multiple managed workspace crates depend on livekit-protocol, including livekit-api, livekit-token, livekit, livekit-ffi, and livekit-uniffi. Listing only the protocol crate leaves these required bumps missing, and the check exits with failure.

Example: A change to lib.rs affects livekit-api through its workspace dependency. The check requires both crates, but finds only livekit-protocol: patch in this changeset.

Recommended fix: Run the changeset detection script with cargo available and add every reported missing knope-managed crate to the front matter with the appropriate bump.

Devin Review


Was this helpful? React with 👍 or 👎 to provide feedback.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

might need to add livekit-api to this changeset

livekit: patch
livekit-api: patch
livekit-capture: patch
livekit-common: patch
livekit-data-stream: patch
livekit-datatrack: patch
livekit-ffi: patch
livekit-rpc: patch
livekit-signaling: patch
livekit-token: patch
livekit-uniffi: patch
---

`livekit-protocol` exposes the conversation schema of a thread's database, as protocol's Go package
does: `agent::THREAD_SCHEMA_VERSION` and `agent::THREAD_SCHEMA_V1` (the SQL); the crates that
depend on it follow its bump.
21 changes: 21 additions & 0 deletions livekit-protocol/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,27 @@ include!("livekit.rs");
/// `include!` or the types exist on disk and are reachable from nowhere.
pub mod agent {
include!("livekit.agent.rs");

/// The newest conversation schema a thread's database can hold (protocol's
/// `livekit/agent/thread_schema.go`).
pub const THREAD_SCHEMA_VERSION: i64 = 1;

/// Version 1 of the conversation schema inside a thread's database, one statement per `;`
/// (comments hold none).
pub const THREAD_SCHEMA_V1: &str =
include_str!("../protocol/livekit/agent/thread_schema_v1.sql");

#[cfg(test)]
mod tests {
use super::*;

#[test]
fn the_thread_schema_matches_protocol() {
let go = include_str!("../protocol/livekit/agent/thread_schema.go");
assert!(go.contains(&format!("const ThreadSchemaVersion = {THREAD_SCHEMA_VERSION}")));
assert!(THREAD_SCHEMA_V1.contains("CREATE TABLE schema_version"));
}
}
}

/// The `logger` protobuf package: the `Sensitivity` field annotation enum.
Expand Down
Loading