Repository navigation
feat(scoring): expose group_by on Tri/Quad/Penta joins - #74
Conversation
Add the missing fluent grouping methods to cross-source and same-source arity streams. Adapt borrowed tuples to the existing GroupNode and retain authored filters with their semantic source indexes; no new grouping engine or copied collector payloads are introduced. Cover grouping, source mutations, empty groups, reset and move-only collected values with seven executed regressions and a macro compile fixture. Update the scoring and facade wireframes and README. Workspace tests, workspace all-target clippy, formatting and independent review pass. Fixes #73
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4caa1caac1
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| ) -> OperatorTerminal< | ||
| S, | ||
| GroupNode<O, F, C, K, Acc, V, R>, | ||
| impl Fn(&S, &GroupView<'_, S, O, K, Acc, V, R>) -> Sc + Send + Sync, | ||
| Sc, |
There was a problem hiding this comment.
Return a chainable grouped terminal
When a joined or same-source Tri/Quad/Penta group_by binding is reused for multiple terminals inside #[solverforge_constraints], emit_terminal_member chains each later .penalize()/.reward() call from the preceding .named() result. Returning a plain OperatorTerminal here makes that generated code fail because OperatorTerminal exposes neither method, so the newly supported grouped streams cannot use the canonical shared-terminal pattern; return a chainable shared grouped terminal/set as the existing grouped families do.
AGENTS.md reference: AGENTS.md:L207-L211
Useful? React with 👍 / 👎.
Add the missing fluent grouping methods to cross-source and same-source arity streams. Adapt borrowed tuples to the existing GroupNode and retain authored filters with their semantic source indexes; no new grouping engine or copied collector payloads are introduced. Cover grouping, source mutations, empty groups, reset and move-only collected values with seven executed regressions and a macro compile fixture. Update the scoring and facade wireframes and README. Workspace tests, workspace all-target clippy, formatting and independent review pass. Fixes #73
The branch's sole commit is patch-equivalent to the grouping change already landed through #74 (git cherry reports '-'). Preserve its ancestry without reapplying the patch.
GitHub's sole divergent commit is patch-equivalent to the #74 grouping change already present on main (git cherry reports '-'). Preserve that ancestry without changing the integrated tree.
Adds the missing group_by methods on cross-source and same-source Tri, Quad and Penta streams. Uses the existing grouping/filter operators, preserving source indexes and ownership of collected values.
Verified: seven runtime regressions, scoring tests, macro trybuild, full workspace tests, workspace all-target clippy (-D warnings), formatting and independent review.
Fixes #73