Commit Graph

186 Commits

Author SHA1 Message Date
znetsixe
9924e66249 bump diffuser + generalFunctions: canonical Nm³/(h·m² membrane) axis
Follow-up to the AssetResolver landing. All five diffuser supplier
curves now share one X-axis convention; diffuser specificClass
computes specific flux from total flow + membrane area and queries the
curves at that flux. Each curve file carries its own
_meta.membraneArea_m2_per_element so the node defaults are correct
without any per-node overrides.

Supplier naming fixed: Sulzer (PIK300/PRK300), Aquaconsult-Entec
(Aerostrip Phoenix).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 18:17:08 +02:00
znetsixe
edc91dd988 bump submodules: AssetResolver landing + diffuser supplier curves
Coordinated cutover across five submodules to the generalFunctions
asset registry. Highlights:

- generalFunctions: AssetResolver namespace + FileBackend, with new
  diffuser supplier curves (GVA migrated, Jäger JetFlex EPDM-1000,
  Aerostrip Phoenix multi-coverage, PIK300/PRK300 multi-coverage).
  Diffuser config schema corrected: density was always meant to be
  bottom-coverage %, not elements/m².
- diffuser: _loadSpecs reads from the registry; editor wired with the
  shared asset cascade (supplier → type → model → unit).
- rotatingMachine + valve: derive supplier/type/units from the model
  id via resolveAssetMetadata; reject saved legacy fields with a clear
  re-save prompt.
- machineGroupControl: integration fixtures use the trimmed asset
  shape.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 17:13:37 +02:00
znetsixe
3b192bec63 bump machineGroupControl: editor defaults + mode-case fix + new example flows (4cb9c50)
Surfaces mode/scaling in the editor, fixes the camelCase-vs-lowercase
mismatch that silently disabled dispatch on default config, compacts the
status badge, extends getOutput with capacity / machine-count fields, and
replaces the pre-refactor example stubs with 01-Basic.json (MGC + 3
pumps + setup) and 02-Dashboard.json (FlowFuse dashboard with charts).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 15:24:16 +02:00
znetsixe
5eafd83443 bump generalFunctions: deep-merge in buildConfig (84a4430)
Fixes MGC child-registration id collision and rotatingMachine
curve-lookup failure caused by the shallow Object.assign in
ConfigManager.buildConfig wiping general.id and asset.model.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 15:06:50 +02:00
znetsixe
29c0cdc37c bump pumpingStation submodule to 6e89e49
Includes 285fd01 (drop 52 MB 01-basic-demo.gif) and 6e89e49 (restore GIF
"needed" placeholders in Home and Reference-Examples so the dropped media
is tracked instead of leaving a broken image link).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 15:02:08 +02:00
znetsixe
123ef6fca3 wiki + submodules: Functional Overview page + bump pumpingStation / generalFunctions / monster
Submodule pointers
- pumpingStation: realistic basin defaults, ramp-foot visual fix, manual-mode
  observability, new 02-Dashboard.json (charts + raw-output table), wiki
  Home/Reference-Examples with screenshots + demo GIF.
- generalFunctions: pumpingStation config schema defaults aligned with the
  new editor drag-in values; startLevel description corrected (ramp foot is
  inflowLevel, not startLevel).
- monster: examples cleanup — drop pre-refactor flows, ship single
  02-integrated-e2e.json.

Wiki
- New wiki/Functional-Overview.md: companion to Architecture covering the
  process side — what each node physically represents and which control
  objective it serves.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 14:52:36 +02:00
znetsixe
f7ada0fd9d P11.8: bump pumpingStation submodule — Zone A / Reference-* wiki split
Pilot pass for the per-node Home redesign. pumpingStation's wiki/
now has a short, intuitive Home.md plus four Reference-* sibling
pages (Contracts / Architecture / Examples / Limitations). Asset
placeholders created under wiki/_partial-{screenshots,gifs,flows}/
with explicit "screenshot needed" / "GIF needed" callouts where
the user will record assets.

