Skip to content

Enforce compile-time interface contracts and preserve reformulation provenance - #120

Merged
GermanHeim merged 4 commits into
mainfrom
comp-time-interface
Oct 26, 2026
Merged

GermanHeim merged 4 commits into
mainfrom
comp-time-interface

Conversation

@GermanHeim

Copy link
Copy Markdown
Member

Description

This PR makes it so that we reject invalid affine inputs, registry accessors, scalar dual queries, and generated-ID usage at compile time. It also binds prepared translation to immutable semantic snapshots and adds targeted diagnostics and compile-fail coverage.

It also centralizes reformulation provenance and removes generated raw and semantic multipliers during projection.

Checklist

  • I have updated the documentation accordingly
  • I have added tests that cover my changes
  • I have run cargo fmt and cargo clippy to ensure code quality
  • All default tests pass (cargo test)

@coderabbitai

coderabbitai Bot commented Oct 26, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 158 files, which is 58 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Repository UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: af809671-31ff-4c36-8104-5432f5aa47fc
Commits

Reviewing files that changed from the base of the PR and between 4fd6381 and e0951af.

Files selected for processing: 158
  • crates/oximo-clarabel/src/lib.rs
  • crates/oximo-clarabel/tests/semantic_capabilities.rs
  • crates/oximo-clarabel/tests/typed_constraints.rs
  • crates/oximo-core/benches/indexed_ranges.rs
  • crates/oximo-core/src/constraint.rs
  • crates/oximo-core/src/function_set.rs
  • crates/oximo-core/src/gdp.rs
  • crates/oximo-core/src/lib.rs
  • crates/oximo-core/src/model/constraints.rs
  • crates/oximo-core/src/model/semantic.rs
  • crates/oximo-core/src/model/tests.rs
  • crates/oximo-core/src/prelude.rs
  • crates/oximo-core/src/psd.rs
  • crates/oximo-core/src/reformulation/ids.rs
  • crates/oximo-core/src/reformulation/indicator.rs
  • crates/oximo-core/src/reformulation/mod.rs
  • crates/oximo-core/src/reformulation/provenance.rs
  • crates/oximo-core/src/reformulation/sos.rs
  • crates/oximo-core/src/semantic.rs
  • crates/oximo-core/tests/constraint_validation.rs
  • crates/oximo-core/tests/empty_sums.rs
  • crates/oximo-core/tests/function_representation.rs
  • crates/oximo-core/tests/function_set.rs
  • crates/oximo-core/tests/indexed_constraint.rs
  • crates/oximo-core/tests/indicator.rs
  • crates/oximo-core/tests/macros.rs
  • crates/oximo-core/tests/model.rs
  • crates/oximo-core/tests/psd.rs
  • crates/oximo-core/tests/semantic.rs
  • crates/oximo-core/tests/sos.rs
  • crates/oximo-core/tests/ui/fail/affine_builder_nonlinear.rs
  • crates/oximo-core/tests/ui/fail/affine_builder_nonlinear.stderr
  • crates/oximo-core/tests/ui/fail/erased_scalar_view.rs
  • crates/oximo-core/tests/ui/fail/erased_scalar_view.stderr
  • crates/oximo-core/tests/ui/fail/escape_expression.rs
  • crates/oximo-core/tests/ui/fail/escape_expression.stderr
  • crates/oximo-core/tests/ui/fail/forge_constraint_handle.rs
  • crates/oximo-core/tests/ui/fail/forge_constraint_handle.stderr
  • crates/oximo-core/tests/ui/fail/generated_row_handle.rs
  • crates/oximo-core/tests/ui/fail/generated_row_handle.stderr
  • crates/oximo-core/tests/ui/fail/generated_variable_handle.rs
  • crates/oximo-core/tests/ui/fail/generated_variable_handle.stderr
  • crates/oximo-core/tests/ui/fail/implement_bound.rs
  • crates/oximo-core/tests/ui/fail/implement_bound.stderr
  • crates/oximo-core/tests/ui/fail/implement_degree.rs
  • crates/oximo-core/tests/ui/fail/implement_degree.stderr
  • crates/oximo-core/tests/ui/fail/implement_scalar_input.rs
  • crates/oximo-core/tests/ui/fail/implement_scalar_input.stderr
  • crates/oximo-core/tests/ui/fail/implement_scalar_query.rs
  • crates/oximo-core/tests/ui/fail/implement_scalar_query.stderr
  • crates/oximo-core/tests/ui/fail/indexed_dynamic_indicator.rs
  • crates/oximo-core/tests/ui/fail/indexed_dynamic_indicator.stderr
  • crates/oximo-core/tests/ui/fail/indexed_dynamic_indicator_range.rs
  • crates/oximo-core/tests/ui/fail/indexed_dynamic_indicator_range.stderr
  • crates/oximo-core/tests/ui/fail/indexed_dynamic_psd.rs
  • crates/oximo-core/tests/ui/fail/indexed_dynamic_psd.stderr
  • crates/oximo-core/tests/ui/fail/indexed_dynamic_soc.rs
  • crates/oximo-core/tests/ui/fail/indexed_dynamic_soc.stderr
  • crates/oximo-core/tests/ui/fail/indexed_indicator_quadratic.stderr
  • crates/oximo-core/tests/ui/fail/indexed_indicator_range_quadratic.stderr
  • crates/oximo-core/tests/ui/fail/indicator_nonlinear.stderr
  • crates/oximo-core/tests/ui/fail/indicator_quadratic.stderr
  • crates/oximo-core/tests/ui/fail/indicator_range_quadratic.stderr
  • crates/oximo-core/tests/ui/fail/nonlinear_psd.rs
  • crates/oximo-core/tests/ui/fail/nonlinear_psd.stderr
  • crates/oximo-core/tests/ui/fail/nonlinear_soc.rs
  • crates/oximo-core/tests/ui/fail/nonlinear_soc.stderr
  • crates/oximo-core/tests/ui/fail/psd_quadratic.stderr
  • crates/oximo-core/tests/ui/fail/psd_scalar_view.rs
  • crates/oximo-core/tests/ui/fail/psd_scalar_view.stderr
  • crates/oximo-core/tests/ui/fail/raw_bound_pair.rs
  • crates/oximo-core/tests/ui/fail/raw_bound_pair.stderr
  • crates/oximo-core/tests/ui/fail/raw_constant_lower_bound.rs
  • crates/oximo-core/tests/ui/fail/raw_constant_lower_bound.stderr
  • crates/oximo-core/tests/ui/fail/raw_indexed_bound.rs
  • crates/oximo-core/tests/ui/fail/raw_indexed_bound.stderr
  • crates/oximo-core/tests/ui/fail/raw_parameter_id_bound.rs
  • crates/oximo-core/tests/ui/fail/raw_parameter_id_bound.stderr
  • crates/oximo-core/tests/ui/fail/scalar_soc_view.rs
  • crates/oximo-core/tests/ui/fail/scalar_soc_view.stderr
  • crates/oximo-core/tests/ui/fail/soc_scalar_view.rs
  • crates/oximo-core/tests/ui/fail/soc_scalar_view.stderr
  • crates/oximo-core/tests/ui/fail/unchecked_dynamic_indicator.rs
  • crates/oximo-core/tests/ui/fail/unchecked_dynamic_indicator.stderr
  • crates/oximo-core/tests/ui/fail/unchecked_dynamic_indicator_range.rs
  • crates/oximo-core/tests/ui/fail/unchecked_dynamic_indicator_range.stderr
  • crates/oximo-core/tests/ui/fail/unchecked_dynamic_psd.rs
  • crates/oximo-core/tests/ui/fail/unchecked_dynamic_psd.stderr
  • crates/oximo-core/tests/ui/fail/unchecked_dynamic_soc.rs
  • crates/oximo-core/tests/ui/fail/unchecked_dynamic_soc.stderr
  • crates/oximo-core/tests/ui/pass/checked_affine_inputs.rs
  • crates/oximo-core/tests/ui/pass/checked_scalar_views.rs
  • crates/oximo-core/tests/ui/pass/function_sets.rs
  • crates/oximo-gdp/src/reformulate/big_m.rs
  • crates/oximo-gdp/src/reformulate/hull.rs
  • crates/oximo-gdp/src/reformulate/logic.rs
  • crates/oximo-gdp/src/reformulate/plan.rs
  • crates/oximo-gdp/src/solver.rs
  • crates/oximo-gdp/tests/gdp.rs
  • crates/oximo-gdp/tests/hull.rs
  • crates/oximo-gdp/tests/hull_api.rs
  • crates/oximo-gdp/tests/solver.rs
  • crates/oximo-gdp/tests/ui/fail/generated_gdp_row.rs
  • crates/oximo-gdp/tests/ui/fail/generated_gdp_row.stderr
  • crates/oximo-gdp/tests/ui/fail/generated_hull_handle.rs
  • crates/oximo-gdp/tests/ui/fail/generated_hull_handle.stderr
  • crates/oximo-gdp/tests/ui/fail/mixed_hull_source.rs
  • crates/oximo-gdp/tests/ui/fail/mixed_hull_source.stderr
  • crates/oximo-highs/src/lib.rs
  • crates/oximo-highs/tests/semantic_capabilities.rs
  • crates/oximo-mosek/tests/solve.rs
  • crates/oximo-pounce/tests/solve_pounce.rs
  • crates/oximo-solver/README.md
  • crates/oximo-solver/src/lib.rs
  • crates/oximo-solver/src/reconstruct.rs
  • crates/oximo-solver/src/result.rs
  • crates/oximo-solver/src/translation.rs
  • crates/oximo-solver/tests/alternative_lowering_duals.rs
  • crates/oximo-solver/tests/compile.rs
  • crates/oximo-solver/tests/semantic_translation.rs
  • crates/oximo-solver/tests/source_projection.rs
  • crates/oximo-solver/tests/ui/fail/custom_scalar_set_dual.rs
  • crates/oximo-solver/tests/ui/fail/custom_scalar_set_dual.stderr
  • crates/oximo-solver/tests/ui/fail/erased_scalar_dual.rs
  • crates/oximo-solver/tests/ui/fail/erased_scalar_dual.stderr
  • crates/oximo-solver/tests/ui/fail/escape_prepared_entry.rs
  • crates/oximo-solver/tests/ui/fail/escape_prepared_entry.stderr
  • crates/oximo-solver/tests/ui/fail/forge_prepared_entry.rs
  • crates/oximo-solver/tests/ui/fail/forge_prepared_entry.stderr
  • crates/oximo-solver/tests/ui/fail/generated_source_projection.rs
  • crates/oximo-solver/tests/ui/fail/generated_source_projection.stderr
  • crates/oximo-solver/tests/ui/fail/generated_value.rs
  • crates/oximo-solver/tests/ui/fail/generated_value.stderr
  • crates/oximo-solver/tests/ui/fail/indicator_scalar_dual.rs
  • crates/oximo-solver/tests/ui/fail/indicator_scalar_dual.stderr
  • crates/oximo-solver/tests/ui/fail/mutable_prepared_function.rs
  • crates/oximo-solver/tests/ui/fail/mutable_prepared_function.stderr
  • crates/oximo-solver/tests/ui/fail/private_normalizer.stderr
  • crates/oximo-solver/tests/ui/fail/psd_scalar_dual.rs
  • crates/oximo-solver/tests/ui/fail/psd_scalar_dual.stderr
  • crates/oximo-solver/tests/ui/fail/quadratic_affine_translator.rs
  • crates/oximo-solver/tests/ui/fail/quadratic_affine_translator.stderr
  • crates/oximo-solver/tests/ui/fail/replace_prepared_context.rs
  • crates/oximo-solver/tests/ui/fail/replace_prepared_context.stderr
  • crates/oximo-solver/tests/ui/fail/scalar_psd_dual.rs
  • crates/oximo-solver/tests/ui/fail/scalar_psd_dual.stderr
  • crates/oximo-solver/tests/ui/fail/soc_scalar_dual.rs
  • crates/oximo-solver/tests/ui/fail/soc_scalar_dual.stderr
  • crates/oximo-solver/tests/ui/fail/sos_scalar_dual.rs
  • crates/oximo-solver/tests/ui/fail/sos_scalar_dual.stderr
  • crates/oximo-solver/tests/ui/fail/unbound_translation.rs
  • crates/oximo-solver/tests/ui/fail/unbound_translation.stderr
  • crates/oximo-solver/tests/ui/pass/prepared_translation_and_duals.rs
  • crates/oximo/tests/gdp.rs
  • crates/oximo/tests/lowering_conformance.rs
  • crates/oximo/tests/persistent_parameters.rs
  • crates/oximo/tests/solve.rs
  • crates/oximo/tests/solve_baron.rs

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • Review on demand using usage pricing
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@codecov

codecov Bot commented Oct 26, 2026

Copy link
Copy Markdown

@GermanHeim
GermanHeim merged commit edf0c21 into main Oct 26, 2026
17 checks passed
@GermanHeim
GermanHeim deleted the comp-time-interface branch October 26, 2026 21:04
GermanHeim added a commit to oximo-rs/oximo-docs that referenced this pull request Oct 27, 2026
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