FeedbackRepositoryImpl
class FeedbackRepositoryImpl(apiClient: MCPFeedbackAPIClient, enricherProvider: () -> PayloadEnricher? = { runCatching { SdkContext.payloadEnricher() }.getOrNull() }) : FeedbackRepository
:sdk-networking implementation of FeedbackRepository. Calls the suspending MCPFeedbackAPIClient.submitFeedback directly — Plan 32-04 eliminated the prior suspendCancellableCoroutine bridge along with the Handler/Thread transport in APIClient.
DTO mapping rules:
FeedbackRequest.message→FeedbackData.title(fallback; overridable via metadata"title")Optional metadata keys recognized: "title", "details", "severity", "feedback_type", "reporter_email". Unknown keys pass through in the
metadataDTO field.screenshotPngBytes→ base64-encoded asscreenshotBase64(API expects base64).FeedbackResponse.feedbackId→FeedbackReceipt.id.
Threat T-32-07: _submissions only retains receipts — never the request payload.
Constructors
Link copied to clipboard
constructor(apiClient: MCPFeedbackAPIClient, enricherProvider: () -> PayloadEnricher? = { runCatching { SdkContext.payloadEnricher() }.getOrNull() })