Skip to content

feat(sensitive): bind fallback availability to exact route - #88

Draft
seonghobae wants to merge 4 commits into
feat/sensitive-model-fallback-freshnessfrom
feat/sensitive-model-fallback-evidence-binding
Draft

feat(sensitive): bind fallback availability to exact route#88
seonghobae wants to merge 4 commits into
feat/sensitive-model-fallback-freshnessfrom
feat/sensitive-model-fallback-evidence-binding

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Partial implementation of #10, stacked on PR #87.

Buyer/security gap

PR #87 makes fallback availability time-bounded, but the availability evidence itself was free-floating: it carried only state and a validity horizon. A fresh outage observation for one provider/model route must not be replayable against a different primary route to trigger an otherwise reviewed fallback.

Dependency and TDD / RCA sequence

This Draft is stacked on unchanged exact PR #87 head b1273d7bc34fffee262be4bd2da24c24520d11db.

  1. Exact test-only head 48feb2b18fb1089605f6985a2f70e1dcc0c3038e introduced route-bound availability construction and the fail-closed PrimaryAvailabilityRouteMismatch expectation.
  2. Formatting-only head 38f44aab67000affcde0648a216e61c31f6937f5 reached the intended production-boundary RED in CI run 31501789957: repository contracts and formatting passed, then the Rust workspace check failed with E0061 because production availability evidence accepted only state/lifetime and E0599 because PrimaryAvailabilityRouteMismatch did not exist.
  3. Production head 371364f69f5ea08dd9708a6cb3db3c33da4e159d binds each ModelRouteAvailabilityEvidence to the exact ModelRouteRequest it describes and checks that route after exact primary policy authorization but before lifetime/state. CI run 31505437349 completed successfully: Rust contracts job 93825700372 and Production coverage job 93825700518 both passed, including repository contracts, formatting, locked workspace/all-target check, full tests, strict Clippy, rustdoc, and exact owned production function/line/region/branch coverage.
  4. Current exact head 121d9d70d6c5592b9dff06d7ba09ee563958bfef adds only the truthful Unreleased changelog entry. CI run 31505770116 completed successfully on that exact head.

No predecessor-head check, review, mergeability result, or synthetic status is transferred to the current head.

Implemented contract

The branch now requires:

  • exact primary-route policy authorization before availability route binding, freshness, state, or fallback is considered;
  • availability evidence to retain the exact provider/model/region/retention/training/subprocessor/export ModelRouteRequest it describes;
  • any evidence-route mismatch to fail closed as PrimaryAvailabilityRouteMismatch before invalid/expired/fresh availability can influence fallback;
  • zero and expired lifetimes to retain the feat(sensitive): require fresh model fallback availability #87 fail-closed behavior;
  • fresh unknown availability to remain denied; and
  • only fresh explicit unavailability for the exact reviewed primary route to enter the separately reviewed fallback path.

Truth boundary

This slice does not prove provider health, attest runtime route identity or clock provenance, invoke a model, disclose protected values, retry, persist health state, or execute a selected route. Constructing a ModelRouteAvailabilityEvidence value does not make arbitrary caller input trusted. A trusted broker/orchestrator must derive the actual runtime route and availability observation from authenticated/configured runtime state and execute only the route selected by deterministic policy.

Keep Draft while #87/#86 and the prerequisite sensitive-data stack remain active. This PR does not close #10.

@coderabbitai

coderabbitai Bot commented Aug 11, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: d48433e7-b1ac-471f-8079-1f57692e6f71

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant