Skip to content

feat(seeding): range + combine seeding rules (foundation for real multi-main)#323

Merged
ryan-johnson2 merged 1 commit into
develfrom
seeding-range-combine
Jun 30, 2026
Merged

feat(seeding): range + combine seeding rules (foundation for real multi-main)#323
ryan-johnson2 merged 1 commit into
develfrom
seeding-range-combine

Conversation

@ryan-johnson2

Copy link
Copy Markdown
Contributor

Two new SeedingRule variants — the engine gap for composing the real MultiGP multi-main:

  • FromRankingRange { source_rounds, skip, take } — a ranking SLICE (e.g. seeds 13-20 = skip 12, take 8), not just top-N.
  • Combine { sources } — union of sub-rules (concat, dedupe keep-first): base seeds + bumped-up pilots.

round_field → recursive resolve_seeding; a depth guard threaded through intra-Combine + the cross-round round_ranking/round_field recursion returns SeedingTooDeep (400) — also closing a pre-existing seeding-cycle stack-overflow. Validation rejects take=0 / empty Combine / over-deep nesting. Serde + bindings additive; SeedingRule is now recursive.

cargo xtask ci green; frontend check 0 errors.

🤖 Generated with Claude Code

…ti-main)

Two new SeedingRule variants, the engine gap for composing the real MultiGP multi-main (per-main
brackets wired bottom-up):
- FromRankingRange { source_rounds, skip, take } — a SLICE of the merged best-per-pilot ranking
  (e.g. C-main = qualifier seeds 13-20 = skip 12, take 8), not just top-N.
- Combine { sources } — union of sub-rules: resolve each, concat in order, dedupe keeping first
  (e.g. B-main = Combine[range 7-12, FromRanking C-final top 2] = base seeds + bumped-up pilots).

round_field is refactored into a rule-level resolve_seeding that recurses for Combine. A depth guard
(MAX_SEEDING_DEPTH) is threaded through BOTH intra-Combine nesting AND the round_ranking/round_field
cross-round recursion, returning FillError::SeedingTooDeep (400) — this also closes a pre-existing
seeding-cycle stack-overflow risk (A seeds B, B seeds A). Validation rejects take=0, empty
Combine.sources, and over-deep nesting at add/update. Serde + bindings additive (legacy rules
unaffected); SeedingRule is now recursive.

cargo xtask ci green (no binding drift); frontend check 0 errors.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ryan-johnson2 ryan-johnson2 merged commit 62022f3 into devel Jun 30, 2026
3 checks passed
@ryan-johnson2 ryan-johnson2 deleted the seeding-range-combine branch June 30, 2026 00:17
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.

1 participant