Snapshot
Created from the open GitHub state on 2026-06-08.
Open issues: 12
Open PRs: 12
All open PRs were non-draft, mergeStateStatus = CLEAN, and had green checks at the time of this snapshot.
Treat that green status as stale after every merge to main; rebase or update the next PR and rerun CI before merging it.
This issue is the coordination map for the current repo state. The goal is to avoid duplicate fixes, keep stacked PRs moving in dependency order, and decide where the backend architecture should land before the larger optional-backend work is merged.
Executive sequence
Recommended high-level order:
Land the single-variable QUBO fix once, preferably through PR Solve single-variable QUBO inputs exactly instead of crashing #50 .
Rebase PRs that duplicated the single-variable fix and remove their copies.
Land CI modernization through PR Modernize Julia CI action pins #51 after the duplicate solver code is removed, or consciously choose PR Modernize Julia CI action pins #51 as the canonical combined fix and close PR Solve single-variable QUBO inputs exactly instead of crashing #50 as superseded.
Merge independent main-targeted solver fixes/features one at a time: Document DMRG mindim default #34 , Fix QUBO local-minimum polish #32 , Add Q-matrix preprocessing permutation #33 .
Implement and merge the QUBOTools/QUBODrivers compat update for issue Update QUBOTools and QUBODrivers compat for QUBOTools 0.12.1 #47 .
Decide the optional GenericTensorNetworks backend PR Add optional GenericTensorNetworks backend #31 before merging the PEPS backend-interface PRs.
Merge the SpinGlassPEPS stack in exact stack order: Document SpinGlassPEPS integration architecture #41 -> Add QUBO/Ising conversion utilities #42 -> Introduce solver backend interface #43 -> Add optional SpinGlassPEPS backend #44 -> Add JuMP PEPS backend attributes #45 -> Add PEPS docs, examples, and benchmarks #46 .
The most important coordination point is the overlap between PR #50 and PR #51 . Issue #49 says the one-variable crash should be fixed once, on its own. Issue #48 says CI modernization should not add package code. PR #51 is currently green because it includes a one-variable solver fix as a CI unblocker, but the cleaner long-term history is:
Merge Solve single-variable QUBO inputs exactly instead of crashing #50 as the canonical one-variable QUBO fix.
Rebase Modernize Julia CI action pins #51 onto updated main.
Remove the duplicated solver/test changes from Modernize Julia CI action pins #51 so it is CI-only.
Merge Modernize Julia CI action pins #51 for issue Modernize Julia CI cache action and workflow pins #48 .
Alternative fast path:
Do not merge both #50 and #51 as-is without a rebase/diff audit.
Open issue map
Issue
Area
Current PR
Recommended disposition
#49 minimize/maximize crash on single-variable (1x1) QUBO inputs
Correctness bug
#50 , also duplicated in #51 and reported across older PRs
Make #50 the canonical fix if possible. Rebase/remove duplicate one-site code from #51 , #34 , #33 , #41 , and any other PR that carries it.
#48 Modernize Julia CI cache action and workflow pins
CI maintenance
#51
Merge after #50 , with package-code overlap removed. If #51 remains combined, close #50 as superseded after verification.
#47 Update QUBOTools and QUBODrivers compat for QUBOTools 0.12.1
Dependency compatibility
No PR yet
Implement after base stabilization and before QUBODrivers-heavy backend PRs. Validate QUBOTools 0.12.1 and likely QUBODrivers 0.5 in a clean environment.
#40 [SpinGlassPEPS 6/6] Add PEPS backend docs, examples, and benchmark scripts
PEPS docs/examples/benchmarks
#46
Merge last in the PEPS stack, after #45 .
#39 [SpinGlassPEPS 5/6] Expose PEPS backend through QUBODrivers and JuMP attributes
PEPS JuMP/QUBODrivers exposure
#45
Merge after #44 and after issue #47 is resolved or explicitly deemed not blocking.
#38 [SpinGlassPEPS 4/6] Add optional SpinGlassPEPS-backed structured solver path
Optional PEPS backend
#44
Merge after #43 . Keep SpinGlass components optional and PEPS tests gated where dependencies are unavailable.
#37 [SpinGlassPEPS 3/6] Introduce solver backend interface while keeping DMRG default
Backend interface
#43
Merge after #42 , but first resolve the relationship with #31 if #31 is intended to land.
#36 [SpinGlassPEPS 2/6] Add QUBO/Ising conversion utilities with exact tests
Conversion utilities
#42
Merge after #41 . This is the correctness base for PEPS.
#35 [SpinGlassPEPS 1/6] Document integration architecture and backend boundary
Design docs
#41
Merge as the PEPS stack base after removing any duplicate one-variable fix if #50 lands first.
#19 Getting stuck on local minima
Solver quality/correctness
#32
Merge after the single-variable fix and CI modernization. Rebase before merge because src/solver.jl is high-conflict.
#12 Preprocessing: Implement Q-matrix permutation
Solver preprocessing enhancement
#33
Merge after core bug fixes. Rebase after #32 if #32 lands first because both affect solver behavior and samples.
#1 LAPACKException on some QUBO examples
Solver stability bug
#34
Merge early after #50 /#51 because this is a user-facing bug fix. Remove duplicated one-variable code after #50 .
Open PR map
PR
Base branch
Head branch
Linked issue
Status at snapshot
Merge notes
#51 Modernize Julia CI action pins
main
fix/issue-48-modernize-ci-actions
#48
Green, clean
Updates checkout/setup/cache/codecov majors. Also contains the one-variable solver fix. Prefer rebasing after #50 and making it CI-only.
#50 Solve single-variable QUBO inputs exactly instead of crashing
main
fix/issue-49-single-variable-solve
#49
Green, clean
Best canonical PR for #49 . Merge first to de-duplicate the edge-case fix.
#46 Add PEPS docs, examples, and benchmarks
feature/issue-39-jump-peps-attrs
docs/issue-40-peps-examples-benchmarks
#40
Green, clean
Stack 6/6. Merge only after #45 .
#45 Add JuMP PEPS backend attributes
feature/issue-38-spinglasspeps-backend
feature/issue-39-jump-peps-attrs
#39
Green, clean
Stack 5/6. Depends on #44 and may need adjustment after #47 .
#44 Add optional SpinGlassPEPS backend
feature/issue-37-backend-interface
feature/issue-38-spinglasspeps-backend
#38
Green, clean
Stack 4/6. Optional component packages remain gated/unavailable in normal CI.
#43 Introduce solver backend interface
feature/issue-36-qubo-ising-conversion
feature/issue-37-backend-interface
#37
Green, clean
Stack 3/6. Potential conflict with #31 , which also introduces backend abstractions.
#42 Add QUBO/Ising conversion utilities
docs/issue-35-spinglasspeps-design
feature/issue-36-qubo-ising-conversion
#36
Green, clean
Stack 2/6. Merge after #41 .
#41 Document SpinGlassPEPS integration architecture
main
docs/issue-35-spinglasspeps-design
#35
Green, clean
Stack 1/6. Contains duplicate single-variable fix according to the PR body; remove that if #50 lands first.
#34 Fix QUBO DMRG LAPACK stability
main
fix/issue-1-lapack-qubo
#1
Green, clean
Bug fix. Rebase after #50 /#51 and remove duplicate one-site path if present.
#33 Add Q-matrix preprocessing permutation
main
fix/issue-12-q-matrix-permutation
#12
Green, clean
Feature. Rebase after solver bug fixes and verify sample unpermutation still composes with polish/backend changes.
#32 Fix QUBO local-minimum polish
main
fix/issue-19-local-minima
#19
Green, clean
Bug/quality fix. Merge before preprocessing if maintainers prioritize correctness regression first.
#31 Add optional GenericTensorNetworks backend
main
codex/gtn-backend-integration
No open issue linked in body
Green, clean
Large optional-backend feature. Decide before #43 ; otherwise #43 and #31 may create competing backend abstractions.
Detailed merge plan
Phase 0: pre-merge discipline
Before each merge:
Update the PR branch from the latest main.
Rerun GitHub CI after the update.
Inspect the diff for duplicated one-variable solver code.
Avoid batching merges. Merge one PR, wait for main to settle, then update the next PR.
Expected local verification commands, as applicable:
julia --project=. -e ' using Pkg; Pkg.test()'
julia --project=docs/ docs/make.jl local
git diff --check
For CI-only changes, additionally verify the GitHub matrix, cache restore/save, and Codecov upload behavior.
Phase 1: de-duplicate the one-variable QUBO fix
Primary path:
Merge Solve single-variable QUBO inputs exactly instead of crashing #50 .
Confirm minimize/maximize crash on single-variable (1x1) QUBO inputs #49 can be closed by Solve single-variable QUBO inputs exactly instead of crashing #50 .
Rebase Modernize Julia CI action pins #51 onto main and remove solver/test changes already landed by Solve single-variable QUBO inputs exactly instead of crashing #50 .
Rebase Document DMRG mindim default #34 , Add Q-matrix preprocessing permutation #33 , Document SpinGlassPEPS integration architecture #41 , and any other affected PRs onto main; remove duplicated one-site special cases.
Re-run CI on each rebased PR.
Why this comes first:
The one-variable crash is a small correctness bug and blocks clean CI in newer QUBODrivers coverage.
Several PRs contain slightly different fixes. Landing it once reduces merge conflicts and review noise.
Fallback path:
Merge Modernize Julia CI action pins #51 as-is.
Verify minimize/maximize crash on single-variable (1x1) QUBO inputs #49 is fully covered by Modernize Julia CI action pins #51 's tests and behavior.
Close Solve single-variable QUBO inputs exactly instead of crashing #50 as superseded, or rework it into an extra-test-only PR if it has coverage worth keeping.
Rebase older PRs and remove their duplicate one-site fixes.
Phase 2: CI modernization
Target: #51 for #48 .
Acceptance gate:
Existing OS/version/arch matrix remains unchanged unless a separate issue is opened.
actions/checkout, julia-actions/setup-julia, julia-actions/cache, and codecov/codecov-action are updated as intended.
julia-actions/cache@v3 restores/saves successfully.
codecov/codecov-action@v6 uploads successfully or is split into a separate follow-up if token/configuration changes are required.
Preferred merge point:
Phase 3: main-line solver fixes and enhancements
Recommended order:
Document DMRG mindim default #34 for LAPACKException on some QUBO examples #1 : DMRG/LAPACK stability and VRP regression.
Fix QUBO local-minimum polish #32 for Getting stuck on local minima #19 : local-minimum polish and regression objective.
Add Q-matrix preprocessing permutation #33 for Preprocessing: Implement Q-matrix permutation #12 : Q-matrix preprocessing permutation.
Rationale:
Conflict notes:
Phase 4: dependency compatibility
Target: issue #47 . No PR is open yet.
Do this after the base solver fixes and before QUBODrivers-heavy optional backend work.
Required work:
Audit current TenSolver behavior against QUBOTools 0.12.1.
Audit QUBODrivers integration against the latest compatible line, likely 0.5 if the optimizer interface still matches.
Widen [compat] only as far as validated.
Run normal tests and explicit JuMP/QUBODrivers integration tests in a clean environment.
Prepare release notes for a TenSolver release if the compat update is safe.
Why this comes before #45 :
Also consider #31 here:
Phase 5: optional GenericTensorNetworks decision
Target: #31 .
#31 is green and clean, but it is large and not mapped to an open issue in the current issue list. It introduces:
Internal pseudo-Boolean objective representation.
DMRGBackend and optional GTNBackend dispatch.
A Julia package extension for GenericTensorNetworks.
QUBODrivers backend attributes.
Tests and docs/examples.
Decision needed before PEPS PR #43 :
Do not let #31 and #43 independently establish incompatible backend APIs.
Phase 6: SpinGlassPEPS stack
Merge the stack exactly in dependency order:
Document SpinGlassPEPS integration architecture #41 closes [SpinGlassPEPS 1/6] Document integration architecture and backend boundary #35 : design and architecture document.
Add QUBO/Ising conversion utilities #42 closes [SpinGlassPEPS 2/6] Add QUBO/Ising conversion utilities with exact tests #36 : QUBO/Ising conversion utilities and exhaustive exact tests.
Introduce solver backend interface #43 closes [SpinGlassPEPS 3/6] Introduce solver backend interface while keeping DMRG default #37 : backend interface while keeping DMRG default.
Add optional SpinGlassPEPS backend #44 closes [SpinGlassPEPS 4/6] Add optional SpinGlassPEPS-backed structured solver path #38 : optional SpinGlassPEPS-backed structured direct API.
Add JuMP PEPS backend attributes #45 closes [SpinGlassPEPS 5/6] Expose PEPS backend through QUBODrivers and JuMP attributes #39 : QUBODrivers/JuMP attributes for selecting PEPS.
Add PEPS docs, examples, and benchmarks #46 closes [SpinGlassPEPS 6/6] Add PEPS backend docs, examples, and benchmark scripts #40 : PEPS docs, examples, and benchmark scripts.
Stack handling:
PEPS-specific validation gates:
Risk and conflict map
Duplicate one-variable QUBO fixes
Known overlap:
Resolution:
Choose one canonical fix.
Rebase every other PR and drop its copy.
Keep or move only genuinely additional tests.
Solver-path conflicts
Likely affected PRs:
Resolution:
Merge from smallest correctness fix to broader feature.
Re-run full QUBO, QUBODrivers, and docs tests after rebases.
Pay attention to sample order, objective evaluation, and Solution membership behavior.
Backend abstraction conflicts
Likely affected PRs:
Resolution:
QUBODrivers compatibility risk
Likely affected work:
Resolution:
Optional dependency risk
Likely affected PRs:
Resolution:
Keep optional packages out of mandatory [deps].
Use package extensions or bridge packages.
Gate tests that require heavy optional stacks.
Ensure ordinary TenSolver install/test paths remain lightweight.
Definition of done for this epic
This epic can be closed when:
Every open issue listed above is closed, intentionally superseded, or re-scoped into a newer issue.
Every open PR listed above is merged, closed as superseded, or split into smaller tracked PRs.
The one-variable QUBO fix exists in exactly one canonical mainline implementation.
CI workflow pins are modernized and the matrix is green.
QUBOTools/QUBODrivers compat is updated or explicitly blocked with a documented reason.
The backend architecture decision between Add optional GenericTensorNetworks backend #31 and the PEPS stack is resolved.
The SpinGlassPEPS stack is either merged through Add PEPS docs, examples, and benchmarks #46 or intentionally paused with the next blocking action documented.
Snapshot
Created from the open GitHub state on 2026-06-08.
mergeStateStatus = CLEAN, and had green checks at the time of this snapshot.main; rebase or update the next PR and rerun CI before merging it.This issue is the coordination map for the current repo state. The goal is to avoid duplicate fixes, keep stacked PRs moving in dependency order, and decide where the backend architecture should land before the larger optional-backend work is merged.
Executive sequence
Recommended high-level order:
The most important coordination point is the overlap between PR #50 and PR #51. Issue #49 says the one-variable crash should be fixed once, on its own. Issue #48 says CI modernization should not add package code. PR #51 is currently green because it includes a one-variable solver fix as a CI unblocker, but the cleaner long-term history is:
main.Alternative fast path:
Do not merge both #50 and #51 as-is without a rebase/diff audit.
Open issue map
minimize/maximize crash on single-variable (1x1) QUBO inputsModernize Julia CI cache action and workflow pinsUpdate QUBOTools and QUBODrivers compat for QUBOTools 0.12.1QUBOTools0.12.1 and likelyQUBODrivers0.5 in a clean environment.[SpinGlassPEPS 6/6] Add PEPS backend docs, examples, and benchmark scripts[SpinGlassPEPS 5/6] Expose PEPS backend through QUBODrivers and JuMP attributes[SpinGlassPEPS 4/6] Add optional SpinGlassPEPS-backed structured solver path[SpinGlassPEPS 3/6] Introduce solver backend interface while keeping DMRG default[SpinGlassPEPS 2/6] Add QUBO/Ising conversion utilities with exact tests[SpinGlassPEPS 1/6] Document integration architecture and backend boundaryGetting stuck on local minimasrc/solver.jlis high-conflict.Preprocessing: Implement Q-matrix permutationLAPACKException on some QUBO examplesOpen PR map
Modernize Julia CI action pinsmainfix/issue-48-modernize-ci-actionsSolve single-variable QUBO inputs exactly instead of crashingmainfix/issue-49-single-variable-solveAdd PEPS docs, examples, and benchmarksfeature/issue-39-jump-peps-attrsdocs/issue-40-peps-examples-benchmarksAdd JuMP PEPS backend attributesfeature/issue-38-spinglasspeps-backendfeature/issue-39-jump-peps-attrsAdd optional SpinGlassPEPS backendfeature/issue-37-backend-interfacefeature/issue-38-spinglasspeps-backendIntroduce solver backend interfacefeature/issue-36-qubo-ising-conversionfeature/issue-37-backend-interfaceAdd QUBO/Ising conversion utilitiesdocs/issue-35-spinglasspeps-designfeature/issue-36-qubo-ising-conversionDocument SpinGlassPEPS integration architecturemaindocs/issue-35-spinglasspeps-designFix QUBO DMRG LAPACK stabilitymainfix/issue-1-lapack-quboAdd Q-matrix preprocessing permutationmainfix/issue-12-q-matrix-permutationFix QUBO local-minimum polishmainfix/issue-19-local-minimaAdd optional GenericTensorNetworks backendmaincodex/gtn-backend-integrationDetailed merge plan
Phase 0: pre-merge discipline
Before each merge:
main.mainto settle, then update the next PR.Expected local verification commands, as applicable:
For CI-only changes, additionally verify the GitHub matrix, cache restore/save, and Codecov upload behavior.
Phase 1: de-duplicate the one-variable QUBO fix
Primary path:
mainand remove solver/test changes already landed by Solve single-variable QUBO inputs exactly instead of crashing #50.main; remove duplicated one-site special cases.Why this comes first:
Fallback path:
Phase 2: CI modernization
Target: #51 for #48.
Acceptance gate:
actions/checkout,julia-actions/setup-julia,julia-actions/cache, andcodecov/codecov-actionare updated as intended.julia-actions/cache@v3restores/saves successfully.codecov/codecov-action@v6uploads successfully or is split into a separate follow-up if token/configuration changes are required.Preferred merge point:
Phase 3: main-line solver fixes and enhancements
Recommended order:
Rationale:
Conflict notes:
src/solver.jland QUBO tests to need rebases.Phase 4: dependency compatibility
Target: issue #47. No PR is open yet.
Do this after the base solver fixes and before QUBODrivers-heavy optional backend work.
Required work:
QUBOTools0.12.1.[compat]only as far as validated.Why this comes before #45:
Also consider #31 here:
Phase 5: optional GenericTensorNetworks decision
Target: #31.
#31 is green and clean, but it is large and not mapped to an open issue in the current issue list. It introduces:
DMRGBackendand optionalGTNBackenddispatch.Decision needed before PEPS PR #43:
Do not let #31 and #43 independently establish incompatible backend APIs.
Phase 6: SpinGlassPEPS stack
Merge the stack exactly in dependency order:
Stack handling:
mainand rerun CI.PEPS-specific validation gates:
minimize,maximize, and QUBODrivers default behavior on DMRG.Risk and conflict map
Duplicate one-variable QUBO fixes
Known overlap:
Resolution:
Solver-path conflicts
Likely affected PRs:
Resolution:
Solutionmembership behavior.Backend abstraction conflicts
Likely affected PRs:
Resolution:
QUBODrivers compatibility risk
Likely affected work:
Resolution:
Optional dependency risk
Likely affected PRs:
Resolution:
[deps].Definition of done for this epic
This epic can be closed when: