Skip to main content

liminal_server/server/participant/
mod.rs

1//! Server-owned participant storage and transport bindings.
2//!
3//! The conversation event stream, opaque aggregate owner, and connection-
4//! incarnation stream are production durability boundaries over protocol-owned
5//! transitions. The older crash/cursor/detach repositories remain test-only
6//! regression fixtures until their operations move behind the aggregate.
7
8#[allow(
9    dead_code,
10    reason = "production aggregate boundary is wired before its participant runtime consumer"
11)]
12mod aggregate;
13#[allow(
14    dead_code,
15    reason = "production aggregate registry is wired before participant handlers consume it"
16)]
17mod aggregate_registry;
18mod conversation_stream;
19#[cfg(test)]
20mod crash_repository;
21#[cfg(test)]
22mod cursor_repository;
23#[cfg(test)]
24mod detach_repository;
25mod dispatch;
26pub mod dispatch_impact;
27pub(super) mod incarnation_stream;
28mod production;
29pub(crate) mod publication;
30mod transport;
31
32#[cfg(test)]
33mod aggregate_registry_tests;
34#[cfg(test)]
35mod aggregate_tests;
36#[cfg(test)]
37mod conversation_stream_tests;
38#[cfg(test)]
39mod crash_repository_tests;
40#[cfg(test)]
41mod cursor_repository_tests;
42#[cfg(test)]
43mod detach_repository_tests;
44#[cfg(test)]
45mod dispatch_impact_tests;
46#[cfg(test)]
47mod dispatch_tests;
48#[cfg(test)]
49mod incarnation_stream_tests;
50#[cfg(test)]
51mod transport_tests;
52
53pub use dispatch::{
54    ConnectionFateClass, ConnectionFateWorkItem, InstalledParticipantService,
55    ParticipantConnectionContext, ParticipantConnectionConversations,
56    ParticipantConnectionFateOutcome, ParticipantDispatch, ParticipantDispatchError,
57    ParticipantSemanticError, ParticipantSemanticHandler, ParticipantSemanticOutcome,
58    ParticipantServiceFatal, dispatch_generic_frame,
59};
60pub use production::marker_source::{
61    MarkerSourceRefusalReason, MarkerSourceRefused, ValidatedFencedMarkerInputs,
62    validate_marker_source,
63};
64#[cfg(test)]
65pub(crate) use production::tests::test_participant_config;
66pub(crate) use production::{ProductionParticipantHandler, constant_time_eq};
67pub(crate) use publication::{
68    ObserverPublication, ParticipantPublicationError, ParticipantPublicationInbox,
69    ParticipantPublicationRegistry,
70};
71pub use publication::{
72    ObserverPublicationTarget, ParticipantOfferedProgress, ParticipantPublication,
73};
74pub use transport::{
75    PARTICIPANT_CAPABILITY_BIT, ParticipantIngress, ParticipantSession, encode_server_push,
76    encode_server_value, gate_generic_frame, normalize_configured_frame_limit,
77    preflight_generic_bytes,
78};