feat(claw): add channel pairing step to onboarding for Telegram/Discord#1391
Draft
feat(claw): add channel pairing step to onboarding for Telegram/Discord#1391
Conversation
After provisioning completes, users who selected Telegram or Discord are shown an inline pairing step that polls for incoming pairing requests and lets them approve with a button. Slack skips this step since it has no dmPolicy/pairing mechanism. - New ChannelPairingStep component with channel-specific instructions - ClawDashboard captures selectedChannelId and routes to pairing step - ProvisioningStep accepts dynamic totalSteps (4 or 5)
Extract ChannelPairingStepView as a pure visual component (no hooks) following the ProvisioningStep/ProvisioningStepView pattern. Stories cover both channels, waiting/request/approving/loading states.
Replace instruction card + dashed polling box with a centered spinner, heading, and subtitle matching the provisioning step style. Title now reads 'Pair your Telegram/Discord bot'. Skip button uses subdued opacity. Step indicator stays left-aligned.
Show pairing code prominently with user ID, full-width authorize button, and decline link. Remove dead imports and JSX comments. Add cursor-pointer to all interactive elements.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
dmPolicy/pairing mechanism — its flow remains 4 stepsuseKiloClawPairing+useRefreshPairinghooks with a 5-secondsetIntervalto bust the KV cache and get fresh requests into the shared query cacheVerification
pnpm typecheck— passespnpm format— passes (oxfmt)pnpm lint— passes (pre-push hook ran successfully)Visual Changes
New onboarding step shown after provisioning for Telegram/Discord users. No changes to existing screens.
Reviewer Notes
useKiloClawPairing+useRefreshPairing(same hooks thatPairingCardin Settings uses), so approving from either location stays in syncChannelSelectionStepViewstill hardcodestotalSteps={4}— there's a visual jump from 4 dots to 5 dots when transitioning to provisioning for Telegram/Discord. This is acceptable since users never see both steps simultaneously, but could be refined in a follow-upProvisioningStepViewtotalStepsprop defaults to 4 so Storybook stories continue working without changes