feat : RDKEMW-24274-Backport Firebolt AppActions Feature to Ripple - #951
Merged
Merged
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
The OpenRPC contract, advertised actions.start method, and intent state updates require correction before approval.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
Backports Firebolt AppActions intent support to Ripple’s SDK, app manager, and RPC gateway.
Changes:
- Adds intent response modeling, tracking, and event emission.
- Implements and registers
actions.intentandactions.onIntent. - Updates the reference manifest and discovery definitions.
File summaries
| File | Summary | Review findings |
|---|---|---|
examples/reference-manifest/IpStb/firebolt-device-manifest.json |
Advertises Actions methods. | Moderate (3 votes): actions.start has no handler and should be implemented or removed. |
core/sdk/src/api/firebolt/fb_discovery.rs |
Adds the intent event constant. | None. |
core/sdk/src/api/apps.rs |
Adds the intent response model and tests. | None. |
core/main/src/service/apps/delegated_launcher_handler.rs |
Tracks intent IDs and emits events. | Moderate (1 vote): Existing sessions without a new intent can overwrite the previous intent. Moderate (2 votes): Separate locks can expose inconsistent intent data. |
core/main/src/firebolt/mod.rs |
Exposes the Actions handler module. | None. |
core/main/src/firebolt/handlers/actions_rpc.rs |
Implements Actions RPC methods. | None. |
core/main/src/bootstrap/start_fbgateway_step.rs |
Registers the Actions provider. | Critical (2 votes): The OpenRPC contract lacks Actions methods, schemas, and capability metadata, causing gateway requests to be rejected. |
Review details
Suppressed comments (1)
core/main/src/service/apps/delegated_launcher_handler.rs:1197
- For an existing app,
start_sessionpermits a session whoselaunch.intentisNone. This assignment then overwrites the previous intent incurrent_session, whileActions.intentreads only that field; after such an activation the getter no longer returns the most recently received intent and falls back to intentId 0. Preserve the last intent separately or update the stored intent only when the session carries a new one.
platform_state
.app_manager_state
.set_session(&app_id, session.clone());
- Files reviewed: 7/7 changed files
- Comments generated: 3
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
…acquisitions. A concurrent Actions.intent call could observe a new intent with the old ID or vice versa. Fixed by combining both updates into a single apps.write() lock block in new_active_session().
Minimum allowed line rate is |
There was a problem hiding this comment.
🟡 Changes recommended
Three critical issues remain in intent representation and per-app transition ordering.
Get a fresh assessment by requesting another Copilot review.
Review details
- Files reviewed: 7/7 changed files
- Comments generated: 3
- Review effort level: Lite
satlead
approved these changes
Sep 24, 2026
kvfasil
approved these changes
Sep 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
What does this PR add or remove?
Why
Why are these changes needed?
How
How do these changes achieve the goal?
Test
How has this been tested? How can a reviewer test it?
Checklist