feat(feedback): add reply and status tracking for user feedback#3662
Conversation
|
🍹 The Update (preview) for dailydotdev/api/prod (at 79708c3) was successful. ✨ Neo ExplanationThis is a standard application version rollout: all services and cron jobs are being updated to the latest container image, with new database and ClickHouse migration jobs created to handle any schema changes introduced by this release.Root Cause AnalysisA new version of the application has been deployed. Every Kubernetes resource — deployments and cron jobs — is being updated to point to the new container image, replacing the previous build with the latest one. Dependency ChainThe new application version cascades uniformly across all workloads:
Risk AnalysisNo stateful resources (databases, storage, persistent volumes) are being replaced or deleted. The migration jobs are ephemeral by design and follow the existing pattern. All deployment updates are in-place rolling updates, so no downtime is expected. Resource Changes Name Type Operation
~ vpc-native-worker-job-deployment kubernetes:apps/v1:Deployment update
~ vpc-native-update-highlighted-views-cron kubernetes:batch/v1:CronJob update
~ vpc-native-sync-subscription-with-cio-cron kubernetes:batch/v1:CronJob update
~ vpc-native-user-profile-updated-sync-cron kubernetes:batch/v1:CronJob update
~ vpc-native-personalized-digest-cron kubernetes:batch/v1:CronJob update
~ vpc-native-private-deployment kubernetes:apps/v1:Deployment update
~ vpc-native-agents-digest-cron kubernetes:batch/v1:CronJob update
~ vpc-native-user-profile-analytics-clickhouse-cron kubernetes:batch/v1:CronJob update
~ vpc-native-bg-deployment kubernetes:apps/v1:Deployment update
~ vpc-native-squad-posts-analytics-refresh-cron kubernetes:batch/v1:CronJob update
~ vpc-native-update-current-streak-cron kubernetes:batch/v1:CronJob update
- vpc-native-api-clickhouse-migration-b8e7e866 kubernetes:batch/v1:Job delete
~ vpc-native-clean-gifted-plus-cron kubernetes:batch/v1:CronJob update
~ vpc-native-update-views-cron kubernetes:batch/v1:CronJob update
+ vpc-native-api-clickhouse-migration-0e13857d kubernetes:batch/v1:Job create
~ vpc-native-generate-search-invites-cron kubernetes:batch/v1:CronJob update
~ vpc-native-check-analytics-report-cron kubernetes:batch/v1:CronJob update
~ vpc-native-clean-zombie-users-cron kubernetes:batch/v1:CronJob update
~ vpc-native-update-achievement-rarity-cron kubernetes:batch/v1:CronJob update
~ vpc-native-personalized-digest-deployment kubernetes:apps/v1:Deployment update
+ vpc-native-api-db-migration-0e13857d kubernetes:batch/v1:Job create
~ vpc-native-update-tag-recommendations-cron kubernetes:batch/v1:CronJob update
~ vpc-native-clean-zombie-opportunities-cron kubernetes:batch/v1:CronJob update
~ vpc-native-daily-digest-cron kubernetes:batch/v1:CronJob update
~ vpc-native-generic-referral-reminder-cron kubernetes:batch/v1:CronJob update
~ vpc-native-clean-zombie-images-cron kubernetes:batch/v1:CronJob update
~ vpc-native-clean-stale-user-transactions-cron kubernetes:batch/v1:CronJob update
~ vpc-native-calculate-top-readers-cron kubernetes:batch/v1:CronJob update
~ vpc-native-user-posts-analytics-refresh-cron kubernetes:batch/v1:CronJob update
~ vpc-native-post-analytics-history-day-clickhouse-cron kubernetes:batch/v1:CronJob update
~ vpc-native-deployment kubernetes:apps/v1:Deployment update
~ vpc-native-update-tags-str-cron kubernetes:batch/v1:CronJob update
~ vpc-native-post-analytics-clickhouse-cron kubernetes:batch/v1:CronJob update
~ vpc-native-user-profile-analytics-history-clickhouse-cron kubernetes:batch/v1:CronJob update
~ vpc-native-expire-super-agent-trial-cron kubernetes:batch/v1:CronJob update
~ vpc-native-ws-deployment kubernetes:apps/v1:Deployment update
~ vpc-native-validate-active-users-cron kubernetes:batch/v1:CronJob update
~ vpc-native-hourly-notification-cron kubernetes:batch/v1:CronJob update
~ vpc-native-update-source-public-threshold-cron kubernetes:batch/v1:CronJob update
- vpc-native-api-db-migration-b8e7e866 kubernetes:batch/v1:Job delete
~ vpc-native-clean-zombie-user-companies-cron kubernetes:batch/v1:CronJob update
... and 5 other changes |
src/common/mailing.ts
Outdated
| OrganizationMemberJoined = '76', | ||
| OrganizationMemberLeft = '77', | ||
| OrganizationMemberRemoved = '78', | ||
| FeedbackReply = '79', |
|
@claude can you fix circleCI issues |
|
Claude finished @rebelchris's task in 10m 20s —— View job Fixing CircleCI Issues
Root cause: Fix: Added a type assertion |
CioTransactionalMessageTemplateId.FeedbackReply = null is a placeholder until the Customer.io template is created. The type assertion lets TypeScript compile while keeping the null semantic in the enum. Co-authored-by: Chris Bongers <rebelchris@users.noreply.github.com>
|
@claude linting still fails, please fix |
|
Claude finished @rebelchris's task in 9m 56s —— View job Fixing Linting Issues
Root cause: Fix applied in two files:
Once a real Customer.io template ID is created, just update |
Replace null (invalid in TypeScript string enum) with empty string, and guard sendEmail call so email is skipped until a real template ID is assigned. Co-authored-by: Chris Bongers <rebelchris@users.noreply.github.com>
capJavert
left a comment
There was a problem hiding this comment.
Did not look at specifics but flow wise looks ok.
|
@claude fix lint issues |
|
Claude finished @rebelchris's task in 12m 58s —— View job Fixing Lint Issues
Root cause: In Fix: Added |
TypeScript strict mode rejects assigning `number` to `FeedbackStatus` enum type in the `where` clause. Fix by typing the resolver args with the correct enum types and importing `UserFeedbackCategory`. Co-authored-by: Chris Bongers <rebelchris@users.noreply.github.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
|
@claude lint still fails?? |
|
Claude finished @rebelchris's task in 9m 36s —— View job Fixing Lint Issues
Root cause: Fix: Changed |
All other files in the codebase import from 'zod' directly, not the 'zod/v4' subpath. Aligns with the consistent import pattern. Co-authored-by: Chris Bongers <rebelchris@users.noreply.github.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
|
@claude stop screwing up this is the lint error it's easy peasy fix it! /home/circleci/project/src/routes/webhooks/linear.ts ✖ 1 problem (1 error, 0 warnings) |
|
Claude finished @rebelchris's task in 34s —— View job Fixed Prettier Formatting
Line 141 had |
Co-authored-by: Chris Bongers <rebelchris@users.noreply.github.com> Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Summary
FeedbackReplypersistence with author metadata and expose replies in feedback GraphQL responses@replycomments, store replies, and send Customer.io transactional emails/settings/feedbackfeedbackListquery and authenticateduserFeedbackquery with cursor pagination and filtersKey decisions
reply_touse and not exposed through GraphQLCloses ENG-855
Created by Huginn 🐦⬛