Skip to content

fix(construction)!: reject construction keys that cannot apply - #196

Merged
blackopsrepl merged 2 commits into
mainfrom
feature/193-construction-keys
Nov 5, 2026
Merged

blackopsrepl merged 2 commits into
mainfrom
feature/193-construction-keys

Conversation

@blackopsrepl

Copy link
Copy Markdown
Collaborator

Closes #193. Base main @ 5f54b049, two commits:

  • 91362a48 reject scalar-only keys on list construction heuristics
  • 62388fea require group_name for group_candidate_limit

Slice 1 alone: fmt, clippy -D warnings, doc-names, config rustdoc, compiler and config tests: 123 passed, 0 failed. Gate on 62388fea (fmt, clippy, doc-names file-length facade-reachability public-api deps, rustdoc, examples, workspace all-feature tests, doctests): EXIT 0, 1539 passed, 0 failed, 66 result lines. Mutation check: removing either rule fails its test (list_construction_rejects_scalar_only_keys, group_candidate_limit_needs_a_group_name). No fixture, example or doc sets these keys where they are now rejected.

…istics

`value_candidate_limit`, `group_candidate_limit` and
`construction_obligation` shape scalar candidate generation, and list
heuristics read none of them, so setting one on `list_round_robin`,
`list_cheapest_insertion`, `list_regret_insertion`, `list_clarke_wright` or
`list_k_opt` did nothing. Each is now a configuration error naming its key
path; the default `construction_obligation` stays accepted.

BREAKING CHANGE: a list construction heuristic with `value_candidate_limit`,
`group_candidate_limit` or a non-default `construction_obligation` is a
configuration error.
`group_candidate_limit` caps grouped scalar candidates, which exist only
with `group_name`; without one the cap did nothing. It is now a
configuration error naming its key path.

Closes #193.

BREAKING CHANGE: `group_candidate_limit` without `group_name` is a
configuration error.
@blackopsrepl
blackopsrepl merged commit 62388fe into main Nov 5, 2026
12 checks passed
@blackopsrepl
blackopsrepl deleted the feature/193-construction-keys branch November 5, 2026 02:44
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.

Construction: scalar-only keys accepted and ignored by list heuristics; group_candidate_limit without group_name

1 participant