Feature: Interactive Runtime Serializable Event Console
Problem
ESPressio Event 5.6.0 now provides runtime discovery, schema introspection, type-erased construction, validation diagnostics, and ownership-safe dispatch for registered Serializable Event types.
ESPressio Serial already provides Event monitoring, logging, System Clock diagnostics, and Thread diagnostics, but an operator with Serial access cannot yet use those runtime Event capabilities interactively.
Application developers therefore still need bespoke command handlers whenever they want to inspect registered Event types, compose an Event payload, validate it, or dispatch it from a development/service console.
Any solution must preserve the existing ESPressio responsibility boundaries:
- ESPressio Serializable owns JSON parsing and Serializable validation.
- ESPressio Event owns Event registration, runtime construction, dispatch, and transport routing.
- ESPressio Serial should own only operator interaction, command parsing, presentation, and access policy.
Runtime discoverability must also not automatically imply operator authorization. Some registered Event types may represent resets, destructive actions, configuration changes, or other operations that should not become dispatchable merely because a console is enabled.
Ideal Solution
Add a reusable Serial console foundation based on Arduino Stream input and Print output, then provide an opt-in Event Console integration using the runtime Serializable Event APIs introduced by ESPressio Event 5.6.0.
The generic console should support:
- bounded line-oriented input;
- command registration and unregistration;
- built-in command help;
- command arguments;
- multiple interactive line interceptors so independently implemented console extensions can coexist;
- use with Hardware Serial, USB CDC, or another compatible
Stream/Print implementation.
The Event Console should allow an operator to:
- list runtime-registered Serializable Event types;
- inspect an Event's stable identity, schema version, property schema, runtime constructibility, and default Event Transport direction;
- compose Event payloads as JSON;
- receive detailed Serializable validation/deserialization errors;
- dispatch constructed Events using normal Queue or Stack semantics;
- use either one-line commands or an interactive composition workflow;
- optionally require operator confirmation before dispatch;
- rely on normal Event Transport routing after local dispatch rather than introducing a separate remote-dispatch mechanism.
Operator access must be safe by default:
- the default policy should expose only explicitly allow-listed Event types for dispatch;
- an explicit allow-all policy should be available for development environments;
- deny-list entries should override broader access;
- discovery/description may remain visible independently of dispatch permission.
Console activity should integrate cleanly with existing ESPressio Serial diagnostics, including optional structured audit logging and compatibility with Event Monitor so console-created Events naturally appear in normal Event Transport diagnostics.
The Event Console should remain opt-in. Core ESPressio Serial and the generic Console must not acquire mandatory Event, Serializable, or ArduinoJson dependencies.
Feature: Interactive Runtime Serializable Event Console
Problem
ESPressio Event 5.6.0 now provides runtime discovery, schema introspection, type-erased construction, validation diagnostics, and ownership-safe dispatch for registered Serializable Event types.
ESPressio Serial already provides Event monitoring, logging, System Clock diagnostics, and Thread diagnostics, but an operator with Serial access cannot yet use those runtime Event capabilities interactively.
Application developers therefore still need bespoke command handlers whenever they want to inspect registered Event types, compose an Event payload, validate it, or dispatch it from a development/service console.
Any solution must preserve the existing ESPressio responsibility boundaries:
Runtime discoverability must also not automatically imply operator authorization. Some registered Event types may represent resets, destructive actions, configuration changes, or other operations that should not become dispatchable merely because a console is enabled.
Ideal Solution
Add a reusable Serial console foundation based on Arduino
Streaminput andPrintoutput, then provide an opt-in Event Console integration using the runtime Serializable Event APIs introduced by ESPressio Event 5.6.0.The generic console should support:
Stream/Printimplementation.The Event Console should allow an operator to:
Operator access must be safe by default:
Console activity should integrate cleanly with existing ESPressio Serial diagnostics, including optional structured audit logging and compatibility with Event Monitor so console-created Events naturally appear in normal Event Transport diagnostics.
The Event Console should remain opt-in. Core ESPressio Serial and the generic Console must not acquire mandatory Event, Serializable, or ArduinoJson dependencies.