The sdk sends the crypto store's next_batch_token as extensions.to_device.since. Classic /sync writes its own token there, which the homeserver refuses (400, should look like an int), so every start fell back to /sync and wrote the classic token again. The daemon now replaces a non-integer token with 0 before the client opens the store.
43 lines
1.1 KiB
TOML
43 lines
1.1 KiB
TOML
[package]
|
|
name = "hive-matrix-mcp"
|
|
edition.workspace = true
|
|
version.workspace = true
|
|
readme = "README.md"
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
anyhow.workspace = true
|
|
axum.workspace = true
|
|
clap.workspace = true
|
|
futures-util.workspace = true
|
|
hive-sock-client.workspace = true
|
|
matrix-sdk.workspace = true
|
|
# The crypto store trait and its `Changes`, for the to-device token reset in `sliding`.
|
|
matrix-sdk-base = { version = "0.18", default-features = false, features = [
|
|
"e2e-encryption",
|
|
] }
|
|
mime = "0.3"
|
|
mime_guess = "2"
|
|
reqwest.workspace = true
|
|
rmcp.workspace = true
|
|
schemars.workspace = true
|
|
serde.workspace = true
|
|
serde_json.workspace = true
|
|
swarm-matrix-client.workspace = true
|
|
swarm-secret-client.workspace = true
|
|
tokio.workspace = true
|
|
tracing.workspace = true
|
|
tracing-subscriber.workspace = true
|
|
|
|
# `hive-matrix-daemon` — long-running per-agent matrix-sdk Client +
|
|
# sync loop. Serves its MCP tools (send_message, list_rooms, …)
|
|
# directly over streamable-http — no stdio bridge, no separate bin.
|
|
[[bin]]
|
|
name = "hive-matrix-daemon"
|
|
path = "src/main.rs"
|
|
|
|
[dev-dependencies]
|
|
tempfile = "3"
|
|
tokio = { workspace = true, features = ["test-util"] }
|