Skip to content

fix: route repeat/shuffle through ControllerGroupRole in metadata scenario#74

Merged
maximmaxim345 merged 1 commit into
Sendspin:mainfrom
OnFreund:claude/hungry-maxwell-ab28c5
Jun 2, 2026
Merged

fix: route repeat/shuffle through ControllerGroupRole in metadata scenario#74
maximmaxim345 merged 1 commit into
Sendspin:mainfrom
OnFreund:claude/hungry-maxwell-ab28c5

Conversation

@OnFreund
Copy link
Copy Markdown
Contributor

@OnFreund OnFreund commented Jun 2, 2026

What changed

In _run_metadata_scenario() (src/conformance/adapters/aiosendspin_server.py), removed repeat= and shuffle= from the metadata_group_role.update() call, and replaced them with calls to controller_group_role.set_repeat() and controller_group_role.set_shuffle().

Why

aiosendspin #244 moved repeat/shuffle state out of MetadataGroupRole.update() — those parameters no longer exist on that method. Passing them was crashing with:

MetadataGroupRole.update() got an unexpected keyword argument 'repeat'

How it works now

ControllerGroupRole.set_repeat() / set_shuffle() call _mirror_to_metadata_back_compat() internally, which writes the values back into the metadata state for v1 client backwards compatibility. Clients still receive repeat and shuffle in the metadata payload, so the client-side assertions in _normalize_metadata_state() and the snapshot comparison in runner.py continue to match without any further changes.

Reviewer notes

  • No changes to _metadata_snapshot(), CLI args, scenarios.py, or the client adapter — the expected/received comparison format is unchanged.
  • The controller group role guard (isinstance check) follows the same pattern already used in _run_controller_scenario().

…nario

aiosendspin #244 removed repeat and shuffle from MetadataGroupRole.update()
— they now live in ControllerGroupRole.set_repeat() / set_shuffle().
The metadata scenario was crashing with 'unexpected keyword argument repeat'.

Fix: drop repeat= and shuffle= from metadata_group_role.update(), and call
controller_group_role.set_repeat() / set_shuffle() instead. The controller
role already mirrors those values back into metadata state for v1 back-compat
via _mirror_to_metadata_back_compat(), so clients still receive them in the
metadata payload and assertions continue to match.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Copy link
Copy Markdown
Member

@maximmaxim345 maximmaxim345 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @OnFreund !

@maximmaxim345 maximmaxim345 merged commit e7f2bde into Sendspin:main Jun 2, 2026
2 checks passed
@OnFreund OnFreund deleted the claude/hungry-maxwell-ab28c5 branch June 2, 2026 11:12
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