feat: actions.intent() and related eventing#63
Conversation
There was a problem hiding this comment.
Pull request overview
This PR adds initial Firebolt Actions support to the C++ client (including intent() and onIntent subscription wiring) and updates local developer tooling for running tests, tunneling to a device endpoint, and linting.
Changes:
- Adds a new
Firebolt::Actionspublic interface, implementation, and accessor integration (includingunsubscribeAll()lifecycle handling). - Adds unit tests for
Actions::intent()andActions::subscribeOnIntent(). - Improves local workflows with new unit/component test runner scripts, an SSH device tunnel helper, and a
lint.shhelper; also tweaks component-test endpoint selection and SYSROOT handling inbuild.sh.
Reviewed changes
Copilot reviewed 16 out of 16 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| test/unit/actionsTest.cpp | Adds unit tests for intent() and onIntent subscription. |
| test/ComponentTestsMain.cpp | Uses FIREBOLT_ENDPOINT env var with a new default endpoint for component tests. |
| test/CMakeLists.txt | Points unit tests at the OpenRPC schema via an absolute source-tree path define. |
| src/json_types/actions.h | Introduces generated JSON-type header placeholder for Actions. |
| src/firebolt.cpp | Wires Actions into the accessor and unsubscribeAll() flow. |
| src/actions_impl.h | Declares the generated ActionsImpl implementation. |
| src/actions_impl.cpp | Implements intent() and subscribeOnIntent() using helper + subscription manager. |
| setup-device-tunnel.sh | Adds SSH local-forward tunnel helper using required env vars. |
| run-unit-tests.sh | Adds a focused unit-test build/run helper script. |
| run-component-tests.sh | Adds a focused component-test build/run helper script. |
| run-all-test.sh | Refactors aggregate test runner to delegate to unit/component scripts. |
| README.md | Documents the new test runners and lint helper usage. |
| lint.sh | Adds local clang-tidy/cppcheck runner with optional clang-tidy fix mode. |
| include/firebolt/firebolt.h | Exposes the Actions interface on IFireboltAccessor. |
| include/firebolt/actions.h | Adds the public Actions API interface definition. |
| build.sh | Makes SYSROOT_PATH optional and updates how it’s passed to CMake. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool. What Enabling Code Scanning Means:
For more information about GitHub Code Scanning, check out the documentation. |
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
|
b'## WARNING: A Blackduck scan failure has been waived A prior failure has been upvoted
|
|
🎉 This PR is included in version 0.6.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
Summary
This PR adds Actions API support in the Firebolt C++ client (including
intent+onIntentevent wiring) and improves local developer workflows for tests, tunnel setup, and linting.What Changed
onIntentsubscription support withunsubscribeandunsubscribeAll.run-unit-tests.shrun-component-tests.shrun-all-test.shnow delegates to those scripts.lint.shhelper for local static analysis.--fix.Validation
./run-all-test.sh --unit-onlylint.shhelp and argument parsing validated.lint.shnow shows per-file progress during clang-tidy runs.Notes
--fixand applies only to clang-tidy.--tidy-path test/api_test_appRisk
Reviewer Focus
run-all-test.shargument forwarding and delegation behavior.