Skip to content

Merge feature/rum-operation-integration into develop#133

Merged
ambushwork merged 15 commits into
developfrom
valpertui/feature/rum-operation-integration
Mar 9, 2026
Merged

Merge feature/rum-operation-integration into develop#133
ambushwork merged 15 commits into
developfrom
valpertui/feature/rum-operation-integration

Conversation

@ambushwork

Copy link
Copy Markdown
Member

What does this PR do?

Merge feature/rum-operation-integration into develop

Review checklist (to be filled by reviewers)

  • Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
  • Make sure you discussed the feature or bugfix with the maintaining team in an Issue
  • Make sure each commit and the PR mention the Issue number (cf the CONTRIBUTING doc)

@ambushwork
ambushwork requested a review from a team as a code owner March 5, 2026 20:22
@kikoveiga

Copy link
Copy Markdown
Contributor

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e2e22f64ee

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread library/components/rum/RumSessionScope.bs
Valpertui and others added 15 commits March 9, 2026 16:32
- Add startFeatureOperation and stopFeatureOperation to RawEvent enum
- Add VitalStepType enum (start, stepEnd, update, retry) with schema-defined string values
- Add FailureReason enum (error, abandoned, other) with schema-defined string values

Co-Authored-By: Claude Opus 4.6 <[email protected]>
- Add startFeatureOperationEvent(name, operationKey, context) returning start event with vitalId
- Add succeedFeatureOperationEvent(name, operationKey, context) returning stop event without failureReason
- Add failFeatureOperationEvent(name, operationKey, failureReason, context) returning stop event with failureReason
- All factories use inline object literals with eventType first, matching existing convention
- UUID generated via CreateObject("roDeviceInfo").GetRandomUUID()

Co-Authored-By: Claude Opus 4.6 <[email protected]>
…spatch for operation methods

- Add 3 field declarations (startOperation, succeedOperation, failOperation) to RumAgent.xml
- Add 3 function declarations to RumAgent.xml interface
- Register 3 field observers in RumAgent.bs init()
- Add 3 dispatch branches in rumAgentLoop() event loop

Co-Authored-By: Claude Opus 4.6 <[email protected]>
…ation helpers

- Add startOperation, succeedOperation, failOperation public methods with input validation
- Add __onStartOperation, __onSucceedOperation, __onFailOperation private handlers
- Add __isValidOperationName, __isValidOperationKey, __isValidFailureReason helpers
- Validate blank names, blank operationKeys, and invalid failureReasons via ddLogError
- Accept invalid (nil) operationKey as valid for unkeyed operations

Co-Authored-By: Claude Opus 4.6 <[email protected]>
- 6 dispatch tests verifying startOperation, succeedOperation, failOperation delegate correctly to RumScope
- 6 validation tests covering blank names, whitespace names, nil keys, blank keys, whitespace keys, and invalid failure reasons

Co-Authored-By: Claude Opus 4.6 <[email protected]>
Add observeFieldScoped registrations and event loop dispatch branches
for startOperation, succeedOperation, and failOperation fields in
RumAgent, along with the corresponding XML field declarations.

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
Implement handleVitalEvent at the session scope level to construct and
write JSON payloads for start/succeed/fail feature operations. Includes:
- Active operation tracking with duplicate-start and missing-operation warnings
- Developer warning when a vital event is emitted without an active view
- Session renewal clears active operation state
- Guard against invalid rumScope before calling handleEvent

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
Add comprehensive tests for handleVitalEvent covering:
- Correct JSON payload construction for start/succeed/fail operations
- Keyed and unkeyed operation tracking
- Duplicate start warnings and missing-operation warnings
- No-active-view fallback behaviour
- Session renewal mid-operation clears state
- Context merging priority, Unicode names, long names, special characters

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
- Add OperationsScreen.xml with LabelList and messageLabel (matches DebugScreen pattern)
- Add OperationsScreen.bs with 7 menu items covering full operation API surface
- Timer-based delays: 2s content load auto-succeed, 1.5s login timeout
- Keyed operation demo with random key generation
- All calls use BrighterScript @. syntax with correct failOperation parameter order
…ation instrumentation

- Add operationsLabel and OperationsScreen component to MainScene.xml
- Update MainScene.bs with full navigation support (init, switchScreen, getScreenByName, getLabelByName, getNextScreen, getPreviousScreen)
- Navigation cycle: Home -> Video -> Network -> Debug -> Operations -> Home
- Add inline startOperation("playbackStart") to VideoScreen on play press
- Add onVideoStateChange: succeedOperation on "playing", failOperation on "error"
- unobserveField after completion to prevent duplicate calls
@ambushwork
ambushwork force-pushed the valpertui/feature/rum-operation-integration branch from e2e22f6 to 3ed9c44 Compare March 9, 2026 15:32
@ambushwork
ambushwork merged commit cdb58fb into develop Mar 9, 2026
8 checks passed
@ambushwork
ambushwork deleted the valpertui/feature/rum-operation-integration branch March 9, 2026 15:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants