From 5e2c01ece38942ad3dff39d3a7665899de00edc4 Mon Sep 17 00:00:00 2001 From: znetsixe Date: Tue, 19 May 2026 16:37:05 +0200 Subject: [PATCH] =?UTF-8?q?docs=20+=20submodules:=20final=20backlog=20clea?= =?UTF-8?q?rance=20=E2=80=94=20valve/reactor/dashboardAPI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Superproject: - CLAUDE.md: legacy-drift table loses the dashboardAPI row (migrated); drift section notes the type-id-preservation strategy for the remaining mgc / vgc renames. - CONTRACTS.md: canonical-unit rule explicitly carves out reactor as an approved ASM-textbook exception with the conversion boundary. Submodules: - nodes/valve @ 167b102: CONTRACT documents valve's lack of an FSM maintenance state (schema mode enum accepts `maintenance` but no enter/exit sequences exist). Limits made explicit instead of being hidden as a wiki TODO. - nodes/reactor @ 75d0413: CONTRACT now declares the approved ASM-unit divergence (mg/L, m³/d, °C, 1/h) with the conversion boundary spelled out. Closes the canonical-unit drift surfaced by the wiki audit. - nodes/dashboardAPI @ ......: file rename (preserves type id). Co-Authored-By: Claude Opus 4.7 (1M context) --- CLAUDE.md | 5 +++-- CONTRACTS.md | 5 +++++ nodes/dashboardAPI | 2 +- nodes/reactor | 2 +- nodes/valve | 2 +- 5 files changed, 11 insertions(+), 5 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 168bcd2..e6f196d 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -29,13 +29,14 @@ abbreviations. Quick reference: Full rule + serving recipe for `src/editor/`: `.claude/rules/node-architecture.md`. **Legacy drift to rename when the file is next touched** (do not introduce new -mismatches in the meantime): +mismatches in the meantime). When renaming, **keep the Node-RED type id +lowercase** (`registerType('mgc', …)` etc.) so deployed flows continue to load — +only the file paths change. `dashboardAPI` was migrated this way on 2026-05-19. | Node | Currently | Should be | |---|---|---| | `machineGroupControl` | `mgc.{js,html}` | `machineGroupControl.{js,html}` | | `valveGroupControl` | `vgc.{js,html}` | `valveGroupControl.{js,html}` | -| `dashboardAPI` | `dashboardapi.{js,html}` | `dashboardAPI.{js,html}` | ## Key Shared Library: `nodes/generalFunctions/` - `logger` - structured logging (use this, NOT console.log) diff --git a/CONTRACTS.md b/CONTRACTS.md index fe92552..90d5d87 100644 --- a/CONTRACTS.md +++ b/CONTRACTS.md @@ -126,6 +126,11 @@ idempotent setters, `cmd.` for triggers, `evt.` for events. Tests live in `test/{basic,integration,edge}/`. Submodule commits go in the submodule first, then the superproject bumps the pin. +**Canonical units** (Pa / m³/s / W / K) apply to every node **except +`reactor`**, which deliberately uses ASM-kinetics literature units +(mg/L, m³/d, °C, 1/h) — documented in `nodes/reactor/CONTRACT.md`. +Conversions happen at the parent/child boundary via `UnitPolicy`. + --- ## 7. Verification checklist before merge diff --git a/nodes/dashboardAPI b/nodes/dashboardAPI index 0b857ef..e04c4a1 160000 --- a/nodes/dashboardAPI +++ b/nodes/dashboardAPI @@ -1 +1 @@ -Subproject commit 0b857ef444f68f3ad3861014e6042a9637eb85c3 +Subproject commit e04c4a113288192bf4388a8b6da1df7344ae1318 diff --git a/nodes/reactor b/nodes/reactor index 346a3ce..75d0413 160000 --- a/nodes/reactor +++ b/nodes/reactor @@ -1 +1 @@ -Subproject commit 346a3ce2ab5e68e16d88dbe7df89edf90ad28eb4 +Subproject commit 75d04139947a5dd628cc37536091997c73545d25 diff --git a/nodes/valve b/nodes/valve index 7acd6c2..167b102 160000 --- a/nodes/valve +++ b/nodes/valve @@ -1 +1 @@ -Subproject commit 7acd6c2ce0ea318f60bcc2d778c359b49a5bb238 +Subproject commit 167b1026f175f2f5f655ffcfe6ff503fe49a65db