feat(sensitive): deny unrelated model conversation history - #81
Draft
seonghobae wants to merge 3 commits into
Draft
feat(sensitive): deny unrelated model conversation history#81seonghobae wants to merge 3 commits into
seonghobae wants to merge 3 commits into
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 #79.
Buyer/security gap
Issue #10 explicitly requires selective sensitive-model disclosure to carry no unrelated conversation history. The exact #79 boundary binds route, prompt/schema, token budgets and expiry, but its request metadata previously had no fail-closed representation for unrelated history that a trusted broker detected in the outgoing model message set.
Dependency
This Draft is stacked on exact PR #79 head
2ad7a2162b4842fe57f74f69f08b258f4f6a9c07, transitively on #77/#75 and the sensitive-handle prerequisites. It remains Draft while those dependencies remain active.Test-first implementation
Exact test-only head
a5a8c49993464f7c86b78b28ba5c1f191ef10ca8established the missing context-isolation boundary. Exact current head0ec604deb1c0293008560e0fcd4af7ccb65d93adnow adds broker-derivedunrelated_history_itemsmetadata toModelInvocationRequest, authorizes only zero, and returns the stableUnrelatedConversationHistoryDenieddecision for any positive count includingu32::MAX. Exact route admission is still evaluated first, so a route failure remains a distinctRouteDeniedresult even when unrelated history is present.This contract deliberately does not claim that a caller-supplied integer proves message isolation. The trusted broker/orchestrator must derive the count from the actual bounded outgoing message set; this pure policy layer makes a known nonzero condition impossible to authorize silently.
Exact-head verification
CI run
31484982600completed successfully on exact head0ec604deb1c0293008560e0fcd4af7ccb65d93ad. The branch is directly ahead of unchanged live base2ad7a2162b4842fe57f74f69f08b258f4f6a9c07with no base drift, and no formal reviews or inline review threads are currently returned for this head.Truth boundary
This is context-isolation metadata only. It does not inspect model message payloads, classify message relevance, disclose protected values, authenticate/invoke a provider, validate output, enforce retention, authorize fallback/export, or complete issue #10. It remains Draft because its stacked dependencies are still active.