Skip to content

Merge develop into master#2815

Closed
HarshP4585 wants to merge 220 commits into
masterfrom
develop
Closed

Merge develop into master#2815
HarshP4585 wants to merge 220 commits into
masterfrom
develop

Conversation

@HarshP4585
Copy link
Copy Markdown
Collaborator

Describe your changes

Provide a concise description of the changes made and their intended purpose.

Write your issue number after "Fixes "

Enter the corresponding issue number after "Fixes #"

Please ensure all items are checked off before requesting a review:

  • I deployed the code locally.
  • I have performed a self-review of my code.
  • I have included the issue # in the PR.
  • I have labelled the PR correctly.
  • The issue I am working on is assigned to me.
  • I have avoided using hardcoded values to ensure scalability and maintain consistency across the application.
  • I have ensured that font sizes, color choices, and other UI elements are referenced from the theme.
  • My pull request is focused and addresses a single, specific feature.
  • If there are UI changes, I have attached a screenshot or video to this PR.

gorkem-bwl and others added 30 commits November 29, 2025 19:08
- Change vite proxy to forward all API requests through Node.js server
- Update deepEvalRoutes for proper request handling
- Update package-lock.json version
… research

## Changes
- Add EvalsSidebar component with project selector and navigation
- Convert ProjectDatasets from cards to table layout with drawer for content view
- Add pagination and delete actions to datasets table
- Improve organization management with edit functionality
- Add scorers research documentation for future implementation
- Various UI improvements to EvalsDashboard layout

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Create unified Chip component with light pastel backgrounds
- Add subtle gradient and border to all chips
- Migrate all tables to use unified Chip component:
  - Risk Management tables (severity, likelihood, risk level)
  - Model Inventory tables (status, security assessment)
  - Incident Management table (severity, status, approval)
  - Policy table (status)
  - Training table (status)
  - Tasks table (priority, overdue)
  - Vendor Risks table (severity)
  - Automation History (execution status)
  - Project Overview table (AI risk classification)
- Auto-detect chip variant from label text
- Remove deprecated RiskChip component
- Clean up unused style functions
Implement comprehensive CE Marking functionality to track EU AI Act conformity assessment journey for high-risk AI systems.

Frontend:
- Add CE Marking tab to project view with complete UI
- Display classification and scope (high-risk status, Annex III category, role in product)
- Show EU AI Act completion status with real-time calculation from controls and assessments
- Track 7 conformity assessment steps with status, owner, and due dates
- Manage declaration of conformity with signatory and document tracking
- Track EU database registration status
- Link policies and evidence files to CE Marking process
- Display incident tracking for use case
- Add VWTooltip component with HTML content support and custom styling

Backend:
- Create CE Marking controller with get/update endpoints
- Implement database schema with ce_markings, ce_marking_conformity_steps, and audit trail tables
- Add association tables for linking policies (ce_marking_policies) and evidence (ce_marking_evidences)
- Auto-create default 7 conformity steps on first access
- Calculate EU AI Act completion percentages using existing utility functions
- Auto-populate completed dates when status changes to "Completed"
- Track all changes in audit trail for compliance history
- Use multi-tenant schema support

Features:
- Real-time dropdown saving for Annex III category and role in product
- Edit modals for conformity steps, declaration, and registration details
- Multi-select modals for linking policies and evidence using VerifyWise components
- Progress bars and completion tracking
- Responsive layout with proper spacing and VerifyWise component usage
- Toast notifications for all save operations

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Replace CustomizableToast with proper Alert toast system that shows on top right.

Changes:
- Add showAlert export to customAxios.ts for components to trigger alerts
- Update CEMarking component to use global showAlert function
- Remove CustomEvent-based alert system
- Ensure toasts appear in top right corner (not center popup)
- All save operations now show proper toast notifications

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Add incidents selection modal with checkbox interface
- Remove AI ACT REPORTABLE section from UI
- Create ce_marking_incidents association table
- Implement backend logic for linking/unlinking incidents
- Add incident service methods (getAllIncidents, updateLinkedIncidents)
- Update CE Marking to display linked incidents count
- Add audit trail for incident changes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Critical fixes:
- Add transaction management to getCEMarking and updateCEMarking controllers
- Add transactions to database migrations for data consistency
- Replace console.error with proper logger in controllers
- Add logEvent for database logging of errors

High priority fixes:
- Add input validation (validateId) to CE Marking routes
- Add detailed error messages in controller responses

Medium priority fixes:
- Remove placeholder console.log from frontend
- Replace non-functional VWLink with Typography for declaration document

