Skip to content

FIX Correct Round Robin target identity matching#2225

Open
romanlutz wants to merge 1 commit into
microsoft:mainfrom
romanlutz:romanlutz-correct-round-robin-identity
Open

FIX Correct Round Robin target identity matching#2225
romanlutz wants to merge 1 commit into
microsoft:mainfrom
romanlutz:romanlutz-correct-round-robin-identity

Conversation

@romanlutz

Copy link
Copy Markdown
Contributor

Description

Historical RoundRobinTarget attacks could be incorrectly treated as cross-target and made read-only. Their persisted root model_name is null, while the active target UI derives the shared inner model name, so the previous display-field comparison produced a false mismatch.

This change exposes the persisted objective target's canonical ComponentIdentifier hash and uses it consistently for frontend cross-target checks and backend message validation. Freshly created attack state also retains the hash. Because the hash includes Round Robin weights and all inner target identifiers, matching composites remain writable while genuinely incompatible composites are still rejected.

Tests and Documentation

  • Added explicit frontend regression coverage for historical Round Robin targets with null root model fields, including matching and incompatible hashes.
  • Added backend coverage for hash projection, matching composites, and mismatches caused by changed inner targets or weights.
  • Ran 116 targeted frontend tests and 123 affected backend tests.
  • Ran frontend TypeScript and ESLint checks, plus Python Ruff and ty checks.
  • Built the production frontend and manually clicked through target activation, attack history reopening, successful follow-up sending, and incompatible-target locking.
  • Documentation: N/A.
  • JupyText: N/A.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 0162bbcb-1620-4d09-ac1c-7cfa9ae5046f
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.

2 participants