You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Integrate the MultiPhaseVesselRefactor branch into master via an author-led
rebase, with enough evidence that the change is safe for the physical models.
Why this needs an epic
Verified 2026-07-31: the branch is 47 commits ahead and 263 behind master, with
merge base d6eaf85 dated 2024-05-17 (~2.2 years). It changes 25 files,
~5,925 additions / 1,122 deletions, and adds zero test files. It has no PR.
It rewrites Phases.py (+344/-838), Streams.py, MixedPhases.py, and adds MultiPhaseVessel.py (+1,601), Mechanisms.py, IntegratorBackends.py, DataClasses.py, Classifier.py.
The textual conflict surface is currently small (6 files: .gitignore, Commons.py, Drying_Model.py, Kinetics.py, Phases.py, requirements.txt) because the crystallizer/reactor/kinetics fixes are still unmerged in open PRs.
Every PR that lands after a rebase forces another rebase.
The risk is semantic, not textual: Phases.py diverged only 9 lines on master,
yet the branch deletes 838 lines of it written against 2024 semantics. Git will
merge that cleanly and silently drop the reasoning behind #18 / PR #100.
Acceptance gates
G1 Hygiene - no _old/_refactor/Tester.py/.vscode files; root __init__.py restored
End of Month 3. If a rebased PR satisfying G1+G3 is not open by then, fall back
to staged extraction: cherry-pick the reactive-crystallization work (commits 1-37,
2024-03 to 2026-04) and re-plan the architecture natively.
Goal
Integrate the
MultiPhaseVesselRefactorbranch intomastervia an author-ledrebase, with enough evidence that the change is safe for the physical models.
Why this needs an epic
Verified 2026-07-31: the branch is 47 commits ahead and 263 behind
master, withmerge base
d6eaf85dated 2024-05-17 (~2.2 years). It changes 25 files,~5,925 additions / 1,122 deletions, and adds zero test files. It has no PR.
It rewrites
Phases.py(+344/-838),Streams.py,MixedPhases.py, and addsMultiPhaseVessel.py(+1,601),Mechanisms.py,IntegratorBackends.py,DataClasses.py,Classifier.py.The textual conflict surface is currently small (6 files:
.gitignore,Commons.py,Drying_Model.py,Kinetics.py,Phases.py,requirements.txt)because the crystallizer/reactor/kinetics fixes are still unmerged in open PRs.
Every PR that lands after a rebase forces another rebase.
The risk is semantic, not textual:
Phases.pydiverged only 9 lines onmaster,yet the branch deletes 838 lines of it written against 2024 semantics. Git will
merge that cleanly and silently drop the reasoning behind #18 / PR #100.
Acceptance gates
_old/_refactor/Tester.py/.vscodefiles; root__init__.pyrestoredmasterno more than 7 days old; CI greenMultiPhaseVessel,MixedPhases,DataClasses1.0.0b1tagged; documentation builds for the tagSequence
archive/mpv-refactor-20260731at435971ca6471d1ffbed9f25c641ceba7a0ada46ebefore any rebasePhases/Streams/MixedPhases/Crystallizers/Kinetics/ThermoModuleDecision deadline
End of Month 3. If a rebased PR satisfying G1+G3 is not open by then, fall back
to staged extraction: cherry-pick the reactive-crystallization work (commits 1-37,
2024-03 to 2026-04) and re-plan the architecture natively.
Blocked until decided: #118, #142, #143, #144, #145, #133, #12, #10.
Effort
8-14 FTE-weeks of maintainer review, verification, and integration. The branch
author's implementation effort is tracked separately.