Skip to content

v0.3.2 update#47

Merged
SmilingWayne merged 4 commits intomainfrom
basic-dev
Feb 15, 2026
Merged

v0.3.2 update#47
SmilingWayne merged 4 commits intomainfrom
basic-dev

Conversation

@SmilingWayne
Copy link
Owner

@SmilingWayne SmilingWayne commented Feb 15, 2026

  • update solvers to 100+
  • update README
  • heyawake optimize.

Note

Medium Risk
Adds several new CP-SAT models and modifies HeyawakeSolver’s iterative constraint logic, which could introduce correctness/performance regressions in solving and verification across multiple puzzle types.

Overview
Updates PuzzleKit to v0.3.2 and expands the library to 100+ solvers, adding new implementations for cojun, geradeweg, nanro, nurikabe, pipes, shimaguni, shirokuro, shugaku, tatamibari, and usoone, and wiring them into the solver/parser/verifier/viz registries.

Improves tooling and docs: README.md is refreshed (new dataset counts, roadmap, related projects, updated examples), mkdocs.yml navigation includes the new puzzles, scripts/benchmark.py adds --skip, and scripts/quick_start.py is updated.

Performance/behavior tweaks include a reworked HeyawakeSolver (new heuristics/cuts and optional connectivity enforcement) and a small robustness change in line rendering (viz/drawers.py) to accept any connector string composed of n/s/w/e characters.

Written by Cursor Bugbot for commit 0016acd. This will update automatically on new commits. Configure here.

@SmilingWayne SmilingWayne merged commit b64781e into main Feb 15, 2026
2 checks passed
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 3 potential issues.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

This is the final PR Bugbot will review for you during this billing cycle

Your free Bugbot reviews will reset on March 24

Details

You are on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle.

To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

self.model.Add(len_n == clue_value).OnlyEnforceIf(is_ne_turn)
self.model.Add(len_e == clue_value).OnlyEnforceIf(is_ne_turn)
else:
self.model.Add(len_n == len_w).OnlyEnforceIf(is_ne_turn)
Copy link

Choose a reason for hiding this comment

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

NE turn constraint uses wrong arm variable

High Severity

For ? clues at an NE turn (north + east), the equal-arm constraint incorrectly compares len_n with len_w (west arm) instead of len_e (east arm). The other three turn cases (NW, SE, SW) all correctly compare the two arms involved in the turn. This will produce incorrect solutions for any puzzle containing ? clues where the loop makes an NE turn.

Fix in Cursor Fix in Web

status = self.solver.Solve(self.model)

if iteration > 50 and not add_new:
print("DUMPING NEW CONSTRAINT!")
Copy link

Choose a reason for hiding this comment

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

Debug print statement left in production code

Medium Severity

print("DUMPING NEW CONSTRAINT!") will execute in production whenever the iterative solver exceeds 50 iterations. This prints debug output to stdout during normal puzzle solving, which is undesirable for a library used programmatically.

Fix in Cursor Fix in Web

else:
print("-", end=" ")
print()

Copy link

Choose a reason for hiding this comment

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

Unused debug and incomplete methods committed

Low Severity

Three methods appear to be development leftovers: _temp_display is a debug helper never called anywhere, _find_all_cycles_in_component is incomplete (implicitly returns None for components with 4+ cells), and _get_cycle_edges is never called. These add dead code to the optimized heyawake solver.

Additional Locations (2)

Fix in Cursor Fix in Web

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