All database operations now properly wrapped in transactions with rollback on error.
- Replaced mock OWNER_OPTIONS with real user data from useUsers hook
- Removed all 12 console.error statements from error handlers
- Improved code cleanliness by relying on showAlert for user feedback
- Add Select dropdown for High Risk AI System field with Yes/No options
- Implement handleHighRiskChange to update classification via API
- Add state management for isHighRiskAISystem field
- Change "Intended Purpose" to "Description"
- Fetch and display project description from useProjectData hook
- Add useProjectData hook integration to get project details
Backend improvements:
- Add project existence validation before GET and UPDATE operations
- Use framework name lookup instead of hardcoded framework_id=1
- Remove intendedPurpose field (now uses project description)
- Add proper error responses for missing projects

Frontend improvements:
- Remove console.error statements from service file
- Add owner name lookup to display user names instead of IDs
- Handle useProjectData error state properly
- Remove unused getDescriptionPlaceholder function
- Use generic placeholder for step description field

TypeScript improvements:
- Create proper interfaces for update payloads
- Replace all "as any" with typed interfaces
- Remove intendedPurpose from CEMarkingData interface
- Add ConformityStepsUpdatePayload interface
- Add LinkedResourcesUpdatePayload interface

Code quality:
- Improved type safety throughout codebase
- Better error handling and user feedback
- Cleaner, more maintainable code structure
Frontend UX improvements:
- Add confirmation dialog for high-risk classification changes
- Implement optimistic UI updates for Annex III and Role changes
- Make loading states consistent (include project loading state)
- Improve responsiveness with immediate UI feedback

Database migration:
- Add foreign key constraint for project_id (ensures referential integrity)
- Remove intended_purpose column (now uses project description)
- Include proper rollback support for migration
- Make migration idempotent with constraint existence checks

User experience enhancements:
- Critical regulatory changes now require confirmation
- UI updates immediately, reverts only on error
- Consistent loading indicators across all data sources
- Cascading delete ensures orphaned records are prevented
- Update field label from 'DESCRIPTION' to 'GOAL'
- Display project goal instead of project description
- Update fallback text to 'No goal provided'
Frontend improvements:
- Fix confirmation dialog to show message in modal content instead of header
- Display full names (name + surname) in owner dropdown and table
- Change "DECLARATION DOCUMENT" to "DECLARATION DOCUMENT LINK"
- Display declaration document and EU record URLs as clickable links with external link icons
- Use VWLink component for URL display
- Remove "LAST INCIDENT" section from Incidents card
- Import ExternalLink icon from lucide-react

UX enhancements:
- Better visual distinction for clickable URLs
- Clearer confirmation dialog messaging
- More informative owner selection with full names
- Cleaner incidents section without redundant last incident field
Updated declaration document and EU record URL links to properly open in new tabs. Added helper function to automatically prepend https:// protocol to URLs that don't already include http:// or https://.

Co-Authored-By: Claude <noreply@anthropic.com>
- Add type assertion for conformity steps update payload
- Remove unused ExternalLink import

Co-Authored-By: Claude <noreply@anthropic.com>
Add BrandFetch API integration to display company logos in the vendors table.
Logos are fetched from BrandFetch CDN with graceful fallback to letter avatars.

Changes:
- Create VendorLogo component with logo fetching and fallback handling
- Add brandfetch.config.ts with domain extraction utilities
- Integrate VendorLogo into vendors table
- Add environment variable support for API key (VITE_BRANDFETCH_API_KEY)
- Create .env.example to document required configuration
- Update TypeScript declarations for new environment variable

Security:
- API key stored in environment variable, not committed to repository
- .env.example provided as template without sensitive data
Replace gray fallback avatars with vibrant, colorful avatars to improve
visual appeal and make the vendor list more engaging.

Changes:
- Add 12-color vibrant palette (red, amber, emerald, blue, violet, pink, etc.)
- Implement hash function to assign consistent colors based on vendor name
- Each vendor always gets the same color for visual consistency
- Remove gray border for cleaner look with colored backgrounds

The color assignment is deterministic - same vendor name = same color.
Prevent 'relation organizations does not exist' error by checking if the
organizations table exists before attempting to query it. This makes the
migrations compatible with fresh database setups where the organizations
table may not exist yet.

Changes:
- Add table existence check in both up() and down() methods
- Skip migration gracefully if organizations table doesn't exist
- Add informative console messages for debugging
## Changes

### Security improvements
- Add security warning documentation to extractToken.ts explaining JWT
  client-side decoding limitations and proper usage
- Wrap production console.log/error statements in development mode checks
  in networkServices.ts and store.ts

### Type safety improvements
- Replace 'any' types with proper interfaces in user.repository.ts:
  - CreateUserData, UpdateUserData, LoginCredentials
  - PasswordChangeResponse, DeleteResponse, UserExistsResponse, ProfilePhotoResponse
- Add DecodedToken interface to extractToken.ts
- Export RootState and AppDispatch types from Redux store
- Update useAuth.ts to use typed RootState instead of 'any'

### Code cleanup
- Remove unnecessary try/catch blocks that only logged and re-threw
- Simplify error handling in user.repository.ts
## Changes

### Type signature updates
- Update userId parameter types to accept `string | number` in repository functions
  to match actual usage (token returns string IDs)
