Skip to content

fix(release): port logging, score parsing, and sf-config wiring#26

Merged
blackopsrepl merged 5 commits intorelease/0.6.0from
codex/release-0.6.0-integration
Mar 22, 2026
Merged

fix(release): port logging, score parsing, and sf-config wiring#26
blackopsrepl merged 5 commits intorelease/0.6.0from
codex/release-0.6.0-integration

Conversation

@blackopsrepl
Copy link
Collaborator

Summary

  • port the console logging fix so solver directives still apply when RUST_LOG is set
  • parse simulated annealing starting_temperature via ParseableScore
  • add sf-config.json helper wiring for CLI generate/destroy flows

Testing

  • cargo test -p solverforge-console --lib
  • cargo test -p solverforge-solver test_acceptor_builder_simulated_annealing --lib
  • cargo test -p solverforge-cli preserves_arbitrary_view_shape_when_updating_constraints
  • cargo test -p solverforge-cli --test scaffold_test

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ecdbdef1ea

ℹ️ 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".

Comment on lines 296 to 297
if line.contains(&format!("{}::", name)) {
continue;

Choose a reason for hiding this comment

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

P1 Badge Handle flat-shape tuples when removing constraints

In flat-shape constraint modules like templates/list/vehicle-routing/src/constraints/mod.rs, generate constraint appends foo::constraint() into the same tuple line as the existing constraints. This branch drops any line containing foo::, so destroy constraint foo deletes the entire tuple expression instead of just that element, leaving create_constraints() with no return value and breaking compilation for projects using that layout.

Useful? React with 👍 / 👎.

Comment on lines +141 to +145
.map(|s| {
let score = S::Score::parse(s).unwrap_or_else(|e| {
panic!("Invalid starting_temperature '{}': {}", s, e)
});
score.to_scalar().abs()

Choose a reason for hiding this comment

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

P1 Badge Accept scalar SA temperatures in config-driven builders

This now parses starting_temperature with S::Score::parse, which rejects the scalar values that the acceptor already supports (SimulatedAnnealingAcceptor::new still takes an f64). A solver.toml that previously used 1.5 or 100.0 will now panic at startup unless the string happens to match the score type’s textual format, so existing simulated-annealing configs regress as soon as they use a numeric temperature or any fractional value for SoftScore/HardSoftScore.

Useful? React with 👍 / 👎.

Comment on lines +21 to +25
struct SfConfig {
title: String,
subtitle: String,
#[serde(default)]
constraints: Vec<String>,

Choose a reason for hiding this comment

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

P2 Badge Preserve unknown top-level keys in sf-config.json

SfConfig only models a fixed set of top-level fields, and save() serializes that struct back verbatim. Because Serde ignores unknown keys on input, any existing static/sf-config.json that contains additional UI settings will silently lose them the next time generate/destroy updates constraints, entities, or facts, even though those commands only intended to touch one list.

Useful? React with 👍 / 👎.

@blackopsrepl blackopsrepl merged commit 731c877 into release/0.6.0 Mar 22, 2026
4 checks passed
@blackopsrepl blackopsrepl deleted the codex/release-0.6.0-integration branch March 22, 2026 15: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