1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
[]
= "conclave-cli"
= "0.2.0"
= "2024"
= "2"
= ["Aaron Roney <twitchax@gmail.com>"]
= "Discord-for-agents: shared channels that let Claude Code sessions talk to each other over a central server."
= "MIT"
= "https://github.com/twitchax/conclave"
= "README.md"
= ["cli", "claude", "mcp", "agents", "chat"]
= ["command-line-utilities"]
# The published crate is `conclave-cli` (the bare `conclave` name is squatted),
# but the installed binary is still `conclave` (see DESIGN.md §20).
[]
= "conclavelib"
= "src/lib.rs"
[[]]
= "conclave"
= "src/bin.rs"
# Framework deps + the M1 substrate (wire protocol, identity, embedded store).
# Later feature crates (axum/tungstenite/rustls) land in the milestone that needs
# them — see .prds/PRD-0003..0006 and DESIGN.md §21.
[]
= "1"
# The central server's WSS endpoint (M2): axum's WebSocket upgrade over a plain-HTTP origin —
# TLS terminates at cloudflared (DESIGN.md §11/§12), so no rustls here. `default-features = false`
# keeps it to the WS server essentials.
= { = "0.8", = false, = ["tokio", "http1", "ws"] }
= "0.22"
# `serde` feature bridges bincode 2 to our serde-derived frames (bincode::serde::*).
= { = "2", = ["serde"] }
= { = "0.4", = ["serde"] }
= { = "4", = ["derive", "env"] }
= "6"
# Hostname for the `register --machine` default (DESIGN.md §5.1); tiny, zero-dependency.
= "1"
# `Stream`/`Sink` combinators to split the axum WebSocket into independent read/write halves so a
# session can be fanned-out to while it is still reading (M2 session driver).
= { = "0.3", = false, = ["std", "sink", "async-await"] }
# Ed25519 (and the ECDH / AEAD / HKDF primitives v2 E2E will need) via `ring` — one
# audited crypto dependency. `from_seed_unchecked` keeps the clean raw-32-byte-seed
# keystore, and `ring`'s system RNG replaces a separate rand/getrandom dependency.
= { = "0.17", = ["std"] }
= "0.10"
= { = "1", = ["derive"] }
# The bridge's MCP stdio peer speaks newline-delimited JSON-RPC 2.0 (M3); the wire protocol to
# central stays bincode. `serde_json` is only for the Claude Code ↔ bridge hop.
= "1"
# Embedded SurrealDB via the bare SDK (no ORM). SurrealKV is the pure-Rust on-disk
# backend (clean cross-compile); kv-mem backs hermetic tests. DESIGN.md §15.
= { = "3", = false, = ["kv-mem", "kv-surrealkv"] }
= "2"
# M2 adds `sync`/`time`/`net`/`signal`; M3's bridge adds `io-std` (stdin/stdout MCP transport)
# to the M1 baseline.
= { = "1", = false, = ["rt-multi-thread", "macros", "io-util", "io-std", "sync", "time", "net", "signal"] }
# The bridge's outbound WS client to central servers (M3); also drives the M2 e2e test client.
# `rustls-tls-webpki-roots` lets the client dial `wss://` (TLS terminates at the cloudflared/fly.io
# edge, DESIGN §11/§12) with the Mozilla CA roots bundled — no system cert store (PRD-0009 T-001).
= { = "0.29", = ["rustls-tls-webpki-roots"] }
# Pulled transitively by tokio-tungstenite's TLS; depended on directly only to install a process
# default crypto provider — rustls 0.23 cannot auto-pick when several are compiled in (PRD-0009 T-001).
= "0.23"
= "1"
= "0.1"
= { = "0.3", = ["fmt", "ansi", "env-filter"] }
[]
= "1"
= "3"
# `test-util` (paused clock) drives the deterministic reaper/reconnect tests; `process` lets the
# M3 e2e drive spawned `conclave bridge` processes over async stdio. Dev-only.
= { = "1", = ["test-util", "process"] }
# Lints live in the Cargo `[lints]` table so they apply DRY across lib + bin
# (DESIGN.md §22). Groups run at priority -1 so specific lints can override them,
# and so the narrow, justified `allow`s macro codegen occasionally needs stay local.
[]
= { = "deny", = -1 }
[]
= { = "deny", = -1 }
= { = "deny", = -1 }
= { = "deny", = -1 }
= "deny"
[]
= 3
= true
= 1
= true
# Fast-iterate: release-like codegen without the expensive LTO / single-CGU link.
[]
= "release"
= 1
= false
= 16
= 1
= false
# Backs the Performance constitution's "measure hot paths with criterion":
# release optimizations, full debug info, no LTO so symbols stay legible.
[]
= "release"
= 2
= false
= false