- Add `role_id` and `organization_id` snake_case variants to CreateUserData
  interface for API compatibility
- Fix LoginResponse type to match nested `data.data.token` structure
- Update useProfilePhotoFetch hook to accept string userId

### Null safety improvements
- Add early return guards for undefined userId in Password and Profile pages
- Show user-friendly error message when session is not found

### Error handling
- Fix spread type error by casting error object before spreading
## Changes
- Move action hints next to headers in AdminSetupStep (e.g., "Invite team members (Settings → Team)")
- Remove bottom helper texts and Alert component
- Convert framework selection to 4-in-a-row grid layout
- Remove framework descriptions for cleaner UI
- Rename "Select a use case template" to "Demo use case"
- Add placeholder text to use case select dropdown
- Remove "What's included in your demo project" section
…Manage)

## Changes
### Backend
- Add countNISTAIRMFSubcategoriesAssignmentsByFunction utility to get assignments per function
- Add countNISTAIRMFSubcategoriesProgressByFunction utility to get progress per function
- Add /assignments-by-function and /progress-by-function API endpoints

### Frontend
- Update AssignmentStatusCard to show 4 rows (Govern, Map, Measure, Manage) instead of single "Subcategories" row
- Update FrameworkProgressCard to show 4 progress bars per function instead of single "Subcategories" progress
- Update Dashboard to fetch new by-function endpoints for NIST AI RMF
…rd boxes

## Changes
- Persist selected framework (ISO 42001/NIST AI RMF/ISO 27001) in Controls tab
- Persist sub-tabs (Clauses/Annexes for ISO, Govern/Map/Measure/Manage for NIST)
- Persist Dashboard tab selection
- Make Framework Progress and Assignment Status card rows clickable
- Clicking a row navigates to the corresponding Controls section
Prevents errors when tables already exist in the database.
…tors

## Changes
- Add clickable chevron icons to bottom dashboard cards (ControlCategoriesCard, AnnexOverviewCard, NISTFunctionsOverviewCard) for navigation to Controls page
- Remove clickable functionality from top cards (FrameworkProgressCard, AssignmentStatusCard)
- Add horizontal dividers between framework sections with proper spacing
- Fix navigation sync when clicking dashboard cards to navigate to Controls
- Update chart tooltip font size to 13px for consistency

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
gorkem-bwl and others added 27 commits December 1, 2025 13:45
The model was missing from db.ts, causing 'Model not initialized'
error when fetching API keys from the configuration page.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Add Sidebar navigation for LLM Evals
- Register evaluation API key routes in Express server
- Add frontend API services for DeepEval integration:
  - deepEvalDatasetsService.ts
  - deepEvalProjectsService.ts
  - evaluationLlmApiKeysService.ts
  - evaluationLogsService.ts

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
- EvaluationModule/data/ - User uploads for evaluations
- EvaluationModule/artifacts/ - DeepEval output files

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
## Changes
- Add UserGuide component with sidebar, landing page, and article views
- Add 32 screenshot images for documentation
- Integrate sidebar into App.tsx
- Add content for all major features:
  - Getting started guides
  - AI governance (model inventory, incidents, evidence)
  - Compliance frameworks (EU AI Act, ISO 42001, ISO 27001, NIST AI RMF)
  - Risk management (assessments, mitigation, vendors)
  - Policies, reporting, settings, integrations

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
## Changes
- Add shared/user-guide-content/ with content configuration
- Update vite.config.ts with @user-guide-content path alias
- Update tsconfig.app.json with TypeScript path mapping

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
## Changes
- Remove unused 'colors' import from ImageLightbox.tsx
- Remove unused 'TAB_BAR_WIDTH' constant from SidebarWrapper.tsx
- Fix contentTypes import paths to use @user-guide-content alias
- Replace lucide-react imports in shared folder with icon name strings
- Add iconMap to resolve icon names to components in consuming files
Regenerated lock file after merging latest develop changes.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
## Changes
- Fix unknown type not assignable to ReactNode in DetailSidebar.tsx
- Remove unused FormControlLabel import in EntityGraph/index.tsx
- Add index signature to ExtendedNodeData interface for type compatibility
- Prefix unused entityType parameter with underscore
- Remove unused setNodes from ReactFlowDemo.tsx

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
## Changes
- Remove EntityGraph feature files (should be in separate PR)
- Remove ReactFlowDemo.tsx and reactflow-demo.html
- Remove accidentally committed docs/api-docs/node_modules
- Remove docs/api-docs/dist build artifacts

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
These routes referenced deleted files that are not part of the user guide feature.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Add User Guide sidebar with documentation content
@HarshP4585 HarshP4585 requested a review from gorkem-bwl December 5, 2025 03:01
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Dec 5, 2025

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch develop

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@HarshP4585 HarshP4585 closed this Dec 5, 2025
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.

5 participants