diff --git a/web/src/components/projects/pm-wizard-common-steps.tsx b/web/src/components/projects/pm-wizard-common-steps.tsx index 2c97c272..6032faef 100644 --- a/web/src/components/projects/pm-wizard-common-steps.tsx +++ b/web/src/components/projects/pm-wizard-common-steps.tsx @@ -57,6 +57,71 @@ function CopyButton({ text }: { text: string }) { ); } +// ============================================================================ +// LinearWebhookInfoPanel +// ============================================================================ + +export function LinearWebhookInfoPanel({ webhookUrl }: { webhookUrl: string }) { + return ( +
+ Manual Webhook Setup Required +
++ Linear webhooks must be configured manually in your Linear team settings. CASCADE + cannot create them programmatically. +
+Setup instructions:
+LINEAR_WEBHOOK_SECRET in
+ project credentials
+ + Enter your Linear API key. This will be saved securely to the project. +
++ Generate a Personal API key at{' '} + + linear.app/settings/api + +
++ Map each CASCADE status to a Linear workflow state in the team. +
+ {state.linearTeamDetails ? ( + LINEAR_STATUS_SLOTS.map((slot) => ( ++ Select a team first to populate status options. +
+ )} ++ CASCADE label names used in Linear. These are created automatically by CASCADE. +
+ {LINEAR_LABEL_SLOTS.map((slot) => ( +