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
//! Optional, dependency-safe observation boundary for real session
//! lifecycle transitions [`super::RuntimeState`] already decides (plan
//! task 12, ยง8.7). Mirrors `kv_integration::lifecycle`'s shape exactly:
//! this crate defines the contract, a host runtime-event system
//! implements it, and `RuntimeState` never depends on host-runtime types.
//!
//! Implementations must return promptly: no I/O, no blocking, no panics.
//! A missing or slow observer never changes session/lane behavior.
/// One session-lifecycle transition, carrying bounded counts/durations
/// only. Never a session id, page id, or content of any kind.
/// Optional sink for [`SessionLifecycleEvent`]s. Degrades silently on
/// failure, exactly like [`super::super::kv_integration::KvLifecycleObserver`].