Skip to content

refactor(kiloclaw): replace react-rewards with canvas-confetti#1387

Draft
RSO wants to merge 1 commit intomainfrom
RSO/confetti-when-done
Draft

refactor(kiloclaw): replace react-rewards with canvas-confetti#1387
RSO wants to merge 1 commit intomainfrom
RSO/confetti-when-done

Conversation

@RSO
Copy link
Contributor

@RSO RSO commented Mar 23, 2026

Summary

  • Replace react-rewards with canvas-confetti for the KiloClaw completion step animation
  • Extract the inline completion UI from ClawDashboard.tsx into a dedicated CompletionStep component
  • Add the Magic UI confetti component (src/components/magicui/confetti.tsx) via the shadcn registry for future reuse
  • Register the @magicui registry in components.json
  • Remove react-rewards dependency (only consumer was CompletionStep)
  • Add canvas-confetti + @types/canvas-confetti as replacements
  • Add pnpm override for @types/pg@^8.18.0 to prevent duplicate drizzle-orm resolutions
  • Add a Storybook story for the new CompletionStep component

Verification

  • pnpm typecheck -- passes (fixed duplicate drizzle-orm resolution via @types/pg override)
  • oxfmt --list-different . -- passes
  • oxlint + eslint -- passes

Visual Changes

Reviewer Notes

The confetti animation style changed from emoji-based (crab emojis from center) to a side-cannons effect (colorful confetti from bottom corners for 3 seconds). The @magicui/confetti component was installed but CompletionStep uses canvas-confetti directly since the side-cannons pattern doesn't need the wrapper component -- the component is available for other future uses.

Adding canvas-confetti caused @opentelemetry/instrumentation-pg to pull in @types/pg@8.15.6 alongside the existing @types/pg@8.18.0, which created a second drizzle-orm instance with incompatible private types. The pnpm override for @types/pg@^8.18.0 forces a single resolution.

…mpletion animation

Extract CompletionStep into its own component and replace the react-rewards
emoji confetti with canvas-confetti side cannons animation. Add the Magic UI
confetti component via shadcn registry for future reuse.

- Remove react-rewards dependency
- Add canvas-confetti + @types/canvas-confetti
- Add @magicui/confetti component to src/components/magicui/
- Extract inline completion UI from ClawDashboard into CompletionStep
- Add CompletionStep storybook story
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant