# Reactor Maintenance Rewrite Tasks ## Current State - Branch: `design-rewrite` - Scope approved: implement `docs/design.md` end-to-end with deterministic defaults and no backward compatibility. - Simulation core has been replaced with the first design-native model and deterministic engine slice. - Simulation and test projects now target `net10.0` because this Linux environment only has the .NET 10 runtime. - Win2D editor has been rewritten against the new design model. - Win2D project now targets `net10.0-windows10.0.19041.0` to match the simulation project. - Linux can restore and compile the referenced simulation project, but full WinUI/XAML compilation still requires a Windows-capable XAML compiler environment. ## Completed Work - Read project instructions, Linux instructions, code style, and `docs/design.md`. - Confirmed deterministic balance defaults should be chosen during implementation. - Confirmed a full Win2D editor is required. - Created branch `design-rewrite`. - Added `TASKS.md` as the required per-commit work tracker. - Removed the legacy integer hazard/effect/hazard plug-in simulation surface. - Added design-native terrain, underground carrier layers, surface hazards, props, leaks, doors, reactor bindings, robot inventory, rule events, validation, serialization, and forecasts. - Added deterministic default balancing values. - Added a first deterministic simulation pipeline for network propagation, consumers, leaks, surface interactions, robot safety, reactor readiness, rule events, and forecasts. - Replaced old tests with design-based simulation tests. - Verified `dotnet test tests/ReactorMaintenance.Simulation.Tests/ReactorMaintenance.Simulation.Tests.csproj` passes: 11 passed. - Attempted `dotnet jb cleanupcode --build=False ...`; unavailable in this environment because `dotnet-jb` is not installed. - Reviewed the first slice and fixed an action-resolution maintainability issue before commit. - Verified `git diff --check` reports no whitespace errors. - Ran `dotnet jb cleanupcode --build=False ...` successfully after ReSharper install and normalized line endings back to LF. - Reworked the Win2D editor for the new model: full tool list, layer-aware painting, terrain, underground carriers, surface hazards, props, doors, leaks, robot, forecasts, save validation, starter level, and simple play actions. - Removed old editor dependencies on legacy props, pressure pipes, smoke, fire, and global power/cooling/core-stability fields. - Verified `dotnet test tests/ReactorMaintenance.Simulation.Tests/ReactorMaintenance.Simulation.Tests.csproj` passes after the editor rewrite: 11 passed. - Attempted Win2D build on Linux with `dotnet build src/ReactorMaintenance.Win2D/ReactorMaintenance.Win2D.csproj -p:EnableWindowsTargeting=true -p:Platform=x64`; it fails at Windows `XamlCompiler.exe` with exec format error. - Attempted managed XAML compiler path with `-p:UseXamlCompilerExecutable=false`; it fails loading the WinUI XAML compiler task dependency under this Linux/.NET 10 setup. - Updated `README.md` for the new design-model editor, .NET 10 target, and Linux/Windows build expectations. - Committed the Win2D editor rewrite slice. - Added branch-aware junction flow analysis shared by validation and simulation propagation. - Junction validation now rejects malformed branch counts and ambiguous source-side branches. - Junction propagation now applies deterministic T-junction and cross-junction ratio weights only to inferred outgoing branches. - Added tests for T-junction ratio splits, zero-weight branches, ambiguous junction validation, and best-path flow into non-junction cells. - Verified `dotnet test tests/ReactorMaintenance.Simulation.Tests/ReactorMaintenance.Simulation.Tests.csproj` passes: 15 passed. - Ran `jb cleanupcode --build=False ...` and `python D:\Code\crlf.py ...` for touched C# files after the junction slice. - Expanded rule predicates with reactor readiness/loss/win, network value bands, and robot inventory checks. - Expanded rule effects with removal of surface hazards, heat, and inventory, plus authored access positions for leak-start effects. - Hardened rule event validation for predicate targets, effect targets, leak access, and non-negative amount effects. - Added tests for network-band rules, reactor-ready rules, inventory rules, removal effects, electricity leak access, and invalid rule targets. - Verified `dotnet test tests/ReactorMaintenance.Simulation.Tests/ReactorMaintenance.Simulation.Tests.csproj` passes after the rule slice: 21 passed. - Ran `jb cleanupcode --build=False ...` and `python D:\Code\crlf.py ...` for touched C# files after the rule slice. - Split serializable simulation records and enums from the monolithic `Models.cs` file into individual files under `Models`. - Moved level creation, grid mutation helpers, surface clamping, grid geometry, and inventory operations out of serializable model records. - Replaced separate T-junction and cross-junction props/tools with one topology-inferred `Junction` prop and one editor tool. - Moved junction ratio presets into balancing data. - Replaced hardcoded `EPairEffect` variants with parameterized surface interaction verbs and balance-owned magnitudes. - Introduced a small public `SimulationEngine` facade over an internal simulation system implementation. - Updated design documentation for generic junctions and parameterized surface interactions. ## Current Work - Await review and next task selection on `design-rewrite`. ## Future Work 1. Continue splitting the internal simulation system into smaller action, network, consumer, leak, surface interaction, robot safety, reactor, rule, and forecast systems. 2. Add advanced editor workflows for explicit reactor binding selection, explicit door edge selection, electricity wall leak face selection, and rule event authoring. 3. Verify and polish the Win2D app on Windows where the XAML compiler can run. 4. Update README and any affected docs to reflect the new schema, .NET target, editor controls, and deterministic defaults. 5. Build the Win2D project on a Windows-capable environment after the editor rewrite. 6. Add broader tests for junction ratios, ambiguous junctions, serialization edge cases, and editor operations. 7. Run cleanup when `dotnet-jb` is available, tests, code review, and iterate until the implementation is clean and maintainable.