Skip to content

[Task] Pull the safe backend/runtime changes from MUIO v5.5 #390

@SeaCelo

Description

@SeaCelo

This is the heavy part of the v5.5 pull.

I already tested this in a clean integration worktree off origin/main, and the backend/runtime overlap is still concentrated in a small set of core files: Config.py, FileClass.py, DataFileClass.py, OsemosysClass.py, DataFileRoute.py, and app.py. That is where the real review work is.

The goal here is not to "become upstream" blindly. The goal is to take the useful v5.5 runtime changes while preserving the MUIOGO compatibility layer where it actually matters.

What should land here:

  • the updated solver model file
  • the self.resData / self.resDataPath bookkeeping cleanup
  • cleanup that preserves viewDefinitions.json instead of wiping saved views
  • fixed-path readModelFile / readLogFile backend routes
  • logging improvements, adapted to a MUIOGO-safe log location

What stays MUIOGO-owned:

  • absolute paths
  • current secret handling
  • env -> PATH -> bundled solver resolution
  • safe subprocess execution
  • path validation and upload safety

What we should explicitly reject as-is:

  • WebAPP/app.log
  • deleting the log on startup
  • cwd-relative paths
  • shell=True
  • compact JSON as the default write format
  • from unittest import case
  • FileClassCompressed.py

This issue is not about removing GLPK. The verified runtime truth is narrower than that:

  • CBC end-to-end still needs to work on the demo path
  • GLPK remains supported in its current helper role inside the CBC flow

Done when:

  • the CBC demo path still works end-to-end
  • cleanup preserves saved views
  • upload still works and does not weaken path safety
  • the new backend routes work without exposing logs from the web root
  • the existing GLPK helper role in the CBC flow is not regressed

Related work:

Metadata

Metadata

Assignees

Labels

Priority: HighTrack: StabilityRun safety, async execution, shared state integrity, and runtime robustnessenhancementNew feature or request

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions