split EventBus into DaemonBus + MessageBus
DaemonBus (was EventBus): typed events for system/IPC layer. MessageBus: channel-based pub/sub for UI/extension coordination. Messages carry publisher (auto-stamped from extension ID), channel (required), timestamp, and payload. Subscribe by publisher, channel, or both — zero collision across extensions. Extension context gains publish() and subscribe() convenience methods that auto-stamp the extension's ID as publisher. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -13,13 +13,13 @@ class DaemonClient extends ChangeNotifier {
|
||||
DaemonClient({
|
||||
required this.socketPath,
|
||||
required Logger log,
|
||||
required EventBus events,
|
||||
required DaemonBus events,
|
||||
}) : _log = log,
|
||||
_events = events;
|
||||
|
||||
final String socketPath;
|
||||
final Logger _log;
|
||||
final EventBus _events;
|
||||
final DaemonBus _events;
|
||||
|
||||
Socket? _socket;
|
||||
bool _connected = false;
|
||||
|
||||
@@ -7,7 +7,7 @@ import 'package:clide/src/daemon/dispatcher.dart';
|
||||
class InProcessClient extends DaemonClient {
|
||||
InProcessClient({
|
||||
required Logger log,
|
||||
required EventBus events,
|
||||
required DaemonBus events,
|
||||
required this.dispatcher,
|
||||
}) : super(socketPath: '', log: log, events: events);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user