feat(sensitive): require model disclosure necessity - #90
Draft
seonghobae wants to merge 4 commits into
Draft
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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. Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Partial implementation of #10, stacked on PR #89.
Buyer/security gap
Protected-main data governance requires raw protected data to enter a model only when deterministic or handle-based execution cannot satisfy the approved task. PR #89 composes full-field disclosure with a reviewed model invocation, but its own truth boundary correctly leaves necessity to the trusted broker. This slice makes that missing precondition explicit at the policy composition boundary so an otherwise valid route cannot authorize raw model input while a lower-disclosure path remains available.
Dependency
This Draft is stacked on unchanged exact PR #89 head
f2fbcae3f07cad722f43580aa5be0b4e691d2a9c. It is not independently integrable while PR #89 and its sensitive-data/model-policy prerequisites remain active.TDD / implementation sequence
8642375fa5a96a5a0cb5d6fab11aee8077092b8badded the regression contract requiring an explicit necessity decision, typed lower-disclosure alternatives, and proof that necessity cannot upgrade weaker sensitive-data authorization.model_disclosurepolicy module. Current exact head is166d68bc8e42f41fcd21965609af222e69fd3d4c.DenyAccess, opaque-handle, derived-value, partial-field, approval-required, authority-mismatched, expired, or otherwise denied policy.ModelDisclosureNecessity::NoLowerDisclosurePathpermits the already-authorized composition to remain authorized.LowerDisclosurePathAvailablefails closed asFullFieldNotNecessaryfor an opaque handle, deterministic transform, local rule, structured tool, or approved derived value.Exact-head proof
On unchanged exact head
166d68bc8e42f41fcd21965609af222e69fd3d4cagainst unchanged exact prerequisite #89 headf2fbcae3f07cad722f43580aa5be0b4e691d2a9c:31517056344: success;93864715090: repository contracts, canonical formatting, locked workspace/all-target check, full tests, strict Clippy, and rustdoc all success;93864715163: exact owned production function/line/region/branch enforcement success;No predecessor-head check, review, mergeability result, or synthetic status is transferred to this exact head.
Truth boundary
This slice carries policy metadata only. It does not carry or release protected bytes, authenticate a broker/provider/workload, prove that a caller-supplied
NoLowerDisclosurePathclaim is truthful, inspect current task executability, invoke a model, validate output bytes, enforce retention/export, attest runtime region/clock, execute fallback, or close #10. The trusted broker/orchestrator remains responsible for deriving necessity from current task/runtime state immediately before protected-value resolution and for executing only the exact independently authorized route.Keep this PR Draft while #89 and the prerequisite sensitive-data/model-policy stack remain active. Fresh exact-head/live-base acceptance is required after any dependency movement.