Conversation
There was a problem hiding this comment.
Pull request overview
This PR adds first-class support for Teams “feedback loop” configuration, including a new feedbackLoop channelData shape (default vs custom) and the associated message/fetchTask invoke path needed for custom feedback task modules.
Changes:
- Introduces
ChannelData.feedbackLoop(andFeedbackLoopmodel) while keepingfeedbackLoopEnabledas a legacy alias. - Adds normalization logic in
Activity.withChannelData()and extendsActivity.addFeedback()to support'default' | 'custom'modes, with updated tests. - Adds routing/type support for the
message/fetchTaskinvoke (aliases + response typing) and updates devtools’ feedback detection.
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| packages/devtools/src/stores/ChatStore.ts | Treats channelData.feedbackLoop as enabling feedback in the devtools UI state. |
| packages/apps/src/routes/invoke/index.ts | Adds invoke alias mapping for message/fetchTask → message.fetch-task. |
| packages/apps/src/router/router.spec.ts | Adds coverage ensuring message/fetchTask selects both invoke and message.fetch-task routes. |
| packages/api/src/models/invoke-response.ts | Types message/fetchTask invoke responses as TaskModuleResponse. |
| packages/api/src/models/channel-data/index.ts | Adds feedbackLoop to ChannelData and documents legacy feedbackLoopEnabled. |
| packages/api/src/models/channel-data/feedback-loop.ts | Introduces FeedbackLoop model type (default/custom). |
| packages/api/src/activities/invoke/message/index.ts | Extends message invoke activity union to include fetch-task. |
| packages/api/src/activities/invoke/message/fetch-task.ts | Adds typed representation of the message/fetchTask invoke payload. |
| packages/api/src/activities/activity.ts | Normalizes legacy feedback flag into feedbackLoop; adds addFeedback(mode) support. |
| packages/api/src/activities/activity.spec.ts | Adds test coverage for normalization and custom/default feedback modes. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
heyitsaamir
left a comment
There was a problem hiding this comment.
Any examples you wanna show? The PR description has one
| /** | ||
| * The feedback button the user clicked. | ||
| */ | ||
| reaction: 'like' | 'dislike'; |
There was a problem hiding this comment.
hm this didn't exist before? i thought we had some examples showing this
There was a problem hiding this comment.
you're probably thinking of this one -
but different invoke activity (this is for default)
corinagum
left a comment
There was a problem hiding this comment.
lgtm! just a couple question/nit comments
Custom Feedback Context:
Learn Doc
feedbackLoopEnabledwhich only enables the default feedback formfeedbackLoopthat can either be default or custom.feedbackLoopwhen usingwithChannelData..