Struct ValidationWarning
pub struct ValidationWarning {
pub code: String,
pub message: String,
pub path: String,
}Expand description
One non-fatal validation issue surfaced after a successful save.
Stable codes (extend as new warnings are added):
codex_cli_extra_args_security_boundary:codex_cli.extra_argscontains a known Codex CLI argument that can change sandbox, approval, policy, workspace, feature, trust, or executable-integration boundaries. The argument remains allowed.memory_semantic_search_without_embedder:memory.search_moderequests vector search on sqlite memory, but no effective embedder is configured.whatsapp_chat_policy_inert: a WhatsApp Webself_chat_modeis set but the transport only consults it undermode = "personal", so it currently has no effect.dm_policyandgroup_policyapply under both modes and are never reported under this code.whatsapp_empty_group_list_serves_no_group:allowed_groupsis empty andgroup_policyis"allowlist", so the channel answers no group where an empty list used to admit every group at the identity gate. A migration notice about lost capability, not a fail-open alarm."all"admits every group before and after, and"ignore"rejects every group before and after under BOTH modes, so neither is reported.memory_config_knob_inert: a[memory]knob is set to a non-default value but has no runtime consumer yet, so it currently has no effect (seevalidate_memory_semanticsinschema.rsfor the current list).peer_group_channel_dangling: apeer_groups.<name>.channeldotted alias (<type>.<alias>) does not resolve to any configured[channels.<type>.<alias>]block — typically a typo that silently authorizes nobody.Config::validate()already hard-errors this exact condition (seeclassify_peer_group_channel_refinschema.rs); this warning is the non-fatal surface for callers (channel doctor, config-load tracing) that need the diagnostic even when a config that failedvalidate()is still allowed to boot.context_compression_unsupported: aruntime_profiles.<alias>.context_compressionknob (enabled = true, or any other field set to a non-default value) has no runtime consumer — the context compressor was removed — so it currently has no effect. One warning per non-default field (seecollect_context_compression_ignored_warningsinschema.rs).proxy_conflicts_with_dns_pinned_tools: the configured proxy scope selectshttp_requestand/orweb_fetch, whose validated DNS answers require direct transport and therefore make the selected tool fail.verifiable_intent_tool_withheld:verifiable_intent.enabledis set, but thevi_verifytool is withheld from the model-visible registry until a credential chain verifier exists, so enabling the section does not enable credential verification. The runtime also traces this at config load, and that trace has no sink underobservability.log_persistence = "none"; this warning is the channel that survives, sincezeroclaw doctorand the config API read the structured list rather than the log.
Fields§
§code: StringStable machine-readable identifier for the warning class.
message: StringStable English fallback for logs and consumers without a localization catalog.
User-facing surfaces should localize from code and use this only for unknown codes.
path: StringDotted property path the warning concerns
(e.g. "agents.researcher.model_provider").
Implementations§
Trait Implementations§
Source§impl Clone for ValidationWarning
impl Clone for ValidationWarning
Source§fn clone(&self) -> ValidationWarning
fn clone(&self) -> ValidationWarning
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · §fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ValidationWarning
impl Debug for ValidationWarning
Source§impl<'de> Deserialize<'de> for ValidationWarning
impl<'de> Deserialize<'de> for ValidationWarning
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for ValidationWarning
Source§impl JsonSchema for ValidationWarning
impl JsonSchema for ValidationWarning
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Returns a string that uniquely identifies the schema produced by this type. Read more
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Generates a JSON Schema for this type. Read more
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
Whether JSON Schemas generated for this type should be included directly in parent schemas,
rather than being re-used where possible using the
$ref keyword. Read moreSource§impl PartialEq for ValidationWarning
impl PartialEq for ValidationWarning
Source§fn eq(&self, other: &ValidationWarning) -> bool
fn eq(&self, other: &ValidationWarning) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl Serialize for ValidationWarning
impl Serialize for ValidationWarning
impl StructuralPartialEq for ValidationWarning
Auto Trait Implementations§
impl Freeze for ValidationWarning
impl RefUnwindSafe for ValidationWarning
impl Send for ValidationWarning
impl Sync for ValidationWarning
impl Unpin for ValidationWarning
impl UnsafeUnpin for ValidationWarning
impl UnwindSafe for ValidationWarning
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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>,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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>
Converts
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>
Converts
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