Open
Conversation
Major Changes: - Migrated from static HTML generation to React SPA with Vite - Implemented Material-UI v7 with Machina design system - Added responsive design with mobile/tablet/desktop breakpoints - Restructured project: src/server/ for backend, src/client/ for frontend Frontend: - Created React components: ReportPage, LandingPage, FindingCard, SidebarNav - Implemented interactive features: preview modals, fix buttons, filters - Added undo functionality with API integration - Applied Machina color palette (Pine Green primary, Tailwind secondary) - Used JetBrains Mono for technical text (card titles, audit report) - Responsive grid layouts for "What We Scanned" cards (1-5 columns) Backend: - Moved server code to src/server/ - Express now serves built React app + API endpoints - Maintained all existing scan/config functionality Design System: - Integrated machina-theme-v1.0.3 with custom palette and typography - Applied WCAG AA compliant colors - Used Bootstrap Icons for UI elements - No hardcoded colors/sizes - all theme tokens Build System: - Vite for client bundling - TypeScript compilation for server - Dual tsconfig setup (client + server) - npm scripts: dev, build, start Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
UI Enhancements: - Updated "What We Scanned" cards to use Pine Green text/icons - Applied JetBrains Mono monospace font to "Security Audit Report" title - Removed "Security Report" heading from sidebar for cleaner navigation - Added warning triangle icon to Risk Score chip when score ≥50 - Changed Risk Score chip colors to Pine Green text on teal background - Made Beyond Identity logo clickable to scroll to top Design System Updates: - Consistent use of Machina primary.main (Pine Green) for technical elements - Maintained secondary.main (soft teal) backgrounds - All typography follows Machina design system tokens Risk Badge Updates: - Updated RiskBadge to support 4-tier risk levels (critical, high, medium, low) - Critical risks now display with warning color (yellow) instead of error - Type safety improved with RiskLevel type instead of SimpleRisk Responsive Design: - Fully responsive layout with mobile/tablet/desktop breakpoints - Sidebar hidden on mobile (< md breakpoint) - "What We Scanned" cards: 1 col (mobile) → 5 cols (desktop) - Flexible header and filter sections for all screen sizes - Responsive tables with horizontal scroll on mobile Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
747c30d to
bed7b42
Compare
Major Changes: - Complete UI refactor with new section components architecture - Achieve WCAG 2.0 AA color contrast compliance across all badges/chips - Implement responsive card layout with proper breakpoints - Add comprehensive configuration sections (Tools, Bash, Sandbox, Directory, Integrity, Profiles) UI Component Architecture: - Created modular section components for all configuration areas - Added BashRestrictionsSection, DirectoryAccessSection, IntegritySection - Added SandboxSettingsSection, SecurityProfilesSection, ToolRestrictionsSection - Centralized security configuration constants in securityConfig.ts - Added EnterpriseSection with hero image Accessibility Improvements (WCAG 2.0 AA): - Updated all badge/chip text colors from #444444 to #121212 - Fixed RiskBadge contrast ratios: CRITICAL (11.9:1), HIGH (8.67:1), MEDIUM (16.4:1), LOW (11.6:1) - Fixed sidebar badge contrast (8.67:1 on red background) - Fixed BLOCKED/ALLOWED status badges in Tool and Bash sections (8.67:1 red, 11.6:1 green) - Fixed MCP Integrity status chips (all statuses now 8.67:1 - 16.4:1) - Fixed installation status and unresolved issues chips Responsive Design: - Added proper breakpoints for "What We Scanned" cards grid - Mobile (xs): 1 column, Small tablet (sm): 2 columns, Desktop (md+): 5 columns - Added minWidth/maxWidth constraints to prevent card stretching - Used CSS gap property for consistent row/column spacing API & State Management: - Removed duplicate API method definitions (allowDirectory, denyDirectory, applyProfile) - Enhanced PreviewModal with better diff visualization and copy functionality - Added proper loading states and error handling across all sections UI Polish: - Moved "Unresolved Issues" indicator to Security Findings section - Added "Show All" button for blast radius table (expands beyond 10 items) - Standardized all section cards with primary.50 background and primary.200 border - Moved Security Profiles title/description inside card for consistency Backend Updates: - Added server routes for security configuration previews - Enhanced config writer with proper validation Assets: - Added enterprise-hero.png for marketing section - Added favicon.svg Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Updated theme.ts with table cell left-alignment fix - Renamed machina-theme-v1.0.3 to machina-theme-v1.0.4 - Updated all import references to v1.0.4 - This includes the fix for table cell content alignment
Update path aliases in tsconfig.json and vite.config.ts to reference machina-theme-v1.0.4 directory. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
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.
Overview
This PR migrates the Claude Defense Kit from static HTML generation to a modern React Single Page Application (SPA) with Material-UI v7 and Beyond Identity's Machina design system.

🎯 Key Changes
Architecture
Project Structure
src/
├── client/ # React SPA (new)
│ ├── components/ # Reusable UI components
│ ├── pages/ # Page components
│ ├── hooks/ # Custom React hooks
│ ├── services/ # API client
│ └── theme/ # Machina theme integration
└── server/ # Backend (reorganized)
├── analyzers/ # Risk analysis logic
├── scanners/ # Security scanners
└── server.ts # Express server
🎨 Design & UI
Machina Design System Integration
#154545- Used for technical elements, logos, and key UI text#D6F2F4- Used for cards and backgroundsNew Features
Responsive Design
Fully responsive layouts with breakpoints:
UI Polish
🔧 Technical Implementation
Frontend Stack
Backend Updates
/api/scan,/api/fix,/api/undoState Management
useState,useEffect) for local stateuseScanData,useToast📊 Risk Score Logic
Weighted scoring system (0-100):
🧪 Testing Considerations
🚀 Deployment Notes
Build Process