Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ClientNode implementation round 3 #1711

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

lauckhart
Copy link
Collaborator

@lauckhart lauckhart commented Feb 16, 2025

Protocol-level plumbing factors out various bits of controller- and client-related logic into more composable APIs:

  • Decouples PeerSet from InteractionClient and adds a (mostly stubbed) client Interactable
  • Modifies client networking to expose incoming data reports as a stream
  • Exposes physical device properties and subscription client as independent APIs
  • Extracts interface and logic to support working with partially-decoded data reports on the client
  • Adds hooks to InteractionServer to support delegation of subscription responses to a client implementation

Also fleshes out operational networking for client nodes. Operational discovery is in place but actual interaction is blocked pending client Interactable implementation.

Protocol-level plumbing factors out various bits of controller- and client-related logic into more composable APIs:

  - Decouples PeerSet from InteractionClient and adds a (mostly stubbed) client Interactable
  - Modifies client networking to expose incoming data reports as a stream
  - Exposes physical device properties and subscription client as independent APIs
  - Extracts interface and logic to support working with partially-decoded data reports on the client
  - Adds hooks to InteractionServer to support delegation of subscription responses to a client implementation

Also fleshes out operational networking for client nodes.  Operational discovery is in place but actual interaction is blocked pending implementation of client Interactable implementation.
Copy link

semanticdiff-com bot commented Feb 16, 2025

Review changes with  SemanticDiff

Changed Files
File Status
  packages/node/test/node/node-helpers.ts  85% smaller
  packages/protocol/src/peer/PeerAddressStore.ts  75% smaller
  packages/nodejs/src/net/NodeJsUdpChannel.ts  72% smaller
  packages/protocol/src/peer/PeerSet.ts  58% smaller
  packages/protocol/src/securechannel/SecureChannelProtocol.ts  40% smaller
  packages/node/src/behavior/system/commissioning/CommissioningClient.ts  23% smaller
  packages/node/src/behavior/state/managed/values/StructManager.ts  18% smaller
  packages/protocol/src/peer/ControllerCommissioner.ts  16% smaller
  packages/node/src/behavior/system/network/ServerNetworkRuntime.ts  15% smaller
  packages/protocol/src/protocol/ExchangeProvider.ts  14% smaller
  packages/node/src/behavior/system/controller/ControllerBehavior.ts  13% smaller
  packages/matter.js/src/MatterController.ts  13% smaller
  packages/node/src/node/server/IdentityService.ts  12% smaller
  packages/protocol/src/interaction/InteractionMessenger.ts  8% smaller
  packages/matter.js/src/device/DeviceInformation.ts  4% smaller
  packages/protocol/src/interaction/InteractionClient.ts  3% smaller
  packages/protocol/src/protocol/ExchangeManager.ts  1% smaller
  packages/general/src/util/Cancelable.ts  0% smaller
  packages/general/src/util/DataReadQueue.ts  0% smaller
  packages/general/src/util/Stream.ts  0% smaller
  packages/node/src/behavior/context/ActionContext.ts  0% smaller
  packages/node/src/behavior/system/network/ClientNetworkRuntime.ts  0% smaller
  packages/node/src/behavior/system/network/NetworkClient.ts  0% smaller
  packages/node/src/endpoint/properties/EndpointContainer.ts  0% smaller
  packages/node/src/node/ClientNode.ts  0% smaller
  packages/node/src/node/Node.ts  0% smaller
  packages/node/src/node/client/ClientNodes.ts  0% smaller
  packages/node/src/node/client/NodePeerAddressStore.ts  0% smaller
  packages/node/src/node/client/NodePeerStore.ts  0% smaller
  packages/node/src/node/client/index.ts  0% smaller
  packages/node/src/node/payloads/AttributePayload.ts  0% smaller
  packages/node/src/node/payloads/BasePayload.ts  0% smaller
  packages/node/src/node/payloads/CommandPayload.ts  0% smaller
  packages/node/src/node/payloads/EventPayload.ts  0% smaller
  packages/node/src/node/server/TransactionalInteractionServer.ts  0% smaller
  packages/protocol/src/action/client/ClientInteraction.ts  0% smaller
  packages/protocol/src/action/client/index.ts  0% smaller
  packages/protocol/src/action/index.ts  0% smaller
  packages/protocol/src/interaction/DecodedDataReport.ts  0% smaller
  packages/protocol/src/interaction/InteractionServer.ts  0% smaller
  packages/protocol/src/interaction/SubscriptionClient.ts  0% smaller
  packages/protocol/src/interaction/index.ts  0% smaller
  packages/protocol/src/peer/InteractionQueue.ts  0% smaller
  packages/protocol/src/peer/PhysicalDeviceProperties.ts  0% smaller
  packages/protocol/src/peer/index.ts  0% smaller
  packages/protocol/src/protocol/ProtocolHandler.ts  0% smaller
  packages/protocol/src/session/SessionManager.ts  0% smaller
  packages/protocol/src/session/case/CaseServer.ts  0% smaller
  packages/protocol/src/session/pase/PaseServer.ts  0% smaller
  packages/testing/src/failure-reporter.ts  0% smaller
  packages/testing/src/nodejs-reporter.ts  0% smaller
  packages/testing/src/text-diff.ts  0% smaller
  packages/testing/src/web-reporter.ts  0% smaller
  packages/tools/src/ansi-text/chars.ts  0% smaller
  packages/tools/src/ansi-text/consumer.ts  0% smaller
  packages/tools/src/ansi-text/contiguous-output-segment.ts  0% smaller
  packages/tools/src/ansi-text/index.ts  0% smaller
  packages/tools/src/ansi-text/printer.ts  0% smaller
  packages/tools/src/ansi-text/producer.ts  0% smaller
  packages/tools/src/ansi-text/screen.ts  0% smaller
  packages/tools/src/ansi-text/sgr.ts  0% smaller
  packages/tools/src/ansi-text/std.ts  0% smaller
  packages/tools/src/ansi-text/style.ts  0% smaller
  packages/tools/src/ansi-text/text-builder.ts  0% smaller
  packages/tools/src/ansi-text/text-writer.ts  0% smaller
  packages/tools/src/ansi-text/token.ts  0% smaller
  packages/tools/src/ansi-text/tokenize.ts  0% smaller
  packages/tools/src/ansi-text/truncator.ts  0% smaller
  packages/tools/src/ansi-text/visible-width-of.ts  0% smaller
  packages/tools/src/ansi-text/wrapper.ts  0% smaller

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant