Establish CONTRACTS.md at the EVOLV root as the canonical map of where every contract, rule, and standard lives. Surface it from CLAUDE.md so every fresh agent or colleague lands there first. Reshape .claude/refactor/ to reflect that the platform refactor is done: live standards stay at the top level; the plan artifacts (CONTINUE_HERE.md, TASKS.md) move into Archive/ with WARNING banners. Drop content that drifted out of date or duplicated the new standards stack: - docs/DEVELOPER_GUIDE.md (pre-refactor walkthrough; superseded by wiki/Architecture, wiki/Getting-Started, .claude/rules/node-architecture, .claude/refactor/MODULE_SPLIT + per-node CONTRACT.md + src/commands/). - .agents/decisions/ (15 DECISION files): load-bearing decisions belong in commit messages and PR descriptions; live open items in OPEN_QUESTIONS.md. - .agents/improvements/TOP10_*.md: moved to Archive/. Bump generalFunctions to 49c77f2 — adds CONTRACT.md inside the library: different shape from per-node CONTRACT.md files (library API, not msg.topic), with stability tags and pointers to .claude/refactor/CONTRACTS.md §N. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2.8 KiB
2.8 KiB
Top 10 Production Priorities (Round 2, Availability-First)
Context:
- Generated after implementing the first top-10 and follow-up items
IMP-20260219-011/012/013. - Focus remains: keep runtime up, prefer degraded/null outputs over hard failures.
Priority List
- Fix measurement outlier toggle corruption.
- Why: toggling replaces the outlier config object with a boolean, breaking later config reads.
- Evidence:
nodes/measurement/src/specificClass.js:509.
- Fix rotating machine pressure-difference unit request API mismatch.
- Why:
difference('Pa')no longer matches container API; requested unit is ignored, risking incorrect efficiency basis. - Evidence:
nodes/rotatingMachine/src/specificClass.js:856,nodes/generalFunctions/src/measurements/MeasurementContainer.js:436.
- Guard reactor PFR state indexing at boundary conditions.
- Why: known edge behavior can overrun index mapping near exact reactor length and destabilize updates.
- Evidence:
nodes/reactor/src/specificClass.js:326.
- Make dashboard template resolution fail-soft.
- Why: missing template currently throws and aborts dashboard generation path.
- Evidence:
nodes/dashboardAPI/src/specificClass.js:91.
- Make dashboard input path skip invalid children instead of throwing.
- Why: missing child source/config currently throws; should warn and continue in availability-first mode.
- Evidence:
nodes/dashboardAPI/src/nodeClass.js:55.
- Harden shared config merge semantics for arrays/types.
- Why: recursive merge mutates destination and treats arrays as objects, risking config drift.
- Evidence:
nodes/generalFunctions/src/helper/configUtils.js:77.
- Fix machineGroupControl child position source path.
- Why: reads
positionVsParentfromgeneralinstead offunctionality, causing inconsistent routing metadata. - Evidence:
nodes/machineGroupControl/src/specificClass.js:53.
- Accept numeric-string measurement payloads safely.
- Why: measurement node currently ignores numeric strings common in PLC/edge integrations.
- Evidence:
nodes/measurement/src/nodeClass.js:167.
- Fix reactor editor save wiring mismatch.
- Why: editor save hook references the wrong node helpers, risking mis-saved position settings.
- Evidence:
nodes/reactor/reactor.html:133.
- Replace raw
structuredCloneusage with compatibility-safe clone strategy.
- Why: runtime portability risk across constrained Node-RED deployments.
- Evidence:
nodes/settler/src/specificClass.js:34,nodes/settler/src/specificClass.js:45.
Implementation Status
- Implemented on 2026-02-19 in current session.
- Verification: tests passed for
generalFunctions,measurement,reactor,rotatingMachine,dashboardAPI,machineGroupControl,settler,pumpingStation,valve,valveGroupControl,monster. - Follow-up architectural items are tracked in
.agents/improvements/IMPROVEMENTS_BACKLOG.md.