fix(store): update task-refactor with latest next 27th May#688
fix(store): update task-refactor with latest next 27th May#688Shreyas281299 wants to merge 31 commits into
Conversation
…able releases (webex#661) Co-authored-by: Bharath Balan <62698609+bhabalan@users.noreply.github.com> Co-authored-by: Kesava Krishnan Madavan <mkesavan13@gmail.com>
Co-authored-by: Shreyas Sharma <shreyassharma9912@gmail.com> Co-authored-by: Shreyas Sharma <72344404+Shreyas281299@users.noreply.github.com>
Co-authored-by: molker <molker@cisco.com>
Co-authored-by: Kesava Krishnan Madavan <mkesavan13@gmail.com>
Co-authored-by: ciscoRankush <ciscoRankush@users.noreply.github.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Rankush Kumar <rankkuma+cisco@cisco.com>
…coverage, and bug-fix pipeline (webex#636) Co-authored-by: Kesava Krishnan Madavan <mkesavan13@gmail.com>
…on [PSIRT-0974799192] (webex#676) Co-authored-by: Bharath Balan <62698609+bhabalan@users.noreply.github.com>
Co-authored-by: Christina Mullen <chrmulle@cisco.com>
…gn Select/Option (webex#665)
Co-authored-by: Matthew Olker <molker@cisco.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b68e6448d8
ℹ️ 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".
| // Inbound: ani = caller's number, dn = entry point dialed by caller | ||
| // Outdial: ani = agent's originating number (entry point), dn = customer's dialed number | ||
| const outboundType = currentTask?.data?.interaction?.outboundType; | ||
| const callerNumber = getCallerIdentifier(ani, dn, outboundType); |
There was a problem hiding this comment.
| CallControlComponentProps, | ||
| CallAssociatedDataMap, | ||
| getCallerIdentifier, | ||
| CallAssociatedDataMap, |
There was a problem hiding this comment.
Remove the duplicate imported symbol
CallAssociatedDataMap is now listed twice in the same import declaration, which creates a duplicate local binding and blocks TypeScript/Babel parsing of this module. Please keep a single import for each symbol before shipping this change.
Useful? React with 👍 / 👎.
| return liveTranscriptEntries; | ||
| } | ||
|
|
||
| return transcriptLines.map((line) => mapTranscriptLineToEntry(line, currentTaskId)); |
There was a problem hiding this comment.
Scope transcript rows to the active task
When an agent switches from one active task to another, store.realtimeTranscriptionData is not cleared by setCurrentTask, and this hook maps every stored transcript line to whatever currentTaskId is currently selected. That makes live transcript text from the previous call appear under the newly selected task until the old task is removed; filter/store transcript data by interaction/conversation before rendering it.
Useful? React with 👍 / 👎.
Co-authored-by: Christina Mullen <chrmulle@cisco.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ffb2ebfd68
ℹ️ 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".
| deviceType, | ||
| featureFlags, |
There was a problem hiding this comment.
Remove undefined call-control options
When CallControlInternal renders, these shorthand properties read deviceType and featureFlags, but neither name is declared in this module or destructured from store. That makes the widget fail to compile (or throw a ReferenceError before reaching the current-task guard in non-typechecked builds); these values are not part of useCallControlProps, so drop them or define them before passing props.
Useful? React with 👍 / 👎.
| deviceType, | ||
| featureFlags, |
There was a problem hiding this comment.
Remove undefined CAD call-control options
When CallControlCADInternal renders, these shorthand properties reference deviceType and featureFlags, but this file never declares them or pulls them from store. That blocks the task package build (or throws at render time before the null-task guard in non-typechecked builds); since useCallControl does not consume these props, remove them or explicitly define them.
Useful? React with 👍 / 👎.
| export function isCampaignPreviewTask(task: ITask): boolean { | ||
| const interaction = task.data?.interaction; | ||
| if (!interaction) return false; | ||
| const outboundType = interaction.outboundType ?? ''; | ||
| const cpd = interaction.callProcessingDetails as unknown as CampaignCallProcessingDetails; | ||
| const campaignType = cpd?.campaignType ?? ''; | ||
|
|
||
| return ( | ||
| CAMPAIGN_PREVIEW_OUTBOUND_TYPES.includes(outboundType) || CAMPAIGN_PREVIEW_CAMPAIGN_TYPES.includes(campaignType) |
There was a problem hiding this comment.
Import the campaign utility dependencies
This new exported helper uses ITask, CampaignCallProcessingDetails, and the campaign preview constants, but task-util.ts still only imports Interaction. Any import of isUnacceptedCampaignPreview (now used by both call-control widgets) therefore fails the task package build with unresolved symbols before the campaign-preview guard can work.
Useful? React with 👍 / 👎.
| const campaignType = cpd?.campaignType ?? ''; | ||
|
|
||
| return ( | ||
| CAMPAIGN_PREVIEW_OUTBOUND_TYPES.includes(outboundType) || CAMPAIGN_PREVIEW_CAMPAIGN_TYPES.includes(campaignType) |
There was a problem hiding this comment.
Import the outbound campaign constants
The predicate now checks CAMPAIGN_PREVIEW_OUTBOUND_TYPES, but the import at the top of this file only brings in CAMPAIGN_PREVIEW_CAMPAIGN_TYPES. Building or rendering TaskList with this module will fail on the unresolved constant, so import it from @webex/cc-store alongside the campaign-type constants.
Useful? React with 👍 / 👎.
…#695) Co-authored-by: Zach Raymer <zraymer@cisco.com> Co-authored-by: Kesava Krishnan Madavan <mkesavan13@gmail.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e0477fb904
ℹ️ 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".
| } else if (latestGlobalVariables.length > 0) { | ||
| globalVariablesRef.current = latestGlobalVariables; |
There was a problem hiding this comment.
Clear cached campaign variables on contact updates
When a preview contact is skipped or removed and the SDK updates the same interaction with the next contact, this branch keeps globalVariablesRef whenever the new snapshot has no agent-viewable globals (or temporarily omits callAssociatedData). The component already detects same-task contact changes via campaignPreviewOfferTimeout, but because the interaction id does not change, the CAD panel can continue showing the previous customer's global variables on the new preview contact. Reset the cached variables when the contact/timeout changes, not only when a new interaction id appears.
Useful? React with 👍 / 👎.
| if (versionB === stableVersion) { | ||
| versionsToUse = [stableVersion]; |
There was a problem hiding this comment.
Include prereleases when the target is a stable version
When comparing across stable trains and the target selector is the exact stable version (for example 1.28.0-next.10 → 1.29.0), this branch limits the end train to [stableVersion]. That skips all prerelease entries in the target train, so the commit history under-reports the changes that led up to the stable release. Include the target train's prereleases up to the stable release as well (and the stable entry if it has distinct commits).
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7edb129acd
ℹ️ 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".
| if (isCampaignPreview) { | ||
| this.setState({ | ||
| developerName: RESERVED_LABEL, | ||
| name: RESERVED_USERNAME, | ||
| }); |
There was a problem hiding this comment.
Mark accepted previews before leaving RESERVED
For the task-level campaign preview reservation event, acceptedCampaignIds is the source of truth used by setCurrentTask and isUnacceptedCampaignPreview to allow call controls after the preview is accepted, but this branch only keeps preview campaigns in RESERVED and never records the interaction as accepted. When a standard/direct preview is accepted, the same interaction remains treated as unaccepted, so CallControl stays hidden and the campaign row keeps pending behavior; add the interaction id and transition the accepted preview to ENGAGED on this path.
Useful? React with 👍 / 👎.
| if (callProcessingDetails) { | ||
| const {isPaused} = callProcessingDetails; | ||
| setIsRecording(!isPaused); | ||
| setIsRecording(isPaused !== 'true'); |
There was a problem hiding this comment.
Treat boolean paused state as paused
If the SDK supplies callProcessingDetails.isPaused as boolean true (the previous implementation handled booleans, and the local fixtures still use boolean values), this string-only comparison evaluates to true and the UI reports recording as active while it is actually paused. Handle both true and 'true' here so the recording button state stays correct across SDK payload shapes.
Useful? React with 👍 / 👎.
| const numA = parseInt(versionASpecific.match(/\.(\d+)$/)?.[1] || '0', 10); | ||
| const numB = parseInt(versionBSpecific.match(/\.(\d+)$/)?.[1] || '0', 10); | ||
| if (numA > numB) { | ||
| alert('Base pre-release version must be older than target pre-release version'); |
There was a problem hiding this comment.
Allow prerelease-to-stable comparisons
When comparing within the same stable train and the target dropdown is the stable release, for example 1.28.0-next.10 → 1.28.0, this parses the stable target's patch number as 0, so numA > numB rejects a valid comparison even though the stable release comes after its prereleases. Treat an exact stable target as the end of the train instead of comparing its patch segment as a prerelease number.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c4a0547221
ℹ️ 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".
| on: | ||
| push: | ||
| branches: # Allow list of deployable tags and branches. Note that all allow-listed branches cannot include any `/` characters | ||
| <<<<<<< next-in-task-refactor |
There was a problem hiding this comment.
Remove conflict markers from deploy workflow
This leaves an unresolved merge-conflict marker in .github/workflows/deploy.yml, so the workflow file is not valid GitHub Actions YAML and the Deploy CD workflow will be rejected/disabled for pushes to the release branches instead of publishing packages. Resolve the branch list to real - next/- task-refactor entries and remove the surrounding conflict markers.
Useful? React with 👍 / 👎.
COMPLETES #N/A
This pull request addresses
This PR brings the task-refactor branch up to date with the latest
nextchanges and completes the Contact Center task-refactor work needed for campaign preview support. It addresses campaign preview task visibility, reserved/engaged state handling, incoming notification dismissal, campaign timer consistency, campaign call control visibility, hydrate behavior, wrap-up handling, and supporting task UI updates.by making the following changes
Change Type
The following scenarios were tested
deviceTypereference error.@webex/event-dictionary-tstype/dependency resolution issue.The GAI Coding Policy And Copyright Annotation Best Practices
Checklist before merging
Make sure to have followed the contributing guidelines before submitting.