pub struct KernelConfig {Show 19 fields
pub enabled: bool,
pub max_processes: u32,
pub health_check_interval_secs: u64,
pub brand: String,
pub cluster: Option<ClusterNetworkConfig>,
pub chain: Option<ChainConfig>,
pub resource_tree: Option<ResourceTreeConfig>,
pub vector: Option<VectorConfig>,
pub spatial: Option<SpatialConfig>,
pub profiles: Option<ProfilesConfig>,
pub pairing: Option<PairingConfig>,
pub mesh: Option<MeshConfig>,
pub anchor: Option<AnchorConfig>,
pub ipc_tcp: Option<IpcTcpConfig>,
pub llm: Option<LlmEndpointConfig>,
pub agent: Option<AgentAnchorConfig>,
pub governance: GovernanceConfig,
pub profile: Option<KernelProfile>,
pub shared_services: SharedServicesConfig,
}Expand description
Kernel subsystem configuration.
Embedded in the root Config under the kernel key. All fields
have sensible defaults so that existing configuration files parse
without errors.
§Example JSON
{
"kernel": {
"enabled": false,
"max_processes": 128,
"health_check_interval_secs": 15
}
}Fields§
§enabled: boolWhether the kernel subsystem is enabled.
When false, kernel subsystems do not activate unless explicitly
invoked via weave kernel CLI commands. Defaults to true.
max_processes: u32Maximum number of concurrent processes in the process table.
health_check_interval_secs: u64Interval (in seconds) between periodic health checks.
brand: StringProduct display brand for white-label deployments (WEFT-176).
Used by Discord identify (browser / device), CLI help text,
boot banners, and the web UI header. Defaults to "WeftOS".
Binary/crate names are unchanged — this is display-only.
cluster: Option<ClusterNetworkConfig>Cluster networking configuration (native coordinator nodes).
chain: Option<ChainConfig>Local chain configuration (exochain feature).
resource_tree: Option<ResourceTreeConfig>Resource tree configuration (exochain feature).
vector: Option<VectorConfig>Vector search backend configuration (ECC feature).
spatial: Option<SpatialConfig>Spatial BVH index configuration (ECC feature, ADR-056 / WEFT-718).
Defaults to disabled (enabled = false) when present; omit the
section entirely for no spatial subsystem registration.
profiles: Option<ProfilesConfig>Per-user profile namespace configuration.
pairing: Option<PairingConfig>Time-windowed pairing configuration.
mesh: Option<MeshConfig>Mesh networking configuration (K6 transport layer).
anchor: Option<AnchorConfig>Stream-window chain anchor configuration.
When enabled, the kernel subscribes to every topic matching
one of the configured prefixes/globs and chain-appends a
stream.window_commit event every window_secs summarising
the window: BLAKE3 of concatenated message bytes, message
count, byte count, first+last tick, and owning agent_id (when
known). This gives verifiers a tamper-evident anchor without
putting raw frames on-chain.
ipc_tcp: Option<IpcTcpConfig>Optional TCP relay for the daemon’s JSON-RPC socket.
When enabled, the daemon also listens on a TCP port and
transparently forwards every accepted connection to the local
unix socket via in-process byte-copy. Clients speak the exact
same line-delimited JSON-RPC protocol. All auth/policy stays
in the unix-socket handler path — the TCP side is a byte
conduit only. Intended for cross-boundary callers (Windows
side of WSL, remote bridges) that cannot open AF_UNIX.
llm: Option<LlmEndpointConfig>Optional LLM endpoint configuration.
Sets the daemon’s llm.prompt / agent.chat upstream when no
LLM_SERVICE_URL / LLM_MODEL env vars are present. Env vars
always win over this block — the env path is for one-off
experiments; the config block is the durable home.
agent: Option<AgentAnchorConfig>Optional agent-anchoring configuration.
Controls whether successful agent.chat turns are mirrored into
the witness chain, the HNSW vector index, and the causal graph.
All flags default to false so the substrate JSONL archive
behaviour stays the only side-effect unless an operator opts in.
governance: GovernanceConfigGovernance policy (ADR-103 D12): what requests outside any project
may do. Defaults to read_only.
profile: Option<KernelProfile>Kernel profile (ADR-103 A6). "project" marks a per-project child
kernel supervised by the user daemon; absent keeps the existing
behaviour. The user-daemon profile is process state, not config.
Which heavy services a project-profile kernel takes from its parent
(the user daemon) instead of running itself. Only read when
profile = "project".
Implementations§
Source§impl KernelConfig
impl KernelConfig
Sourcepub fn for_inspection(self) -> KernelConfig
pub fn for_inspection(self) -> KernelConfig
Config for a one-shot inspection boot (kernel status|ps|services|boot
without --foreground): identical, but no network listener is bound,
so it cannot collide with a running daemon’s mesh port, and the local
chain is disabled, so it never takes chain.lock, never adopts the
legacy chain and never appends to a real chain (ADR-103 Phase 0).
Sourcepub fn brand(&self) -> &str
pub fn brand(&self) -> &str
Display brand token; empty / whitespace values fall back to
DEFAULT_BRAND.
Trait Implementations§
Source§impl Clone for KernelConfig
impl Clone for KernelConfig
Source§fn clone(&self) -> KernelConfig
fn clone(&self) -> KernelConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for KernelConfig
impl Debug for KernelConfig
Source§impl Default for KernelConfig
impl Default for KernelConfig
Source§fn default() -> KernelConfig
fn default() -> KernelConfig
Source§impl<'de> Deserialize<'de> for KernelConfig
impl<'de> Deserialize<'de> for KernelConfig
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<KernelConfig, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<KernelConfig, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl From<KernelConfig> for KernelConfigExt
impl From<KernelConfig> for KernelConfigExt
Source§fn from(base: KernelConfig) -> Self
fn from(base: KernelConfig) -> Self
Source§impl Serialize for KernelConfig
impl Serialize for KernelConfig
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Auto Trait Implementations§
impl Freeze for KernelConfig
impl RefUnwindSafe for KernelConfig
impl Send for KernelConfig
impl Sync for KernelConfig
impl Unpin for KernelConfig
impl UnsafeUnpin for KernelConfig
impl UnwindSafe for KernelConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more