Files
zfxaction26_2/TASKS.md
2026-05-10 18:49:24 +02:00

6.6 KiB

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.
  • Temporarily introduced and then removed a public SimulationEngine facade after review showed it was pure delegation.
  • Updated design documentation for generic junctions and parameterized surface interactions.
  • Removed the temporary SimulationCoreSystem catch-all and made SimulationEngine the real orchestration point.
  • Split simulation behavior into purposeful systems for player actions, network propagation, consumers, leaks, surface interactions, robot safety, reactors, rule events, and forecasts.
  • Kept Systems limited to behavior-owning systems; shared traversal, band, and carrier math helpers live at the simulation root.

Current Work

  • Await review and next task selection on design-rewrite.

Future Work

  1. Continue reducing helper surface where classes no longer carry enough responsibility after future changes.
  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.