feat(ccwidgets): Real Time Transcript Widget Implementation#653
Conversation
|
This pull request is automatically being deployed by Amplify Hosting (learn more). |
There was a problem hiding this comment.
💡 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')} |
There was a problem hiding this comment.
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 👍 / 👎.
There was a problem hiding this comment.
💡 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".
| this.realtimeTranscriptionListeners[taskId] = (payload: NonNullable<RealtimeTranscriptionEventPayload['data']>) => | ||
| this.handleRealtimeTranscription(payload); |
There was a problem hiding this comment.
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); |
There was a problem hiding this comment.
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 👍 / 👎.
There was a problem hiding this comment.
💡 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".
| pull_request_target: | ||
| branches: | ||
| - next | ||
|
|
||
| types: [opened, labeled, reopened, synchronize] |
There was a problem hiding this comment.
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 👍 / 👎.
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:
Change Type
The following scenarios were tested
The GAI Coding Policy And Copyright Annotation Best Practices
Checklist before merging
Make sure to have followed the contributing guidelines before submitting.