Repository navigation
fix(flow): prevent task placeholder rewriting and pin short-value binding (#2130) - #2170
Open
yunusarda-sudo wants to merge 2 commits into
Open
yunusarda-sudo wants to merge 2 commits into
yunusarda-sudo wants to merge 2 commits into
Conversation
…ding (OpenAdaptAI#2130) Signed-off-by: Yunus Ardaguney <yunusarda-sudo@users.noreply.github.com>
This branch has not been deployed
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.
Summary
In
openadapt_flow/privacy.py:bind_text, bound values were replaced sequentially in descending length order using individual regex substitutions. Because⟦and.are non-word characters, a short value that also appears as a word within placeholder syntax (for example"task"in⟦task.identity_1⟧) matched inside previously inserted placeholders, corrupting them into nested structures like⟦⟦task.kind⟧.identity_1⟧.Changes
bind_text):\u27e6[^\u27e6\u27e7]*\u27e7) or whole-word value branches sorted by length descending.test_task_value_cannot_rewrite_another_placeholderverifying that short values such as"task"cannot rewrite placeholder names.test_bind_text_preserves_preexisting_placeholdersensuring pre-existing placeholders in text remain untouched.test_short_value_overbinding_in_task_text_is_pinnedpinning the intended privacy trade-off where values under 3 characters (e.g."M") bind every whole-word occurrence in task text to prevent raw PHI transmission to the model.Closes #2130.
Signed-off-by: Yunus Ardaguney yunusarda-sudo@users.noreply.github.com