pub struct LisrAdr;Expand description
Architecture Decision Record for the LISR system.
Records why LISR exists, what threats it addresses, and why fail-closed constraints were chosen. This is embedded in code to prevent drift from the original safety intent.
Implementations§
Source§impl LisrAdr
impl LisrAdr
Sourcepub const TITLE: &'static str = "Dynamic Secure Extension Repair with Intent-Legible Self-Healing"
pub const TITLE: &'static str = "Dynamic Secure Extension Repair with Intent-Legible Self-Healing"
Title of the architecture decision.
Sourcepub const CONTEXT: &'static str = "\
Extensions frequently break during updates when build artifacts (dist/) \
diverge from source (src/). Manual repair is slow, error-prone, and blocks \
the agent workflow. LISR provides automated repair within strict safety \
boundaries to restore extension functionality without human intervention."
pub const CONTEXT: &'static str = "\ Extensions frequently break during updates when build artifacts (dist/) \ diverge from source (src/). Manual repair is slow, error-prone, and blocks \ the agent workflow. LISR provides automated repair within strict safety \ boundaries to restore extension functionality without human intervention."
Why LISR exists.
Sourcepub const DECISION: &'static str = "\
Adopt a layered repair pipeline with fail-closed defaults: \
(1) security policy framework bounds all repairs, \
(2) intent legibility analysis gates repair eligibility, \
(3) deterministic rules execute safe repairs, \
(4) model-assisted repairs are constrained to whitelisted primitives, \
(5) all repairs require structural + capability + semantic proof, \
(6) overlay deployment uses canary routing with health rollback, \
(7) every action is recorded in an append-only audit ledger, \
(8) governance checks are codified in the release process."
pub const DECISION: &'static str = "\ Adopt a layered repair pipeline with fail-closed defaults: \ (1) security policy framework bounds all repairs, \ (2) intent legibility analysis gates repair eligibility, \ (3) deterministic rules execute safe repairs, \ (4) model-assisted repairs are constrained to whitelisted primitives, \ (5) all repairs require structural + capability + semantic proof, \ (6) overlay deployment uses canary routing with health rollback, \ (7) every action is recorded in an append-only audit ledger, \ (8) governance checks are codified in the release process."
The core architectural decision.
Sourcepub const FAIL_CLOSED_RATIONALE: &'static str = "\
Any uncertainty in repair safety defaults to denial. A broken extension \
that remains broken is safer than a repaired extension that silently \
escalates privileges or introduces semantic drift. The cost of a false \
negative (missed repair) is low; the cost of a false positive (unsafe \
repair applied) is catastrophic."
pub const FAIL_CLOSED_RATIONALE: &'static str = "\ Any uncertainty in repair safety defaults to denial. A broken extension \ that remains broken is safer than a repaired extension that silently \ escalates privileges or introduces semantic drift. The cost of a false \ negative (missed repair) is low; the cost of a false positive (unsafe \ repair applied) is catastrophic."
Why fail-closed was chosen.
Sourcepub const INVARIANTS: &'static [&'static str]
pub const INVARIANTS: &'static [&'static str]
Key safety invariants enforced by the system.
Auto Trait Implementations§
impl Freeze for LisrAdr
impl RefUnwindSafe for LisrAdr
impl Send for LisrAdr
impl Sync for LisrAdr
impl Unpin for LisrAdr
impl UnsafeUnpin for LisrAdr
impl UnwindSafe for LisrAdr
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, _span: NoopSpan) -> Self
fn instrument(self, _span: NoopSpan) -> Self
Instruments this future with a span (no-op when disabled).
Source§fn in_current_span(self) -> Self
fn in_current_span(self) -> Self
Instruments this future with the current span (no-op when disabled).
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>
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