17 Commits

Author SHA1 Message Date
a45871625e refactor: harmonize method names 2025-10-14 18:01:37 +02:00
3cc5405292 feat(streaming): introduce WebSocket Streaming API bridging event bus
ApiServer: add AsyncWebSocket at /ws; accept JSON {event, payload} (string or object) and dispatch via ctx.fire; mirror all local events to clients using NodeContext::onAny.\nNodeContext: add onAny subscriber API.\nNeoPatternService: add api/neopattern/color event to set solid color.\nCluster: centralize cluster/broadcast sending in core; services delegate.\nAPI: add generic /api/node/event and /api/cluster/event endpoints in respective services.\nTests: add ws-color-client, ws-cluster-broadcast-color, http-cluster-broadcast-color.\nDocs: add StreamingAPI.md; update README and test/README.\nFixes: robust WS JSON parsing on ESP8266 and payload handling.
2025-09-28 21:10:26 +02:00
950142bf7f docs(readme): add Cluster Broadcast section and link to detailed guide
Documents centralized cluster broadcasting flow: service fires local event, core sends UDP CLUSTER_EVENT, peers re-fire locally. Includes usage example and notes; links to docs/ClusterBroadcast.md.
2025-09-28 13:49:48 +02:00
bf17684dc6 feat: implement Spore framework class as main orchestration layer
- Add Spore class as unified interface for all core framework functionality
- Implement setup() and begin() methods for flexible initialization pattern
- Add service registration with addService() for both raw and smart pointers
- Provide accessor methods for core components (getTaskManager, getContext, etc.)
- Automatically include core services (Node, Network, Cluster, Task)
- Update all examples to use simplified Spore framework approach
- Fix circular dependency issues in include structure
- Remove setHostname and setApiPort configuration methods
- Add comprehensive documentation and usage examples

The Spore class encapsulates all core functionality from the base example
and provides a clean, unified API for the entire framework. Examples now
use just spore.setup() -> add services -> spore.begin() -> spore.loop().
2025-09-13 21:17:54 +02:00
72b559e047 refactor: simplify endpoint and capabilities 2025-09-13 19:15:07 +02:00
12caeb0be6 feat: services (#2) 2025-09-13 13:45:24 +02:00
17bdfeaaf0 docs: update README.md 2025-08-22 15:51:47 +02:00
30a5f8b8cb feat: task manager endpoint, updated documentation 2025-08-22 15:47:08 +02:00
d7d307e3ce feat: support D1 2025-08-22 13:13:49 +02:00
5ccd3ec956 docs: update task manager 2025-08-21 22:34:06 +02:00
f80b594d21 feat: task manager 2025-08-21 21:52:25 +02:00
953768b681 docs: update 2025-08-21 21:40:38 +02:00
175ed8cae8 docs: update 2025-08-21 20:19:16 +02:00
9af056283d fix: typo 2025-08-21 18:52:47 +02:00
1738017fd5 chore: refactoring and docs 2025-08-21 18:00:02 +02:00
5870695465 chore: rename ClusterContext to NodeContext 2025-08-21 17:39:43 +02:00
fc015e8958 basic functionality 2025-08-21 15:54:05 +02:00