Tracked issues for diffuser restoration, ML module relocation, monster architecture modernization, test code cleanup, and dashboardAPI improvements. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
3.2 KiB
Open Issues — EVOLV Codebase
Issues identified during codebase scan (2026-03-12). Create these on Gitea when ready.
Issue 1: Restore diffuser node implementation
Labels: enhancement, node
Priority: Medium
The nodes/diffuser/ directory contains only .git, LICENSE, and README.md — no implementation. There was a previous experimental version. Needs:
- Retrieve original diffuser logic from user/backup
- Rebuild to current three-layer architecture (wrapper
.js+src/nodeClass.js+src/specificClass.js) - Use
require('generalFunctions')barrel imports - Add config JSON in
generalFunctions/src/configs/diffuser.json - Register under category
'EVOLV'with appropriate S88 color - Add tests
Blocked on: User providing original diffuser logic/requirements.
Issue 2: Relocate prediction/ML modules to external service
Labels: enhancement, architecture
Priority: Medium
TensorFlow-based influent prediction code was removed from monster node (was broken/incomplete). The prediction functionality needs a new home:
- LSTM model for 24-hour flow prediction based on precipitation data
- Standardization constants: hours
(mean=11.504, std=6.922), precipitation(mean=0.090, std=0.439), response(mean=1188.01, std=1024.19) - Model was served from
http://127.0.0.1:1880/generalFunctions/datasets/lstmData/tfjs_model/ - Consider: separate microservice, Python-based inference, or ONNX runtime
- Monster node should accept predictions via
model_predictionmessage topic from external service
Related files removed: monster_class.js methods get_model_prediction(), model_loader()
Issue 3: Modernize monster node to three-layer architecture
Labels: refactor, node
Priority: Low
Monster node uses old-style structure (dependencies/monster/ instead of src/). Should be refactored:
- Move
dependencies/monster/monster_class.js→src/specificClass.js - Create
src/nodeClass.jsadapter (extract frommonster.js) - Slim down
monster.jsto standard wrapper pattern - Move
monsterConfig.json→generalFunctions/src/configs/monster.json - Remove
modelLoader.js(TF dependency removed) - Add unit tests
Note: monster_class.js is ~500 lines of domain logic. Keep sampling_program(), aggregation, AQUON integration intact.
Issue 4: Clean up inline test/demo code in specificClass files
Labels: cleanup
Priority: Low
Several specificClass files have test/demo code after module.exports:
pumpingStation/src/specificClass.js(lines 478-697): Demo code guarded withrequire.main === module— acceptable but could move totest/orexamples/machineGroupControl/src/specificClass.js(lines 969-1158): Block-commented test code withmakeMachines()— dead code, could be removed or moved to test file
Issue 5: DashboardAPI node improvements
Labels: enhancement, security
Priority: Low
- Bearer token now relies on
GRAFANA_TOKENenv var (hardcoded token was removed for security) - Ensure deployment docs mention setting
GRAFANA_TOKEN dashboardapi_class.jsstill hasconsole.logcalls (lines 154, 178) — should use logger- Node doesn't follow three-layer architecture (older style)