docs: add open issues from codebase scan
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>
This commit is contained in:
80
docs/ISSUES.md
Normal file
80
docs/ISSUES.md
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
# 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)
|
||||||
Reference in New Issue
Block a user