pub struct CiPolicy {
pub prefer_env_store: bool,
pub skip_not_installed_silently: bool,
pub refuse_local_vault_unlock: bool,
pub refuse_biometric_sources: bool,
pub emit_decisions_as_info: bool,
}Expand description
Behavioural rules CI mode flips on, per ADR-021 §8.
The router (P11+) consumes this and applies each flag at the matching decision point: which source to consult first, whether to emit a fallback warning, whether to invoke an unlock UI, etc.
Fields§
§prefer_env_store: boolPromote env-store to the front of the resolution chain
regardless of the routing table.
skip_not_installed_silently: boolSkip sources whose is_available() returns
SourceStatus::NotInstalled
without surfacing the fallback as a warning. In interactive
mode the same case logs a doctor notice.
refuse_local_vault_unlock: boolRefuse to invoke the local-vault unlock UI — no PIN or
passphrase prompts in CI.
refuse_biometric_sources: boolSkip sources that declare
Capabilities::BIOMETRIC_PROMPT
— biometric unlock makes no sense in headless CI.
emit_decisions_as_info: boolEmit routing decisions at info level so a CI pipeline can
grep for surprises. Interactive mode uses debug so the
developer’s terminal stays quiet.
Implementations§
Trait Implementations§
impl Copy for CiPolicy
impl Eq for CiPolicy
Source§impl From<&CiDetection> for CiPolicy
impl From<&CiDetection> for CiPolicy
Source§fn from(d: &CiDetection) -> Self
fn from(d: &CiDetection) -> Self
impl StructuralPartialEq for CiPolicy
Auto Trait Implementations§
impl Freeze for CiPolicy
impl RefUnwindSafe for CiPolicy
impl Send for CiPolicy
impl Sync for CiPolicy
impl Unpin for CiPolicy
impl UnsafeUnpin for CiPolicy
impl UnwindSafe for CiPolicy
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,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.