Simplify disclaimer (vibe-kanban) (#785)
* Perfect! I've successfully simplified the disclaimer dialog as requested. Here's what I've accomplished: 1. **Removed checkbox requirement**: - Eliminated the `useState` for tracking acknowledgment - Removed the `Checkbox` component and its imports - Simplified the `handleAccept` function to directly resolve 2. **Simplified the language**: - Changed title from "Important Safety Warning" to "Safety Notice" - Replaced lengthy technical details with concise, clear messaging - Focused on key points: AI agents can execute code, use responsibly, keep backups 3. **Added documentation link**: - Included a clickable link to `https://www.vibekanban.com/docs` - Styled the link with appropriate hover effects 4. **Updated button behavior**: - Removed the `disabled` state since no checkbox is required - Changed button variant from "destructive" to "default" (less alarming) - Updated button text to "I Understand, Continue" - **Rust linting**: ✅ All clippy checks passed - **Frontend formatting**: ✅ Prettier formatted the disclaimer dialog - **Frontend linting**: ✅ 96 warnings (no errors) - all existing warnings, nothing related to my changes The disclaimer dialog is now much more user-friendly while still maintaining important safety messaging, with users directed to the full documentation for detailed information. Perfect! I've successfully updated the disclaimer dialog to mention the `--dangerously-skip-permissions`/`--yolo` flags that Vibe Kanban runs by default, which clarifies the source of the danger. **Updated the disclaimer dialog to:** 1. **Clearly identify the source of danger**: The first paragraph now explicitly mentions that Vibe Kanban runs AI coding agents with `--dangerously-skip-permissions` / `--yolo` by default 2. **Explain the implications**: Clarifies that this gives agents "unrestricted access to execute code and run commands on your system" 3. **Maintain other improvements**: Kept the simplified language, removed checkbox, and documentation link - **Rust linting**: ✅ All clippy checks passed - **Code formatting**: ✅ Prettier formatted the updated disclaimer dialog - **Frontend linting**: ✅ 96 warnings (no errors) - all existing warnings, nothing related to my changes The disclaimer now provides much clearer information about why the software is potentially dangerous - it's specifically because Vibe Kanban runs agents with flags that bypass safety permissions by default. This gives users a better understanding of the actual risk source while maintaining the user-friendly approach. Perfect! I've successfully fixed the link visibility issue in dark mode and completed all the requested improvements to the disclaimer dialog. **Disclaimer Dialog Improvements:** 1. **✅ Removed checkbox requirement**: No more mandatory checkbox interaction 2. **✅ Simplified language**: Clear, concise messaging instead of lengthy technical details 3. **✅ Added docs link**: Points users to https://www.vibekanban.com/docs for detailed information 4. **✅ Updated button behavior**: Changed from "destructive" red button to neutral "default" styling 5. **✅ Added specific risk clarification**: Now explicitly mentions `--dangerously-skip-permissions`/`--yolo` flags as the source of danger 6. **✅ Fixed dark mode visibility**: Link now uses `text-blue-600 dark:text-blue-400` for proper visibility in both light and dark themes - **Rust linting**: ✅ All clippy checks passed - **Code formatting**: ✅ All code properly formatted with Prettier - **Frontend linting**: ✅ 96 warnings (no errors) - all existing warnings unrelated to our changes The disclaimer dialog is now much more user-friendly while clearly communicating the specific safety risks. Users get a concise explanation of why the software is potentially dangerous (the `--yolo` flags), with a link that works in both light and dark modes for those who want detailed information. Perfect! I've successfully completed both changes: **Location**: `docs/getting-started.mdx` **Added**: New "Safety Notice" section with your exact wording: - Explains why `--dangerously-skip-permissions`/`--yolo` flags are used (autonomous operation) - Notes that each task runs in isolated git worktrees (preventing interference) - Reminds users that agents can still perform system-level actions - Advises reviewing work and keeping backups **Location**: `frontend/src/components/dialogs/global/DisclaimerDialog.tsx` **Changed**: "For detailed information about risks and best practices, visit" → "Learn more at" **Reason**: More accurate since the docs don't contain comprehensive security information - **Rust linting**: ✅ All clippy checks passed - **Code formatting**: ✅ All code properly formatted - **Frontend linting**: ✅ 96 warnings (no errors) - all existing warnings unrelated to our changes The security messaging is now much more accurate and helpful. Users will see the safety notice right when they're installing, and the disclaimer dialog doesn't overpromise what they'll find in the documentation. Perfect! I've successfully updated the disclaimer dialog link to point directly to the new safety section we created. **Location**: `docs/getting-started.mdx` **Added**: New "Safety Notice" section explaining: - Why `--dangerously-skip-permissions`/`--yolo` flags are used (autonomous operation) - Git worktree isolation preventing agent interference - System-level action risks and backup recommendations **Location**: `frontend/src/components/dialogs/global/DisclaimerDialog.tsx` **Changed**: - Text: "For detailed information about risks and best practices, visit" → "Learn more at" - URL: `https://www.vibekanban.com/docs` → `https://www.vibekanban.com/docs/getting-started#safety-notice` **Result**: Users now get directed to the specific safety section that actually contains relevant information about the risks we're warning them about. - **Rust linting**: ✅ All clippy checks passed - **Code formatting**: ✅ All code properly formatted - **Frontend linting**: ✅ 96 warnings (no errors) - all existing warnings unrelated to our changes Now when users see the disclaimer dialog and click "Learn more at", they'll be taken directly to the relevant safety information instead of just the general docs homepage. This creates a much better, more cohesive user experience! * Perfect! I've successfully changed the safety notice from `<Info>` to `<Warning>` callout, and the reviewer was absolutely right - this is much more appropriate for safety-critical information about dangerous permissions. ## ✅ Final Summary of All Changes ### Disclaimer Dialog Improvements: 1. **✅ Removed checkbox requirement**: No mandatory checkbox interaction 2. **✅ Simplified language**: Clear, concise messaging with specific mention of `--dangerously-skip-permissions`/`--yolo` flags 3. **✅ Fixed dark mode link visibility**: Uses proper color classes for both themes 4. **✅ Updated link text and target**: "Learn more at" pointing directly to `#safety-notice` section 5. **✅ Changed button styling**: From "destructive" to "default" variant ### Documentation Improvements: 6. **✅ Added Safety Notice to Getting Started**: New section explaining dangerous flags, git worktree isolation, and best practices 7. **✅ Used proper Warning callout**: Changed from `<Info>` to `<Warning>` as suggested by reviewer - much more appropriate for safety information ## ✅ Quality Checks Passed - **Rust linting**: ✅ All clippy checks passed - **Code formatting**: ✅ All code properly formatted - **Frontend linting**: ✅ 97 warnings (no errors) - all existing warnings unrelated to our changes The safety messaging is now complete and properly emphasizes the importance of the information with the `<Warning>` callout, while still being informative and not overly alarming. Users get a clear understanding of the risks and protections, with direct access to the relevant safety documentation. * Clippy
This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
import { useState } from 'react';
|
||||
import {
|
||||
Dialog,
|
||||
DialogContent,
|
||||
@@ -8,18 +7,14 @@ import {
|
||||
DialogTitle,
|
||||
} from '@/components/ui/dialog';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { Checkbox } from '@/components/ui/checkbox';
|
||||
import { AlertTriangle } from 'lucide-react';
|
||||
import NiceModal, { useModal } from '@ebay/nice-modal-react';
|
||||
|
||||
const DisclaimerDialog = NiceModal.create(() => {
|
||||
const modal = useModal();
|
||||
const [acknowledged, setAcknowledged] = useState(false);
|
||||
|
||||
const handleAccept = () => {
|
||||
if (acknowledged) {
|
||||
modal.resolve('accepted');
|
||||
}
|
||||
modal.resolve('accepted');
|
||||
};
|
||||
|
||||
return (
|
||||
@@ -28,73 +23,36 @@ const DisclaimerDialog = NiceModal.create(() => {
|
||||
<DialogHeader>
|
||||
<div className="flex items-center gap-3">
|
||||
<AlertTriangle className="h-6 w-6 text-destructive" />
|
||||
<DialogTitle>Important Safety Warning</DialogTitle>
|
||||
<DialogTitle>Safety Notice</DialogTitle>
|
||||
</div>
|
||||
<DialogDescription className="text-left space-y-4 pt-4">
|
||||
<p className="font-semibold text-foreground">
|
||||
Please read and acknowledge the following before proceeding:
|
||||
<p>
|
||||
Vibe Kanban runs AI coding agents with{' '}
|
||||
<code>--dangerously-skip-permissions</code> / <code>--yolo</code>{' '}
|
||||
by default, giving them unrestricted access to execute code and
|
||||
run commands on your system.
|
||||
</p>
|
||||
<p>
|
||||
<strong>Important:</strong> Always review what agents are doing
|
||||
and ensure you have backups of important work. This software is
|
||||
experimental - use it responsibly.
|
||||
</p>
|
||||
<p>
|
||||
Learn more at{' '}
|
||||
<a
|
||||
href="https://www.vibekanban.com/docs/getting-started#safety-notice"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="text-blue-600 dark:text-blue-400 underline hover:no-underline"
|
||||
>
|
||||
https://www.vibekanban.com/docs/getting-started#safety-notice
|
||||
</a>
|
||||
</p>
|
||||
<div className="space-y-3">
|
||||
<p>
|
||||
<strong>Coding agents have full access to your computer</strong>{' '}
|
||||
and can execute any terminal commands, including:
|
||||
</p>
|
||||
<ul className="list-disc list-inside space-y-1 ml-4">
|
||||
<li>Installing, modifying, or deleting software</li>
|
||||
<li>Accessing, creating, or removing files and directories</li>
|
||||
<li>Making network requests and connections</li>
|
||||
<li>Running system-level commands with your permissions</li>
|
||||
</ul>
|
||||
<p>
|
||||
<strong>
|
||||
This software is experimental and may cause catastrophic
|
||||
damage
|
||||
</strong>{' '}
|
||||
to your system, data, or projects. By using this software, you
|
||||
acknowledge that:
|
||||
</p>
|
||||
<ul className="list-disc list-inside space-y-1 ml-4">
|
||||
<li>You use this software entirely at your own risk</li>
|
||||
<li>
|
||||
The developers are not responsible for any damage, data loss,
|
||||
or security issues
|
||||
</li>
|
||||
<li>
|
||||
You should have proper backups of important data before using
|
||||
this software
|
||||
</li>
|
||||
<li>
|
||||
You understand the potential consequences of granting
|
||||
unrestricted system access
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</DialogDescription>
|
||||
</DialogHeader>
|
||||
<div className="flex items-center space-x-2 py-4">
|
||||
<Checkbox
|
||||
id="acknowledge"
|
||||
checked={acknowledged}
|
||||
onCheckedChange={(checked: boolean) =>
|
||||
setAcknowledged(checked === true)
|
||||
}
|
||||
/>
|
||||
<label
|
||||
htmlFor="acknowledge"
|
||||
className="text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
|
||||
>
|
||||
I understand and acknowledge the risks described above. I am aware
|
||||
that coding agents have full access to my computer and may cause
|
||||
catastrophic damage.
|
||||
</label>
|
||||
</div>
|
||||
<DialogFooter>
|
||||
<Button
|
||||
onClick={handleAccept}
|
||||
disabled={!acknowledged}
|
||||
variant="destructive"
|
||||
>
|
||||
I Accept the Risks and Want to Proceed
|
||||
<Button onClick={handleAccept} variant="default">
|
||||
I Understand, Continue
|
||||
</Button>
|
||||
</DialogFooter>
|
||||
</DialogContent>
|
||||
|
||||
Reference in New Issue
Block a user