8000 Client node round 4 by lauckhart · Pull Request #2200 · project-chip/matter.js · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Client node round 4 #2200

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

Merged
merged 3 commits into from
Jul 1, 2025
Merged

Client node round 4 #2200

merged 3 commits into from
Jul 1, 2025

Conversation

lauckhart
Copy link
Collaborator

This is a large round of changes that fleshes out the Node API for client usage.

Finishes off the controller features for ServerNode and fleshes out ClientNode to the point where it is largely functional. Tests cover commissioning, syncing of attributes and endpoint structure, invoking a commands and reloading from cached attributes.

Other areas of improvement include:

  • Upgrades to network simulation

  • A new equivalent to the old "IntegrationTest" that performs in-process test of a matter.js controller against a matter.js device

  • Refactoring of the storage layer for @matter/node which has always been a bit convoluted

  • Misc. test harness fixes and upgrades

  • A new protocol-level client implementation in ClientInteractable and ClientSubscriptions

  • Improved support for IDs or names for keys in persisted Datasource values

  • Datasource features to support underlying mutated externally rather than via ValueSupervisor

  • Adds commands and commandsFor to allow for invocation directly from Endpoint API without creating a behavior

  • Standard implementations of individual error classes for each Status code, and logic to automatically throw correct subclass based on a status code

  • Proper support for suppressed errors generated by using

  • Elimination of cyclical imports in @matter/node

  • Tweaks to behavior generation to reduce the number of redundant types injected into declaration files

Copy link
Contributor
@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request includes several updates and refactorings, including new error classes, improvements to network simulation, and refactoring of the storage layer. The changes look good overall, but there are a few areas that could be improved, such as error handling and code comments. The style guide was followed.

@Apollon77
Copy link
Collaborator

And please add some Changelog entries :-)

This is a large round of changes that fleshes out the Node API for client usage.

Finishes off the controller features for ServerNode and fleshes out ClientNode to the point where it is largely functional.  Tests cover commissioning, syncing of attributes and endpoint structure, invoking a commands and reloading from cached attributes.

Other areas of improvement include:

* Upgrades to network simulation

* A new equivalent to the old "IntegrationTest" that performs in-process test of a matter.js controller against a matter.js device

* Refactoring of the storage layer for `@matter/node` which has always been a bit convoluted

* Misc. test harness fixes and upgrades

* A new protocol-level client implementation in ClientInteractable and ClientSubscriptions

* Improved support for IDs or names for keys in persisted Datasource values

* Datasource features to support underlying mutated externally rather than via ValueSupervisor

* Adds `commands` and `commandsFor` to allow for invocation directly from `Endpoint` API without creating a behavior

* Standard implementations of individual error classes for each `Status` code, and logic to automatically throw correct subclass based on a status code

* Proper support for suppressed errors generated by `using`

* Elimination of cyclical imports in @matter/node

* Tweaks to behavior generation to reduce the number of redundant types injected into declaration files
@Apollon77 Apollon77 added the automerge Set this label if the PR is ready to automatically merged after approval label Jul 1, 2025
@Apollon77 Apollon77 merged commit 2e16aba into project-chip:main Jul 1, 2025
47 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
automerge Set this label if the PR is ready to automatically merged after approval review - approved
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants
0