From 53c25f2d10c50a3ab21dffbf5d82d68d4b3652a4 Mon Sep 17 00:00:00 2001 From: znetsixe Date: Mon, 11 May 2026 21:04:58 +0200 Subject: [PATCH] =?UTF-8?q?docs(wiki):=20rewrite=20Home.md=20to=2014-secti?= =?UTF-8?q?on=20template=20=E2=80=94=20bump=20banner=20+=20fix=20gaps?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Banner hash updated to 8540328 (was stale 2a6a0bc). - Section 9: flag constraints.flowmeter not wired in buildDomainConfig (effectively always true at runtime); add nominalFlowMin / flowMax / maxRainRef rows that were missing from the config table. - Section 12: add two new debug recipes — measurement child ignored (assetType must be "flow", not "flow-electromagnetic") and flowmeter=false has no runtime effect. - Section 14 #3: expand flowmeter limitation to call out buildDomainConfig gap. - Section 14 #5: add S88 colour cleanup note (#4f8582 teal → #50a8d9 Unit). - AUTOGEN markers untouched; npm run wiki:all re-ran cleanly before commit. Co-Authored-By: Claude Sonnet 4.6 --- wiki/Home.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/wiki/Home.md b/wiki/Home.md index 0844d2a..cb83f8e 100644 --- a/wiki/Home.md +++ b/wiki/Home.md @@ -1,6 +1,6 @@ # monster -> **Reflects code as of `2a6a0bc` · regenerated `2026-05-11` via `npm run wiki:all`** +> **Reflects code as of `8540328` · regenerated `2026-05-11` via `npm run wiki:all`** > If this banner is stale, the page may be out of date. Treat as informative, not authoritative. ## 1. What this node is @@ -262,8 +262,11 @@ flowchart TB | Max weight (kg) | `constraints.maxWeight` | `23` | ≤ 23 | bucket overload | | Empty bucket weight (kg) | `asset.emptyWeightBucket` | `3` | ≥ 0 | `bucketWeight` | | Sub-sample volume (mL) | `constraints.subSampleVolume` | `50` | fixed | per-pulse volume | -| Flowmeter present | `constraints.flowmeter` | `true` | bool | proportional vs time mode | +| Flowmeter present | `constraints.flowmeter` | `true` | bool | ⚠️ In schema but NOT wired in `buildDomainConfig` — effectively always `true` at runtime. | | Min sample interval (s) | `constraints.minSampleIntervalSec` | `60` | ≥ 0 | cooldown guard | +| Nominal flow min (m³/h) | `constraints.nominalFlowMin` | `0` | ≥ 0 | lower bound for rain-driven flow prediction band | +| Flow max (m³/h) | `constraints.flowMax` | `0` | ≥ 0 | upper bound for rain-driven flow prediction band | +| Max rain reference | `constraints.maxRainRef` | `10` | > 0 | rain-index that maps to `flowMax` | | Intake speed (m/s) | `constraints.intakeSpeed` | `0.3` | ≥ 0 | informational | | Intake diameter (mm) | `constraints.intakeDiameter` | `12` | ≥ 0 | informational | @@ -290,9 +293,11 @@ One screenshot per tier where helpful. PNG ≤ 200 KB under `wiki/_partial-scree | `pulse` never fires | Is `running` true? Check `validateFlowBounds` log — invalid bounds short-circuits the run. | `parameters/parameters.js` | | Pulses arrive too fast / skipped | Cooldown guard active. Inspect `missedSamples` + `minSampleIntervalSec`. | `sampling/samplingProgram.js → _maybeEmitPulse` | | `q` always zero | Measured-flow child not registered, manual flow not pushed. Watch Port 2 + `data.flow` history. | `flow/flowTracker.js` | +| Measurement child ignored at register | Child's `config.asset.type` is set to something other than `"flow"` (e.g. `"flow-electromagnetic"`). Monster only accepts `asset.type = "flow"` or unset. Set `asset.type: "flow"` on the measurement node. | `specificClass.js → _wireMeasurementChild` | | `nextDate` not arming | `set.schedule` payload didn't include matching `aquonSampleName` row. | `schedule/schedule.js → regNextDate` | | `sumRain` zero with rain input | `rainAggregator.update` ran while `running=true` (skipped). | `specificClass.js → updateRainData` | | Bucket overfilled before `stop_time` | `m3PerPuls` rounded down; check `predFlow` vs effective `q`. | `sampling/samplingProgram.js → _beginRun` | +| `flowmeter=false` has no effect | `constraints.flowmeter` is in the schema but not wired in `buildDomainConfig`. The sampling program always runs in proportional mode. | `src/nodeClass.js → buildDomainConfig` | > Never ship `enableLog: 'debug'` in a demo — fills the container log within seconds and obscures real errors. Use only for live debugging. @@ -308,5 +313,6 @@ One screenshot per tier where helpful. PNG ≤ 200 KB under `wiki/_partial-scree |---|---|---| | 1 | Edge test `sampling-guards.edge.test.js` cooldown-guard case is a pre-existing failure — the cooldown skip increments `missedSamples` but the assertion expects a different timing. | `test/edge/sampling-guards.edge.test.js` | | 2 | `set.mode` and `set.model-prediction` are reserved — handlers delegate to optional methods that don't exist yet. | `commands/handlers.js` | -| 3 | Time-only mode (`flowmeter=false`) is not exercised — the sampling program assumes a flow source. | `sampling/samplingProgram.js` | +| 3 | Time-only mode (`flowmeter=false`) is not exercised — the sampling program assumes a flow source. `constraints.flowmeter` is also not forwarded in `buildDomainConfig`. | `sampling/samplingProgram.js`, `src/nodeClass.js` | | 4 | Sub-sample volume hard-coded at 50 mL (schema enforces `min=max=50`). | `generalFunctions/src/configs/monster.json` | +| 5 | S88 colour cleanup pending: node editor colour is `#4f8582` (teal) in `monster.html`. Correct Unit-level colour is `#50a8d9`. Section 2 diagram already uses the correct colour. The editor node tile must be updated separately. | `monster.html` → `color:` field |