Abandoned content: wiki/functional-description.md and wiki/modes/*
were removed from source per user direction (example-driven over
prose).

Once this pattern is validated on the live pumpingStation wiki,
the same split will be applied to the other 10 nodes.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 09:20:44 +02:00
znetsixe
9ab9f6b3e3 P11.7: bump submodule pointers for 2026-05-11 wiki wave
13-agent parallel rewrite of per-node wiki/Home.md per the visual-first
14-section template (.claude/refactor/WIKI_TEMPLATE.md). Three pointer
bumps (diffuser, valve, dashboardAPI) were committed early by their
agents (ff804af, e2aa6e6, 14f9104); this commit covers the remaining
nine submodules:

- generalFunctions  → c7e561e  (new wiki/Home.md; library API surface)
- machineGroupControl → 05de4ee
- measurement       → ffc0358
- monster           → 53c25f2
- pumpingStation    → b825ac1
- reactor           → d735f94
- rotatingMachine   → b373727
- settler           → 98052a1
- valveGroupControl → 618ad27

Parent wiki audit (b8cb889) is already committed: 18 stale pages moved
to wiki/Archive/, evergreen domain/manual content kept, Home.md
refactor-status corrections (Tier 6 + Tier 9).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 21:08:51 +02:00
znetsixe
14f9104722 P11.7: bump dashboardAPI submodule pointer (wiki Home.md rewrite)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-11 21:06:56 +02:00
znetsixe
e2aa6e6937 docs: bump valve submodule pointer — wiki Home.md FSM + config rewrite
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-11 21:06:37 +02:00
znetsixe
ff804af11c bump nodes/diffuser submodule pointer: P11.6 wiki regen
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-11 21:05:10 +02:00
znetsixe
44ffae12f7 P11.6 wiki regen + Phase 10 private-test rewrites — bump pointers
All 11 nodes' wiki/Home.md regenerated with the Unit column +
per-topic descriptions. rotatingMachine + reactor private-method
test files rewritten to the public BaseNodeAdapter surface.

OPEN_QUESTIONS: rotatingMachine + reactor private-test entries
marked RESOLVED.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 19:44:19 +02:00
znetsixe
4f970eaa0d Wave B3 + C: bump submodule pointers for P11.5 + B2.1 + B2.2
pumpingStation   ef81013 → 5f1c9ae  P11.5 units + B2.1 declareChildGetter
  machineGroupControl 31324ae → 3ee1939  P11.5 units (set.demand)
  rotatingMachine  84126e9 → 1d5e040  P11.5 units (set.flow-setpoint)
  valve            8aa5b5e → 63b5f94  P11.5 units + descriptions
  monster          0038a8c → 133d442  P11.5 descriptions
  diffuser         9122b14 → e18b6a0  P11.5 units (data.flow)
  reactor          297c671 → 1aa2d92  P11.5 descriptions
  settler          2af30c0 → 43a5bf5  P11.5 descriptions
  valveGroupControl c44d595 → 778b2e0  P11.5 + B2.2 ChildRouter adoption
  measurement      497f05d → 15b7414  P11.5 descriptions

Platform: 810 / 0 across all 12 submodules. Phase 11 ready for the
last step (P11.6 regenerate docs).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 19:31:52 +02:00
znetsixe
6bf94f4c8a Wave B1: bump submodule pointers + 5 OPEN_QUESTIONS resolved
generalFunctions f117546 → <new>  B2.3 fireAndWait + P11.1 possibilities
                                    + P11.2 commandRegistry.units + monster schema
  measurement      e6e212a → <new>  B1.3 isStable threshold
  monster          2aa7f88 → <new>  B1.4 cooldown-guard root-cause fix
  machineGroupControl 0e8cab5 → <new>  B2.3 fireAndWait migration

OPEN_QUESTIONS marked RESOLVED in the decisions table:
  isStable tautology, monster cooldown-guard, LatestWinsGate fireAndWait

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 17:29:23 +02:00
znetsixe
30928ce378 Wave A: bump submodule pointers + mark 4 OPEN_QUESTIONS resolved
generalFunctions ff9aec8 → f117546  B3.1+B3.2+B3.3 infra
  measurement      2aa8021 → e6e212a  B2.4 drop 'mAbs' event
  machineGroupControl 045a941 → 0e8cab5  B3.3 drop _unitView
  rotatingMachine  9e8463b → 84126e9  B3.3 drop _unitView
  pumpingStation   e991ea6 → ef81013  B1.2 drop 'overfillLevel'

OPEN_QUESTIONS.md: 4 entries marked RESOLVED (ChildRouter monkey-patch,
commandRegistry 'none' type, measurement 'mAbs' event, MGC unitPolicy
shape).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 17:14:00 +02:00
znetsixe
351e889918 Bump submodule pointers: A1/A2/A3 fixes + basin-docs-update merge
monster          2a82b7d → 2aa7f88  A1: restore child.register input handler
  settler          6953d64 → 2af30c0  A2: restore child.register input handler
  reactor          d931bea → 297c671  A3: expose tick(dt) on BaseDomain wrapper
  pumpingStation   ed22f01 → e991ea6  A4+B4: merge basin-docs-update (per-mode SVG,
                                       stopLevel hysteresis, shifted ramp, manual
                                       q_out, log/linear curve, overflow clamp + spill,
                                       7-file editor module set)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 16:20:17 +02:00
znetsixe
23dc23328d Bump generalFunctions for P10.5 test fixes 2026-05-11 15:21:16 +02:00
znetsixe
3bfb9833c0 P9.3: parent EVOLV wiki Home + Archive + bump submodule pointers
wiki/Home.md (new) — platform landing page per WIKI_HOME_TEMPLATE.md.
Mermaid block of 11 active EVOLV nodes coloured by S88 level, navigation
grouped by level, standards-pointer table, live refactor-status table.

wiki/Archive.md (new) — empty archive table for retired wiki pages.

Submodule pointer bumps (all wiki/Home.md + wiki:* npm scripts):
  measurement          42a0333 → 2aa8021
  machineGroupControl  bb2f3be → 045a941
  rotatingMachine      e058fe9 → 9e8463b
  valve                e27135b → 8aa5b5e
  valveGroupControl    e02cd1a → c44d595
  diffuser             15cfb22 → 9122b14
  monster              2a6a0bc → 2a82b7d
  settler              b8247fc → 6953d64
  reactor              7bf464b → d931bea
  dashboardAPI         92d7eba → 67a374f

Every node now has a visual-first wiki Home page with auto-generated
topic contract + data model. Per-node `npm run wiki:all` re-generates
the AUTOGEN blocks from src/commands/ + src/specificClass.js.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 15:18:05 +02:00
znetsixe
afc304b424 Bump pumpingStation + generalFunctions for P9.2 + P9.3 + examples
generalFunctions  95c5e68 → 30c5dc8  P9.2 wikiGen.js shared script
  pumpingStation    d2384b1 → ed22f01  P9.3 wiki Home.md pilot +
                                       3-tier example flows + tools/
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 14:50:57 +02:00
znetsixe
3b7acdaa88 P10.7: top-level test:platform runner + bump submodule pointers
scripts/test-platform.js iterates each submodule, runs npm test, shows
a per-node pass/fail summary, exits non-zero if any node fails.

Wired as `npm run test:platform` in the parent package.json.

Submodule pointer bumps:
  dashboardAPI     2874608 → 92d7eba  (Mocha → node:test conversion for edge+integration)
  diffuser         0ec9dd1 → 15cfb22  (P10.7a test script fix)
  generalFunctions 8ebf31d → 95c5e68  (P10.7a test script fix + remove 5 broken Mocha dupes)
  pumpingStation   52d3889 → d2384b1  (P10.7a test script fix)

Current platform-wide gate: 729 pass / 5 fail across 12 submodules
(5 failures are all pre-existing AssertionErrors logged in
OPEN_QUESTIONS.md for Phase 10.5).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 14:45:06 +02:00
znetsixe
0a890fd0d7 Bump generalFunctions to 7c..-ish (P8.5 cleanup + P6.4 schema fix)
92eb8d2  P8.5: remove src/menu/asset_DEPRECATED.js (243 lines, 0 consumers)
  HEAD     P6.4 follow-up: add diffuser config schema fields

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 07:47:39 +02:00
znetsixe
1d0dd45d9a P8 prep: bump submodule pointers to development tips after Phase 1-6
All 12 submodules + parent EVOLV are now on the `development` branch
with the platform refactor complete:

  generalFunctions     7372d12  Phase 1 platform infra (additive)
                                BaseNodeAdapter / BaseDomain / UnitPolicy
                                ChildRouter / LatestWinsGate / HealthStatus
                                commandRegistry / statusBadge / statusUpdater
                                stats — 113 unit tests
  pumpingStation       52d3889  Phase 2 — concern split + integration
                                basin/measurement/control/safety/io/commands
                                specificClass 1039→245 lines, 102 tests
  measurement          42a0333  Phase 3 — Channel-based analog + BaseDomain
                                simulator/calibration/commands extracted
                                specificClass 716→244 lines, 96 tests
  machineGroupControl  bb2f3be  Phase 4 — concern split + integration
                                groupOps/totals/combinatorics/optimizer/
                                efficiency/dispatch/commands
                                specificClass 1808→336 lines, 77 tests
  rotatingMachine      e058fe9  Phase 5 — concern split + integration
                                curves/prediction/drift/pressure/state/
                                measurement/flow/display/commands
                                specificClass 1760→400 lines, 196 tests
  valve                e27135b  Phase 6 platform refactor + concern split
  valveGroupControl    e02cd1a  Phase 6 platform refactor + concern split
  diffuser             0ec9dd1  Phase 6 platform refactor (port 4→3)
  monster              2a6a0bc  Phase 6 platform refactor + concern split
  settler              b8247fc  Phase 6 platform refactor (reactor link kept)
  reactor              7bf464b  Phase 6 platform refactor + kinetics/ split
  dashboardAPI         2874608  Phase 6 — commandRegistry only (no BaseDomain;
                                passive HTTP server — see OPEN_QUESTIONS.md)

493 basic tests pass platform-wide (12/12 nodes green).

All canonical input topics (set.* / cmd.* / data.* / child.* / query.* /
evt.*) live alongside legacy aliases with one-time deprecation warnings.
Topic-rename cycle (P7) elapses across one release before alias removal.

Decisions taken during the refactor are recorded in
.claude/refactor/OPEN_QUESTIONS.md (resolved entries + carryovers for
Phase 8.5 cleanup, Phase 9 wiki, and Phase 10 test rewrite).

Ready for review on a per-submodule basis. Promotion to main is gated
on Docker E2E (per-node trial-ready criteria) — not part of this commit.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 22:25:16 +02:00
Rene De Ren
aec90cc8e7 fix: stopLevel hysteresis works — bump rotatingMachine + MGC
Some checks failed
CI / lint-and-test (push) Has been cancelled
Pump-shutdown deadlock fix split across two submodules:

- rotatingMachine@8f9150e: shutdown sequence clears state.delayedMove
  so the abort-and-return-to-operational path doesn't auto-pickup the
  queued setpoint and re-engage the pump.
- machineGroupControl@ea2857f: turnOffAllMachines clears MGC's
  _delayedCall and serializes per-pump shutdown so PS's 2 s tick loop
  can't interrupt an in-flight shutdown.

Live verification on pumpingstation-complete-example demo: basin now
shuts pumps off at stopLevel cleanly, reverses to fill, completes the
hysteresis cycle.

Also disable the trends page in the demo flow (build_flow.py + regen
flow.json). FlowFuse ui-chart's per-series server-side history buffer
(7 charts × ~20 series × 3600-point retention) was saturating the
Node-RED event loop at 129% CPU, making the dashboard freeze on every
click. Trends remain available — just disabled by default; flip the
ui_page_trends "d" key to false to re-enable.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-09 18:18:11 +02:00
Rene De Ren
6fef002da1 Bump machineGroupControl@2651aaf — quiet abortActiveMovements normal path
Some checks failed
CI / lint-and-test (push) Has been cancelled
WARN now fires only when force-aborting an actually in-flight pump
movement (gate-bypass safety net), not on every no-op tick.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-09 09:43:17 +02:00
Rene De Ren
c4d75809cd Bump machineGroupControl@df74ea0 — serialize handleInput dispatches
Some checks failed
CI / lint-and-test (push) Has been cancelled
Adds the _dispatchInFlight gate that mirrors rotatingMachine
state.delayedMove. Before this, PS at 1 Hz overran in-flight pump
ramps via concurrent handleInput entries, producing the live thrash:
120 aborts / 2 min, pump_b clamped at minFlow.

Includes regression test:
test/mgc-overactive-demand-serialization.integration.test.js
covering concurrent-burst serialization (30 calls → ≤ 5 aborts) and
latest-wins semantic.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-09 09:15:23 +02:00
Rene De Ren
a4617d850a Bump MGC@96b84d3 — revert unchanged-demand short-circuit (broke live demo)
Some checks failed
CI / lint-and-test (push) Has been cancelled
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 20:55:47 +02:00
Rene De Ren
44963cfa43 Bump MGC@a14aa0d — short-circuit handleInput on unchanged demand
Some checks failed
CI / lint-and-test (push) Has been cancelled
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 20:10:57 +02:00
Rene De Ren
15c39f76bb Bump MGC@69bdf11 + adjust overcapacity test to actually exercise storm
Some checks failed
CI / lint-and-test (push) Has been cancelled
- nodes/machineGroupControl@69bdf11 makes DOWNSTREAM single-writer
  (handlePressureChange = live aggregate; optimizer target moved to
  AT_EQUIPMENT). Closes the ps-mgc-flow-contract failure.

- test/inflow-overcapacity-stability now starts the basin at maxLevel
  so PS percControl is immediately 100 % (the actual storm condition)
  and uses real-time waits between ticks so movementManager intervals
  fire — the previous setImmediate yield was too fast for moves to
  progress, making pumps look perma-parked even when behaviour was OK.
  Park observations dropped from 83 to 3 across the sim window; final
  ctrl converges to ~88 % across all 3 pumps.

All 82 cross-node + node integration tests now pass.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 18:33:09 +02:00
Rene De Ren
21e777797a Bump machineGroupControl@dc27a56 — mirror aggregate flow onto DOWNSTREAM
Some checks failed
CI / lint-and-test (push) Has been cancelled
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 17:20:28 +02:00
Rene De Ren
035f03cdee Bump machineGroupControl@b7c40b0 — mirror dispatch fix in equalFlowControl
Some checks failed
CI / lint-and-test (push) Has been cancelled
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 11:47:23 +02:00
Rene De Ren
9bc6908d05 Bump machineGroupControl@8e68420 — add cycle/sweep regression tests
Some checks failed
CI / lint-and-test (push) Has been cancelled
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 11:34:01 +02:00
Rene De Ren
0cab98c196 Pumping-station demo overhaul + cross-node test harness + bumps
Some checks failed
CI / lint-and-test (push) Has been cancelled
Submodule bumps land the deadlock fix (state.js residue unpark + MGC
optimalControl dispatch reorder) and pumpingStation stopLevel hysteresis.

- Renames examples/pumpingstation-3pumps-dashboard →
  pumpingstation-complete-example with regenerated flow.json. New
  dashboard groups, demand-broadcast wiring, S88 placement rule
  applied, ui-chart trend-split and link-channel naming follow
  .claude/rules/node-red-flow-layout.md.
- New cross-node test harness under test/: end-to-end-pumpingstation
  drives PS + MGC + 3 pumps + physics simulator end-to-end and
  verifies the ~5/15 min cycle.
- Adds Grafana provisioning dashboards (pumping-station.json) and a
  helper sync-example.sh script for export/import to live Node-RED.
- Docker entrypoint + settings + compose tweaks for the persistent
  user dir layout used by the demo.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 11:21:21 +02:00
Rene De Ren
ca0644d689 Bump generalFunctions@94bcc90 — gitignore local lockfile stub
Some checks failed
CI / lint-and-test (push) Has been cancelled
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 17:24:28 +02:00
Rene De Ren
5766ee4d16 Drop tensorflow deps; rule cleanups; repo-mem MCP; bump pumpingStation@6ab585b
Some checks failed
CI / lint-and-test (push) Has been cancelled
- package.json: remove @tensorflow/tfjs and @tensorflow/tfjs-node.
  Monster's TF code was already stripped; the deps were stale and kept
  pulling a heavy native binary back into every install.
- .gitignore: ignore .repo-mem/ regenerable indexes and per-session
  .claude/*.lock runtime files.
- CLAUDE.md: prepend READ-FIRST pointer to .claude/rules/repo-mem.md;
  collapse the 'three outputs' bullet to a pointer at node-architecture.
- .claude/rules/telemetry.md: drop Port 0/1/2 duplication; reference
  node-architecture.md.
- .claude/rules/testing.md: stop requiring a separate test/edge tier and
  the basic/integration/edge example flow trio. Reflects what nodes
  actually do.
- .claude/rules/repo-mem.md (new): when-to-call-which guide for the
  per-repo memory MCP, anti-patterns, refresh model.
- .mcp.json (new): wire repo-mem stdio server.
- docs/DEVELOPER_GUIDE.md (new): step-by-step guide for adding a new
  EVOLV node under the three-layer pattern.
- Bump nodes/pumpingStation to 6ab585b (docs + simulations refresh,
  spill-flow path renames consistent with d8490aa).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 17:23:47 +02:00
Rene De Ren
0466287514 Bump pumpingStation@d8490aa + generalFunctions@a516c2b
Some checks failed
CI / lint-and-test (push) Has been cancelled
pumpingStation: predicted-volume hard-floor at 0; spill flow refactored
from flow.predicted.out.<child=overflow> to its own position
flow.predicted.overflow. Drops the spillPrev self-subtraction. New
underflowVolume diagnostic for flow-balance errors. 70/70 tests pass.

generalFunctions: MeasurementContainer.get() strict-resolves explicit
.child(name) — missing named child now returns null instead of falling
through to a sibling. Persistent setChildId remains a hint (no
behavioural change for registered children).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 17:18:45 +02:00
Rene De Ren
21b0bd34c6 Bump pumpingStation@6b46a8a — predicted-volume overflow clamp
Some checks failed
CI / lint-and-test (push) Has been cancelled
Integrator now clamps predicted volume to [dryRunSafetyVol,
maxVolAtOverflow], records cumulative spill as overflowVolume and
exposes a synthetic flow.predicted.out.overflow rate so net flow
balances to ~0 while pinned. _selectBestNetFlow holds the last
level-rate net flow during overflow so dashboards keep a usable
reading. Top-level predictedOverflowVolume / predictedOverflowRate
fields added to getOutput.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 14:48:00 +02:00
Rene De Ren
60c6a647e2 Bump pumpingStation@62bc73f — input bounds + full hierarchy validation
Some checks failed
CI / lint-and-test (push) Has been cancelled
- bounds.js sets HTML5 min/max on every level + percent input so the
  spinner can't push values past the basin hierarchy.
- Basin-level violations now surface in a visible ribbon above the
  basin diagram and block Deploy via oneditsave.
- Layout polish: widened side panel, tightened basin viewBox, dropped
  mode-preview axis labels, moved datum below the tank.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 14:10:29 +02:00
Rene De Ren
48b9335dac Bump pumpingStation@de9a79b + generalFunctions@4b6250c
Some checks failed
CI / lint-and-test (push) Has been cancelled
- pumpingStation: hold-then-ramp shift hysteresis driven by
  shiftArmPercent (% output threshold for arming) instead of by level.
  New e2e integration test exercises the full fill→arm→hold→ramp-down
  cycle. Editor preview gains the arming-% horizontal line.
- generalFunctions: add shiftArmPercent to the pumpingStation schema;
  add prominent doc block on MeasurementContainer documenting the
  `${type}.${variant}.${position}.${childId}` flatten format and the
  implicit 'default' childId convention so dashboards don't drop it.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 11:47:03 +02:00
Rene De Ren
7c6c6183f7 Bump pumpingStation@8a6ca1b + generalFunctions@35f648f
Some checks failed
CI / lint-and-test (push) Has been cancelled
- pumpingStation: level-armed shift hysteresis, derived dryRunLevel,
  side-panel editor with hover-coupling, manual q_out for end-to-end
  testing without rotating-machine wiring.
- generalFunctions: schema additions for flowThreshold, output formats,
  enableShiftedRamp / shiftLevel under control.levelbased.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-05 19:29:49 +02:00
Rene De Ren
2593458bdf Update pumpingStation submodule
Some checks failed
CI / lint-and-test (push) Has been cancelled
2026-05-05 11:02:33 +02:00
znetsixe
36147de6d7 Bump pumpingStation@ab0d4ed — outlet pinned, zone labels added, volume in diagram
Some checks failed
CI / lint-and-test (push) Has been cancelled
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 13:20:06 +02:00
znetsixe
b84c59cbe6 Bump pumpingStation@2dd419d — revert tank size, nudge lines themselves
Some checks failed
CI / lint-and-test (push) Has been cancelled
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 12:10:32 +02:00
znetsixe
b873a8fb02 Bump pumpingStation@785d036 — taller editor diagram, more breathing room
Some checks failed
CI / lint-and-test (push) Has been cancelled
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 11:41:10 +02:00
znetsixe
7e51bec8f2 Bump pumpingStation@65fe68b — nudge crowded threshold inputs with leader lines
Some checks failed
CI / lint-and-test (push) Has been cancelled
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 10:41:26 +02:00
znetsixe
aa546df6e6 Bump pumpingStation@d641d22 — interactive basin diagram in editor
Some checks failed
CI / lint-and-test (push) Has been cancelled
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 10:28:26 +02:00
znetsixe
c413c0fad5 Bump pumpingStation@12904b4 — inline parameters diagram in editor
Some checks failed
CI / lint-and-test (push) Has been cancelled
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 10:19:29 +02:00
znetsixe
a6ad85ae38 Bump pumpingStation@1ebbcb6 — editor pipe-edge labels + live derived safety levels
Some checks failed
CI / lint-and-test (push) Has been cancelled
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 09:58:26 +02:00
znetsixe
33ac527274 Bump rotatingMachine + machineGroupControl submodule pointers
Some checks failed
CI / lint-and-test (push) Has been cancelled
- rotatingMachine@399e0a8: editor hygiene (name default, status
  clear on close), remove redundant idle-position clamp in
  flow/power predictions.
- machineGroupControl@9c79dac: bug fix — stale flow/power cache
  now cleared on MGC shutdown so parent pumpingStation sees the
  drop immediately. Also awaits shutdown promises correctly and
  corrects the NCog integration tests to match centrifugal-pump
  physics (Q/P monotonic → NCog=0 → fallback to equal distribution).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-22 17:51:25 +02:00
znetsixe
d22d1cabd1 Rename eval/ decision log to simulations/; bump pumpingStation pointer
Some checks failed
CI / lint-and-test (push) Has been cancelled
Follows pumpingStation@3e13512 (rename eval/ → simulations/). The
decision log file is renamed to match the new folder name; an
addendum in the body explains that the rename was a naming
clarification, not a rationale change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-22 17:47:00 +02:00
znetsixe
79afe11da8 Log pumpingStation architectural decisions; bump submodule pointers
Some checks failed
CI / lint-and-test (push) Has been cancelled
Four decisions recorded under .agents/decisions/ per project convention
(DECISION-YYYYMMDD-slug.md) to close the loop on today's pumpingStation
refactor + eval + docs work:

- wiki-in-code-repo — why docs+diagrams+code now live in one package
- 5-threshold-naming — old/new field mapping + breaking-change rationale
- mode-tier-template — Tier 1/2/3 classification for mode pages
- eval-harness — why eval/ exists alongside test/

Also bumps nodes/pumpingStation to 66fd3fe (eval harness + Tier 2/3
template pages).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-22 16:50:00 +02:00