Skip to content

Conversation

@T0nyX1ang
Copy link
Owner

@T0nyX1ang T0nyX1ang commented Jan 15, 2026

What's new in v0.8.0:

frontend

  • fix: the parameter box cannot be invoked
  • feat: remove loadInfo parameter in imp function
  • fix: example box is reset if puzzle type is not changed
  • fix: bit version of numberlink not loading properly
  • feat: refresh example selection while importing from outside

backend

  • feat(!): normalize edge definitions (see issue [Refactor] Normalize directions in Noqx #123 and PR refactor: normalize direction in noqx #125)
  • feat(!): change puzzle category from loop to route
  • feat(!): normalize all GREEN colors to WHITE
  • fix: remove undefined dead_end variable in loops
  • feat: support older versions of Penpa+ in arrowed numbers
  • fix: hinge solver missing a constraint ([Bug] Hinge solver does not consider all the rules #87)
  • feat: remove type check for edge/line in store_solution
  • feat: strip the data at first (if possible) in the _int_or_str function
  • feat: add a with_border parameter to the edge rule (default is True)
  • feat: support initial conditions for gokigen
  • test: show the failed puzzle type explicitly
  • chore: enlarge the default max_number (to 20) in bosanow

dependencies

  • chore(deps): convertional-pre-commit to v4.3.0, ruff to v0.14.10

documents

  • docs: add external link jumps for Noqx and Noq

new solvers

  • killer sudoku
  • arrow sudoku
  • thermo sudoku
  • even/odd sudoku
  • renban-madoguchi
  • toichika
  • toichika2
  • lithersink
  • wittgenstein briquet
  • roma
  • rassi silai
  • antmill
  • scrin
  • nurimaze

- The hard coded directions are relieved in this change.
- change edge_left(R, C)/edge_top(R, C) to edge(R, C, "D")
- D is a normalized direction defined in Direction
- All the loops and paths are changed to routes for unity.
- The shading colors are set to `green` if possible.
This API has been merged into the `fill_line` API
@codecov
Copy link

codecov bot commented Jan 15, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 99.79%. Comparing base (4651d5e) to head (0e00085).
⚠️ Report is 63 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #126      +/-   ##
==========================================
+ Coverage   99.66%   99.79%   +0.13%     
==========================================
  Files         157      167      +10     
  Lines        7412     7936     +524     
  Branches      952     1112     +160     
==========================================
+ Hits         7387     7920     +533     
+ Misses         12        7       -5     
+ Partials       13        9       -4     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link

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

This pull request syncs the dev branch to master, updating dependencies and refactoring solver code to use standardized Direction constants and route/edge handling.

Changes:

  • Updates multiple Python package dependencies to newer versions
  • Refactors solvers to use Direction constants instead of string literals
  • Migrates loop-category solvers to route-category with updated predicates
  • Adds 7 new puzzle solver implementations

Reviewed changes

Copilot reviewed 112 out of 113 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
uv.lock Dependency version updates for various packages
tests/test_solver.py Added compass_constraint test and hinge edge case test
solver/yajitatami.py Updated to use Direction constants for edge handling
solver/yajilin_regions.py Migrated from loop to route category
solver/yajilin.py Migrated from loop to route with Direction constants
solver/yajikazu.py Updated arrow direction handling
solver/wittgen.py New Wittgenstein Briquet solver
solver/walllogic.py Updated edge display handling
solver/voxas.py Updated edge display handling
solver/usotatami.py Updated to use Direction constants
solver/triplace.py Updated edge handling with Direction constants
solver/toichika2.py New Toichika 2 solver
solver/toichika.py New Toichika solver
solver/tilepaint.py Updated corner label references
solver/tetrominous.py Updated edge handling
solver/tetrochain.py Updated arrow direction handling
solver/tentaisho.py Updated edge constraints with Direction constants
solver/tatamibari.py Updated edge display handling
solver/tapaloop.py Migrated from loop to route category
solver/symmarea.py Updated fillomino constraint with Direction constants
solver/sudoku.py Added killer cage, arrow, and thermo support
solver/squarejam.py Updated edge display handling
solver/snake.py Renamed pass_by_loop to pass_by_route
solver/slitherlink.py Migrated from loop to route category
solver/simpleloop.py Migrated from loop to route with holes
solver/shingoki.py Migrated from loop to route category
solver/shikaku.py Updated edge display handling
solver/shakashaka.py Updated triangle direction handling
solver/scrin.py New Scrin solver
solver/roma.py New Roma solver
solver/renban.py New Renban-Madoguchi solver
solver/rassi.py New Rassi Silai solver
solver/railpool.py Migrated from loop to route category
solver/pipelink.py Migrated from loop to route category
solver/pentopia.py Updated opia constraint with Direction constants
solver/pentominous.py Updated edge handling
solver/patchwork.py Updated area adjacent constraint
solver/ncells.py Updated edge display handling
solver/nanro.py Updated corner label references

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

@T0nyX1ang T0nyX1ang merged commit 28a8add into master Jan 15, 2026
22 checks passed
@T0nyX1ang T0nyX1ang self-assigned this Jan 16, 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.

2 participants