Skip to content

feat: actions.intent() and related eventing#63

Merged
brendanobra merged 16 commits into
developfrom
feat/actions-api
May 29, 2026
Merged

feat: actions.intent() and related eventing#63
brendanobra merged 16 commits into
developfrom
feat/actions-api

Conversation

@brendanobra
Copy link
Copy Markdown
Contributor

@brendanobra brendanobra commented May 26, 2026

Summary

This PR adds Actions API support in the Firebolt C++ client (including intent + onIntent event wiring) and improves local developer workflows for tests, tunnel setup, and linting.

What Changed

  • Added Actions module surface and implementation for intent flow.
  • Added onIntent subscription support with unsubscribe and unsubscribeAll.
  • Integrated Actions cleanup into Firebolt lifecycle teardown.
  • Added JSON type support for Actions payload handling.
  • Added unit tests for Actions intent and event subscription behavior.
  • Split local test execution into dedicated scripts:
    • run-unit-tests.sh
    • run-component-tests.sh
    • run-all-test.sh now delegates to those scripts.
  • Added secure device tunnel helper script with required environment variables.
  • Added lint.sh helper for local static analysis.
  • Added optional auto-fix mode for clang-tidy via --fix.
  • Updated README docs for test runners, tunnel usage, and lint usage.

Validation

  • Shell script syntax checks passed.
  • Unit smoke run passed via aggregate runner:
    • ./run-all-test.sh --unit-only
  • Unit tests: 96 passed, 0 failed.
  • lint.sh help and argument parsing validated.
  • lint.sh now shows per-file progress during clang-tidy runs.

Notes

  • Lint is report-only by default.
  • Auto-fix is opt-in with --fix and applies only to clang-tidy.
  • Default clang-tidy scope excludes demo app sources to reduce noisy compile diagnostics.
  • Demo app sources can still be included with:
    • --tidy-path test/api_test_app

Risk

  • Low to moderate.
  • Main risk areas are subscription lifecycle cleanup and script workflow behavior.
  • Mitigated by new unit coverage and smoke validation.

Reviewer Focus

  • Actions event subscription and lifecycle cleanup logic.
  • run-all-test.sh argument forwarding and delegation behavior.
  • Lint helper defaults vs team workflow expectations (report-only by default, fix opt-in).

Copilot AI review requested due to automatic review settings May 26, 2026 21:58
@brendanobra brendanobra requested a review from satlead May 26, 2026 22:00
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

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::Actions public interface, implementation, and accessor integration (including unsubscribeAll() lifecycle handling).
  • Adds unit tests for Actions::intent() and Actions::subscribeOnIntent().
  • Improves local workflows with new unit/component test runner scripts, an SSH device tunnel helper, and a lint.sh helper; also tweaks component-test endpoint selection and SYSROOT handling in build.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.

Comment thread src/actions_impl.cpp Outdated
Comment thread test/unit/actionsTest.cpp Outdated
Comment thread build.sh
Comment thread include/firebolt/actions.h Outdated
Comment thread src/json_types/actions.h Outdated
Comment thread src/firebolt.cpp Outdated
@github-advanced-security
Copy link
Copy Markdown

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:

  • The 'Security' tab will display more code scanning analysis results (e.g., for the default branch).
  • Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results.
  • You will be able to see the analysis results for the pull request's branch on this overview once the scans have completed and the checks have passed.

For more information about GitHub Code Scanning, check out the documentation.

Copilot AI review requested due to automatic review settings May 27, 2026 20:35
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 18 out of 18 changed files in this pull request and generated 8 comments.

Comment thread include/firebolt/actions.h Outdated
Comment thread build.sh
Comment thread run-unit-tests.sh
Comment thread run-component-tests.sh
Comment thread run-all-test.sh
Comment thread setup-device-tunnel.sh
Comment thread lint.sh
Comment thread test/component/actionsGeneratedTest.cpp Outdated
Copilot AI review requested due to automatic review settings May 27, 2026 21:15
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 18 out of 18 changed files in this pull request and generated 9 comments.

Comment thread lint.sh
Comment thread setup-device-tunnel.sh Outdated
Comment thread run-unit-tests.sh
Comment thread run-component-tests.sh
Comment thread run-all-test.sh
Comment thread include/firebolt/actions.h
Comment thread src/actions_impl.cpp
Comment thread src/actions_impl.h
Comment thread src/json_types/actions.h
bobra200 and others added 2 commits May 27, 2026 14:38
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings May 27, 2026 21:48
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 18 out of 18 changed files in this pull request and generated 3 comments.

Comment thread include/firebolt/firebolt.h Outdated
Comment thread include/firebolt/actions.h
Comment thread src/actions_impl.h
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings May 27, 2026 21:51
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 19 out of 19 changed files in this pull request and generated 2 comments.

Comment thread include/firebolt/actions.h
Comment thread src/actions_impl.h
Copilot AI review requested due to automatic review settings May 27, 2026 21:57
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 19 out of 19 changed files in this pull request and generated 3 comments.

Comment thread test/ComponentTestsMain.cpp Outdated
Comment thread resolve-review-threads.sh Outdated
Comment thread resolve-review-threads.sh Outdated
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 19 out of 19 changed files in this pull request and generated 7 comments.

Comment thread include/firebolt/actions.h Outdated
Comment thread src/actions_impl.h Outdated
Comment thread src/actions_impl.cpp Outdated
Comment thread src/json_types/actions.h Outdated
Comment thread resolve-review-threads.sh Outdated
Comment thread include/firebolt/firebolt.h
Comment thread src/firebolt.cpp Outdated
Copilot AI review requested due to automatic review settings May 27, 2026 22:41
@rdkcmf-jenkins
Copy link
Copy Markdown
Contributor

b'## Blackduck scan failure details

Summary: 0 violations, 0 files pending approval, 1 file pending identification.

  • Protex Server Path: /home/blackduck/github/firebolt-cpp-client/63/rdkcentral/firebolt-native-transport

  • Commit: 5423100

Report detail: gist'

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 20 out of 20 changed files in this pull request and generated 2 comments.

Comment thread lint.sh
Comment thread test/component/actionsGeneratedTest.cpp
@rdkcmf-jenkins
Copy link
Copy Markdown
Contributor

b'## Blackduck scan failure details

Summary: 0 violations, 0 files pending approval, 1 file pending identification.

  • Protex Server Path: /home/blackduck/github/firebolt-cpp-client/63/rdkcentral/firebolt-native-transport

  • Commit: 2a0b0b9

Report detail: gist'

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 20 out of 20 changed files in this pull request and generated no new comments.

@rdkcmf-jenkins
Copy link
Copy Markdown
Contributor

b'## WARNING: A Blackduck scan failure has been waived

A prior failure has been upvoted

  • Upvote reason: ok

  • Commit: 2a0b0b9
    '

@brendanobra brendanobra merged commit 1192f3c into develop May 29, 2026
8 checks passed
@brendanobra brendanobra deleted the feat/actions-api branch May 29, 2026 20:19
@github-actions github-actions Bot locked and limited conversation to collaborators May 29, 2026
@tomasz-blasz
Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 0.6.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants