Skip to content

feat(ccwidgets): Real Time Transcript Widget Implementation#653

Merged
Kesari3008 merged 9 commits intowebex:rttfrom
Kesari3008:WXCC-13856-Real-TimeTranscript-Widget-UI
Mar 30, 2026
Merged

feat(ccwidgets): Real Time Transcript Widget Implementation#653
Kesari3008 merged 9 commits intowebex:rttfrom
Kesari3008:WXCC-13856-Real-TimeTranscript-Widget-UI

Conversation

@Kesari3008
Copy link
Copy Markdown
Contributor

@Kesari3008 Kesari3008 commented Mar 12, 2026

COMPLETES #https://jira-eng-sjc12.cisco.com/jira/browse/WXCC-13856

This pull request addresses

Implemented Realtime Transcript Widget

by making the following changes

Added new presentational component for real time transcript widgets, update store to listen for real time transcription event and pass the payload to the presentational component.

Consuming Realtime Transcript Widget:

import {RealtimeTranscript} from '@webex/cc-widgets';

<RealtimeTranscript /> 

Change Type

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update
  • Tooling change
  • Internal code refactor

The following scenarios were tested

  • The testing is done with the amplify link
Screenshot 2026-03-30 at 10 15 56 AM

The GAI Coding Policy And Copyright Annotation Best Practices

  • GAI was not used (or, no additional notation is required)
  • Code was generated entirely by GAI
  • GAI was used to create a draft that was subsequently customized or modified
  • Coder created a draft manually that was non-substantively modified by GAI (e.g., refactoring was performed by GAI on manually written code)
  • Tool used for AI assistance (GitHub Copilot / Other - specify)
    • Github Copilot
    • Other - Please Specify
  • This PR is related to
    • Feature
    • Defect fix
    • Tech Debt
    • Automation

Checklist before merging

  • I have not skipped any automated checks
  • All existing and new tests passed
  • I have updated the testing document
  • I have tested the functionality with amplify link

Make sure to have followed the contributing guidelines before submitting.

@Kesari3008 Kesari3008 requested a review from a team as a code owner March 12, 2026 19:39
@Kesari3008 Kesari3008 added the validated Indicates that the PR is ready for actions label Mar 12, 2026
@aws-amplify-us-east-2
Copy link
Copy Markdown

This pull request is automatically being deployed by Amplify Hosting (learn more).

Access this pull request here: https://pr-653.d1b38q61t1z947.amplifyapp.com

Copy link
Copy Markdown

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

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: e0b5f701a7

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

role="tab"
aria-selected={activeTab === 'ivr'}
className={`task-transcript__tab ${activeTab === 'ivr' ? 'task-transcript__tab--active' : ''}`.trim()}
onClick={() => onTabChange?.('ivr')}
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Persist transcript tab selection on tab click

The tab buttons only invoke onTabChange and never update any internal state, while activeTab is defaulted to 'live'. In the default widget flow (TaskTranscript + useTaskTranscript), this means clicking “IVR transcript” does not actually switch the rendered content unless the host app builds its own controlled-state loop; for typical usage (especially plain web-component embedding), the IVR tab is effectively unusable.

Useful? React with 👍 / 👎.

@Kesari3008 Kesari3008 changed the base branch from next to rtt March 30, 2026 05:03
Copy link
Copy Markdown

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

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: 7f87e7002f

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment on lines +629 to +630
this.realtimeTranscriptionListeners[taskId] = (payload: NonNullable<RealtimeTranscriptionEventPayload['data']>) =>
this.handleRealtimeTranscription(payload);
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Tag realtime transcript events with task identity

This listener forwards REAL_TIME_TRANSCRIPTION payloads without the taskId, so handleRealtimeTranscription appends all transcript lines into one global list with no way to separate tasks. In multi-task sessions (for example consult/conference flows or when switching selected tasks), the widget can display transcript lines from a different interaction because the downstream hook consumes store.realtimeTranscriptLines as a single stream.

Useful? React with 👍 / 👎.

onTabChange,
className,
}) => {
console.log('pkesari_from component liveTranscriptEntries', liveTranscriptEntries);
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Remove transcript payload logging from render path

This console.log emits full live transcript entries on every render, which can expose customer conversation content in browser/devtools logs and external log collection pipelines. Since this component renders production transcript data, logging raw entries here creates an avoidable privacy and compliance risk.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown

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

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: 8b427150fa

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment on lines 5 to 6
pull_request_target:
branches:
- next

types: [opened, labeled, reopened, synchronize]
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Reintroduce base-branch restriction for pull_request_target

This change makes pull_request_target run for every base branch, but this workflow still exposes many secrets at workflow scope and checks out ${{ github.event.pull_request.head.sha }} before running repository scripts. That combination executes untrusted PR code with privileged secrets on any targeted branch, which materially expands secret-exfiltration exposure compared with the previous next-only scope. Please restore a branches allowlist (or move untrusted execution to pull_request) so privileged runs stay limited to intended targets.

Useful? React with 👍 / 👎.

@Kesari3008 Kesari3008 merged commit f75a3c0 into webex:rtt Mar 30, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

validated Indicates that the PR is ready for actions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants