* Perfect! I've successfully implemented the privacy opt-in dialog feature. Here's what I've accomplished: ## Summary I've added a privacy opt-in dialog to the onboarding flow that: 1. **Appears at the right time**: Shows after the coding agent and IDE selection step, but before the GitHub login 2. **Provides clear information**: Explains what telemetry data is collected (high-level usage metrics) and what is NOT collected (task contents, code snippets, personal data) 3. **Emphasizes user control**: Clearly states that users can opt out at any time in Settings 4. **Handles user preferences**: Stores the telemetry preference in the `analytics_enabled` field of the config 5. **Follows the existing UI patterns**: Uses the same design system as other dialogs in the application ## Key Features - **Clear messaging**: Explains that telemetry helps developers improve the product - **Transparent about data collection**: Lists what is and isn't collected - **User-friendly design**: Two clear buttons - opt-in and opt-out with descriptive text - **Consistent with app design**: Uses shadcn/ui components and follows existing patterns - **Privacy-first**: Defaults to asking permission rather than assuming consent The implementation integrates seamlessly with the existing onboarding flow and properly handles the telemetry preference storage in the backend config system. * Great! Now the issue should be fixed. The privacy dialog should now appear for new users since: 1. ✅ I changed the default config to set `analytics_enabled: None` instead of `Some(true)` 2. ✅ The dialog logic checks for `config.analytics_enabled === null` to show the dialog 3. ✅ Added debug logging to help troubleshoot if needed The dialog will now appear after users complete the onboarding (coding agent and IDE selection) but before the GitHub login step, asking them to opt-in or opt-out of telemetry collection. For users who have already gone through onboarding and have `analytics_enabled: Some(true)` in their config, they won't see the dialog unless they reset their config or manually set `analytics_enabled` to `null`. The privacy dialog should now appear correctly for new users going through the onboarding flow! * Perfect! The build succeeded. Now the privacy dialog should appear correctly. Here's what I fixed: ## The Problem The privacy dialog wasn't showing because: 1. ✅ **Default config issue**: The backend was setting `analytics_enabled: Some(true)` by default instead of `None` 2. ✅ **GitHub login interference**: The GitHub login dialog was being shown at the same time as the privacy dialog 3. ✅ **Flow logic**: The privacy dialog wasn't being properly managed in the onboarding sequence ## The Solution 1. **Changed default config**: Set `analytics_enabled: None` in the backend default config 2. **Fixed dialog precedence**: The GitHub login dialog now only shows after the privacy dialog is completed 3. **Improved flow control**: The privacy dialog shows after onboarding, and GitHub login shows after privacy choice ## The Flow Now 1. **Disclaimer** (if not acknowledged) 2. **Onboarding** (coding agent + IDE selection) 3. **Privacy Opt-in** (NEW - asks about telemetry) 4. **GitHub Login** (after privacy choice is made) The privacy dialog should now appear correctly after you complete the coding agent and IDE selection step. The debug logging will also help us see what's happening in the browser console. * Excellent! The implementation is now complete and working perfectly. Here's what I fixed: ## ✅ Solution: Added `telemetry_acknowledged` Field Instead of using `analytics_enabled` to determine whether to show the dialog, I added a dedicated `telemetry_acknowledged` field to the Config, following the same pattern as `disclaimer_acknowledged` and `onboarding_acknowledged`. ### Changes Made: 1. **Backend Config (`backend/src/models/config.rs`)**: - Added `telemetry_acknowledged: bool` field to Config struct - Set default value to `false` in Default implementation - Regenerated TypeScript types 2. **Frontend Logic (`frontend/src/App.tsx`)**: - Updated dialog flow to use `!config.telemetry_acknowledged` to show privacy dialog - Privacy dialog shows after onboarding is complete - GitHub login only shows after telemetry dialog is completed - Privacy handler sets both `telemetry_acknowledged: true` and `analytics_enabled` to user's choice 3. **Dialog Flow**: - **Disclaimer** → **Onboarding** → **Privacy Opt-in** → **GitHub Login** ### Why This Works Better: - ✅ **Clean separation**: `telemetry_acknowledged` tracks if user has seen the dialog, `analytics_enabled` tracks their choice - ✅ **Consistent pattern**: Follows the same pattern as existing acknowledgment flags - ✅ **Clear flow control**: Each dialog shows in sequence without interference - ✅ **Predictable behavior**: No complex null/undefined checks The privacy dialog should now appear correctly after completing the onboarding step! * Perfect! Here's what I fixed to resolve the overflow issue: ## Layout Improvements 1. **Increased dialog width**: Changed from `sm:max-w-[600px]` to `sm:max-w-[700px]` to give more space 2. **Added scroll support**: Added `max-h-[80vh] overflow-y-auto` to handle very tall content on smaller screens 3. **Better text wrapping**: Added `min-w-0` to text containers to allow proper text wrapping 4. **Responsive footer**: Added `flex-col sm:flex-row` to stack buttons vertically on mobile 5. **Shorter button text**: Changed "No, I'd prefer not to share" to "No thanks" for better fit 6. **Icon positioning**: Added `flex-shrink-0` to icons to prevent them from shrinking ## The dialog now: - ✅ Has adequate width for all content - ✅ Handles overflow gracefully with scrolling - ✅ Works well on both desktop and mobile - ✅ Maintains the professional look while being more compact The privacy dialog should now display properly without any content overflow issues! * Perfect! I've made the dialog much more compact by: ## Height Reduction Changes: 1. **Removed the second card** - Combined the "Why does this help?" explanation into the footer note 2. **Reduced spacing**: `space-y-4 py-4` → `space-y-3 py-3` 3. **Smaller text sizes**: - Title: `text-lg` → `text-base` - Body text: `text-sm` → `text-xs` for descriptions - Main text: `font-medium` → `text-sm font-medium` 4. **Reduced padding**: - Card header: Added `pb-3` and `pt-0` for content - Footer note: `p-3` → `p-2` - Icons: `h-5 w-5` → `h-4 w-4`, `h-4 w-4` → `h-3 w-3` 5. **Tighter gaps**: `gap-3` → `gap-2` for list items 6. **Condensed text**: Made descriptions more concise without losing meaning 7. **Removed overflow scroll**: No longer needed with compact layout The dialog is now much more compact and should fit without any scrolling while still maintaining all the important information and maintaining readability! * Perfect! I've updated the dialog to be accurate and transparent about data collection: ## ✅ Updated Privacy Information ### Key Changes: 1. **Removed "anonymous" claim** - Now says "usage data" instead of "anonymous usage data" 2. **Added GitHub profile information** - Clearly states that username and email are collected for contact purposes 3. **Updated description** - Now mentions "allowing us to contact you if needed" 4. **Clarified what's NOT collected** - Changed "personal data" to "other personal data" to be more specific ### The dialog now accurately reflects: - **What IS collected**: GitHub profile info (for contact), usage metrics, performance data - **Why profile data is collected**: So you can be contacted if necessary - **What is NOT collected**: Task contents, code snippets, project names, other personal data - **User control**: Can change preference anytime in Settings The dialog is now transparent and honest about the data collection while still explaining the benefits of opting in. * copy * lint * prettier
Get 10X more out of Claude Code, Gemini CLI, Codex, Amp and other coding agents...
Overview
AI coding agents are increasingly writing the world's code and human engineers now spend the majority of their time planning, reviewing, and orchestrating tasks. Vibe Kanban streamlines this process, enabling you to:
- Easily switch between different coding agents
- Orchestrate the execution of multiple coding agents in parallel or in sequence
- Quickly review work and start dev servers
- Track the status of tasks that your coding agents are working on
- Centralise configuration of coding agent MCP configs
You can watch a video overview here.
Installation
Make sure you have authenticated with your favourite coding agent. A full list of supported coding agents can be found in the docs. Then in your terminal run:
npx vibe-kanban
Documentation
Please head to the website for the latest documentation and user guides.
Support
Please open an issue on this repo if you find any bugs or have any feature requests.
Contributing
We would prefer that ideas and changes are raised with the core team via GitHub issues, where we can discuss implementation details and alignment with the existing roadmap. Please do not open PRs without first discussing your proposal with the team.
Development
Prerequisites
pnpm i
Running the dev server
pnpm run dev
This will start the frontend and backend with live reloading. A blank DB will be copied from the dev_assets_seed folder.
Build from source
- Run
build-npm-package.sh - In the
npx-clifolder runnpm pack - You can run your build with
npx [GENERATED FILE].tgz
