The v5.6 Save button on the Config page sends two new data bundles to the backend (DualData, IndicatorData), and the backend persists them to Duals.json and Indicators.json. This sub-issue covers both halves — frontend signature change plus the matching backend route.
What's in scope:
- backend
CaseRoute.py: accept DualData and IndicatorData in the /saveParamFile request, validate, write to Duals.json and Indicators.json
- frontend
Osemosys.Class.js: change saveParamFile(ParamData, VarData) to saveParamFile(ParamData, VarData, DualData, IndicatorData)
- frontend
Config.js:121: update the existing callsite to pass the new arguments
What's not in scope:
- frontend
Config.html or Config.Model.js changes (handled in the cosmetic sub-issue)
Done when:
- branch base:
feature/v56-ui-sync
- a user can save model parameters from the Config page without errors
Duals.json and Indicators.json round-trip through Save (data sent → file written → read back on next load)
Notes:
Related: #457, docs/UPSTREAM_SYNC.md
The v5.6 Save button on the Config page sends two new data bundles to the backend (
DualData,IndicatorData), and the backend persists them toDuals.jsonandIndicators.json. This sub-issue covers both halves — frontend signature change plus the matching backend route.What's in scope:
CaseRoute.py: acceptDualDataandIndicatorDatain the/saveParamFilerequest, validate, write toDuals.jsonandIndicators.jsonOsemosys.Class.js: changesaveParamFile(ParamData, VarData)tosaveParamFile(ParamData, VarData, DualData, IndicatorData)Config.js:121: update the existing callsite to pass the new argumentsWhat's not in scope:
Config.htmlorConfig.Model.jschanges (handled in the cosmetic sub-issue)Done when:
feature/v56-ui-syncDuals.jsonandIndicators.jsonround-trip through Save (data sent → file written → read back on next load)Notes:
feature/v56-ui-sync(notmain)Related: #457,
docs/UPSTREAM_SYNC.md