P6: convert diffuser to BaseDomain + BaseNodeAdapter + concern split

Refactor of diffuser to use the platform infrastructure (BaseDomain, BaseNodeAdapter,
ChildRouter, commandRegistry, statusBadge). Extracts concerns into
focused modules per .claude/refactor/MODULE_SPLIT.md generic template.
Tests stay green; CONTRACT.md generated; legacy aliases preserved.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
znetsixe
2026-05-10 22:09:26 +02:00
parent 7fbd207985
commit 0ec9dd15a7
6 changed files with 295 additions and 373 deletions

47
src/commands/index.js Normal file
View File

@@ -0,0 +1,47 @@
'use strict';
// Diffuser command registry. Consumed by BaseNodeAdapter via
// `static commands = require('./commands')`. Each descriptor maps a
// canonical msg.topic to its handler; legacy names live under `aliases`
// and emit a one-time deprecation warning at runtime.
const handlers = require('./handlers');
module.exports = [
{
topic: 'data.flow',
aliases: ['air_flow'],
payloadSchema: { type: 'number' },
handler: handlers.setFlow,
},
{
topic: 'set.density',
aliases: ['density'],
payloadSchema: { type: 'number' },
handler: handlers.setDensity,
},
{
topic: 'set.water-height',
aliases: ['height_water'],
payloadSchema: { type: 'number' },
handler: handlers.setWaterHeight,
},
{
topic: 'set.header-pressure',
aliases: ['header_pressure'],
payloadSchema: { type: 'number' },
handler: handlers.setHeaderPressure,
},
{
topic: 'set.elements',
aliases: ['elements'],
payloadSchema: { type: 'number' },
handler: handlers.setElements,
},
{
topic: 'set.alfa-factor',
aliases: ['alfaFactor'],
payloadSchema: { type: 'number' },
handler: handlers.setAlfaFactor,
},
];