# 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_prediction` message 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.js` adapter (extract from `monster.js`) - Slim down `monster.js` to 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 with `require.main === module` — acceptable but could move to `test/` or `examples/` - `machineGroupControl/src/specificClass.js` (lines 969-1158): Block-commented test code with `makeMachines()` — 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_TOKEN` env var (hardcoded token was removed for security) - Ensure deployment docs mention setting `GRAFANA_TOKEN` - `dashboardapi_class.js` still has `console.log` calls (lines 154, 178) — should use logger - Node doesn't follow three-layer architecture (older style)