Skip to content

feat: add parallel C++ constraint-bundle evaluation universe#52

Merged
dfeen87 merged 1 commit intomainfrom
add-cpp-constraint-bundles-13576498636255101788
Apr 10, 2026
Merged

feat: add parallel C++ constraint-bundle evaluation universe#52
dfeen87 merged 1 commit intomainfrom
add-cpp-constraint-bundles-13576498636255101788

Conversation

@dfeen87
Copy link
Copy Markdown
Owner

@dfeen87 dfeen87 commented Apr 10, 2026

This PR introduces a standalone C++ constraint-bundle evaluation universe to the Curaframe repository.
It establishes a core architecture in constraint_core/ featuring dynamic auto-registration, a unified MultiBundleEvaluator, and structures for Candidate and EvaluationReport.
12 domain-specific physical/physiological bundles have been added to constraints/ (e.g., metabolic, oncology, CNS).
Added robust documentation (constraint_bundles.md, evaluation_pipeline.md) and a dedicated C++ CHANGELOG.md.
The version has been bumped non-destructively to 2.5.0.


PR created automatically by Jules for task 13576498636255101788 started by @dfeen87

Adds a standalone C++ subsystem for simulating multi-domain
therapeutic constraints (metabolic, systemic, oncology, etc.)
without modifying the existing Python codebase. Bumps version
from 2.4.1 to 2.5.0 across setup.py, CITATION.cff, README, and __init__.py.

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
@google-labs-jules
Copy link
Copy Markdown
Contributor

👋 Jules, reporting for duty! I'm here to lend a hand with this pull request.

When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down.

I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job!

For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

Copilot AI review requested due to automatic review settings April 10, 2026 13:06
@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@dfeen87 dfeen87 merged commit aa8f1da into main Apr 10, 2026
4 checks passed
@dfeen87 dfeen87 deleted the add-cpp-constraint-bundles-13576498636255101788 branch April 10, 2026 13:07
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Introduces a standalone C++ “constraint-bundle evaluation universe” alongside CuraFrame’s existing Python package, adding a registry-driven bundle architecture, a unified evaluator/report output, and domain-specific constraint bundles, plus accompanying documentation and a non-destructive version bump to 2.5.0.

Changes:

  • Added C++ core types for candidate representation, bundle interface/registry, evaluation orchestration, and reporting (constraint_core/).
  • Added 12 domain-specific C++ constraint bundles under constraints/, each auto-registering into the evaluation registry.
  • Added C++-focused documentation and bumped project version references to 2.5.0.

Reviewed changes

Copilot reviewed 36 out of 36 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
setup.py Bumps Python package version to 2.5.0.
cura_frame/init.py Updates __version__ to 2.5.0.
README.md Updates citation snippet version to 2.5.0.
CITATION.cff Updates citation metadata version to 2.5.0.
docs/constraint_bundles.md Documents available C++ constraint bundle domains and intent.
docs/evaluation_pipeline.md Documents the unified C++ evaluation flow and example usage.
docs/CHANGELOG.md Adds a dedicated C++ subsystem changelog entry for 2.5.0.
constraint_core/Candidate.hpp Adds C++ candidate structure used by bundles/evaluator.
constraint_core/ConstraintBundle.hpp Defines the C++ bundle interface contract.
constraint_core/ConstraintRegistry.hpp Adds bundle registry + auto-registration macro.
constraint_core/EvaluationReport.hpp Adds aggregated evaluation output structure.
constraint_core/MultiBundleEvaluator.hpp Implements cross-bundle evaluation and aggregation.
constraints/metabolic/MetabolicBundle.hpp Adds metabolic stability bundle implementation + registration.
constraints/metabolic/MetabolicBundle.cpp Translation unit to compile/link metabolic bundle.
constraints/systemic_exposure/SystemicExposureBundle.hpp Adds systemic exposure bundle implementation + registration.
constraints/systemic_exposure/SystemicExposureBundle.cpp Translation unit to compile/link systemic exposure bundle.
constraints/hepatic/HepaticBundle.hpp Adds hepatic bundle implementation + registration.
constraints/hepatic/HepaticBundle.cpp Translation unit to compile/link hepatic bundle.
constraints/renal/RenalBundle.hpp Adds renal bundle implementation + registration.
constraints/renal/RenalBundle.cpp Translation unit to compile/link renal bundle.
constraints/cardiac/CardiacBundle.hpp Adds cardiac bundle implementation + registration.
constraints/cardiac/CardiacBundle.cpp Translation unit to compile/link cardiac bundle.
constraints/cns/CNSBundle.hpp Adds CNS bundle implementation + registration.
constraints/cns/CNSBundle.cpp Translation unit to compile/link CNS bundle.
constraints/anti_infective/AntiInfectiveBundle.hpp Adds anti-infective bundle implementation + registration.
constraints/anti_infective/AntiInfectiveBundle.cpp Translation unit to compile/link anti-infective bundle.
constraints/oncology/OncologyBundle.hpp Adds oncology bundle implementation + registration.
constraints/oncology/OncologyBundle.cpp Translation unit to compile/link oncology bundle.
constraints/immunologic/ImmunologicBundle.hpp Adds immunologic bundle implementation + registration.
constraints/immunologic/ImmunologicBundle.cpp Translation unit to compile/link immunologic bundle.
constraints/formulation/FormulationBundle.hpp Adds formulation bundle implementation + registration.
constraints/formulation/FormulationBundle.cpp Translation unit to compile/link formulation bundle.
constraints/pkpd/PKPDBundle.hpp Adds PK/PD bundle implementation + registration.
constraints/pkpd/PKPDBundle.cpp Translation unit to compile/link PK/PD bundle.
constraints/safety/SafetyBundle.hpp Adds global safety bundle implementation + registration.
constraints/safety/SafetyBundle.cpp Translation unit to compile/link safety bundle.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +25 to +27
// Collect metadata if needed (for later extension)
auto metadata = bundle->bundle_metadata();

Copy link

Copilot AI Apr 10, 2026

Choose a reason for hiding this comment

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

metadata is retrieved but never used. In a header, this can trigger -Wunused-variable warnings (and potentially fail builds with -Werror). Either remove the variable entirely or explicitly mark it unused (e.g., (void)metadata; / [[maybe_unused]]).

Copilot uses AI. Check for mistakes.
// Additional domain-specific properties can be mapped here
std::map<std::string, double> properties;

Candidate(std::string id = "unknown") : id(id), molecular_weight(0.0), logp(0.0) {}
Copy link

Copilot AI Apr 10, 2026

Choose a reason for hiding this comment

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

The Candidate constructor takes id by value but then copies it into the member (id(id)). Prefer moving (id(std::move(id))) or taking const std::string& to avoid an extra copy when constructing candidates.

Copilot uses AI. Check for mistakes.
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