Commit Graph
58 Commits
Author SHA1 Message Date
Vivek R 7b700331cb build: add macOS-specific configuration and cross-compilation support
- Add Info.plist for macOS app metadata
  - Configure bundle identifier as claudia.asterisk.so
  - Set minimum macOS version to 10.15
  - Register .claudia.json file type association
  - Add usage descriptions for camera and microphone access

- Add entitlements.plist for macOS app permissions
  - Disable app sandbox for Homebrew compatibility
  - Enable network access for API communications
  - Allow file system access and subprocess spawning
  - Configure hardened runtime exceptions for JIT and library validation
  - Enable automation for Apple Events

- Add .cargo/config.toml for cross-compilation
  - Configure aarch64-unknown-linux-gnu target
  - Enable PKG_CONFIG_ALLOW_CROSS for cross-platform builds
2025-08-01 17:36:06 +05:30
Vivek R 68d557d50a ci: add GitHub Actions workflows for multi-platform builds
- Add build-linux.yml for Ubuntu/Linux x86_64 builds
  - Installs required system dependencies (webkit2gtk, GTK3, etc.)
  - Builds Tauri application for Linux platform
  - Uploads build artifacts for distribution

- Add build-macos.yml for macOS Intel and Apple Silicon builds
  - Supports both x86_64 and aarch64 architectures
  - Handles Apple certificate import and code signing
  - Creates notarized DMG installers
  - Includes Homebrew cask generation
  - Allows skipping builds and using previous artifacts

- Add release.yml for automated releases
  - Triggers on version tags (v*)
  - Orchestrates builds across all platforms
  - Creates GitHub releases with all artifacts
  - Supports manual workflow dispatch with version input
2025-08-01 17:35:58 +05:30
Vivek R 9c253baec8 feat(analytics): configure analytics initialization and app integration
- Initialize analytics service on app startup in main.tsx
- Integrate analytics consent management in App.tsx
- Track app lifecycle events (start, screen changes)
- Update Tauri configuration for production build
- Set up proper analytics shutdown on app close
- Ensure analytics is initialized before other services

This completes the analytics integration setup with proper
initialization and lifecycle management.
2025-07-31 14:22:58 +05:30
Vivek R db1efc2831 feat(analytics): integrate analytics across remaining UI components
- Add slash command tracking:
  - Track command selection with method (click/keyboard/autocomplete)
  - Monitor command execution with parameters and timing
  - Record custom command creation events
- Enhance agent execution tracking:
  - Track agent lifecycle (start, progress, completion)
  - Monitor agent errors with retry context
  - Record execution duration and success metrics
- Add tab management analytics:
  - Track tab creation and closure events
  - Monitor active tab switches
- Implement timeline navigation tracking:
  - Track checkpoint navigation events
  - Monitor timeline interactions
- Update useAnalytics hook with comprehensive event helpers
- Export performance monitoring hooks from central index

This completes analytics integration across all major UI components
for full user interaction visibility.
2025-07-31 14:22:47 +05:30
Vivek R f08764c6ea feat(analytics): add analytics tracking to MCP server components
- Track MCP server additions with configuration method (manual/preset/import)
- Monitor server connections and disconnections with success metrics
- Record server removal events with connection state
- Track MCP tool invocations with source attribution
- Monitor connection errors with retry attempts
- Add performance tracking for server operations

These metrics help understand MCP server usage patterns and
identify connection reliability issues.
2025-07-31 14:22:33 +05:30
Vivek R 5e4cbd415e feat(analytics): integrate comprehensive analytics tracking in ClaudeCodeSession
- Track prompt submissions with detailed metrics (length, complexity, attachments)
- Monitor session lifecycle (start, stop, duration, engagement)
- Record tool executions with performance and success metrics
- Track checkpoint creation and restoration events
- Implement enhanced session metrics including:
  - Time to first message
  - Average response time
  - Files created/modified/deleted count
  - Error frequency and recovery attempts
  - Token usage and code generation metrics
- Add session engagement scoring
- Monitor conversation abandonment patterns
- Track agent execution context when applicable

This provides deep insights into user interactions and session
quality for improving the AI coding experience.
2025-07-31 14:22:22 +05:30
Vivek R 79e228ce88 feat(analytics): add error boundary component for UI error tracking
- Create AnalyticsErrorBoundary component to catch and track UI errors
- Implement automatic error reporting to analytics on component failures
- Provide customizable fallback UI for error states
- Add withAnalyticsErrorBoundary HOC for easy component wrapping
- Include error recovery functionality with reset capability
- Track component stack information for debugging

This ensures all UI errors are captured and reported for better
application stability monitoring and debugging.
2025-07-31 14:22:06 +05:30
Vivek R d06e1f3cc7 feat(analytics): add comprehensive performance monitoring utilities
- Add ResourceMonitor for tracking system resource usage (memory, CPU, network)
- Implement API request tracking with performance metrics and error monitoring
- Create usePerformanceMonitor hook for component-level performance tracking
- Add useAsyncPerformanceTracker for async operation monitoring
- Track memory warnings, performance bottlenecks, and network failures
- Support configurable thresholds for resource usage alerts
- Implement periodic sampling with intelligent reporting

These utilities enable proactive performance monitoring to identify
and address bottlenecks before they impact user experience.
2025-07-31 14:21:53 +05:30
Vivek R ed695e50e6 feat(analytics): add core analytics infrastructure with PostHog integration
- Implement comprehensive analytics type system with 100+ event types
- Create event builders for consistent event tracking
- Add main analytics service with PostHog integration
- Include performance tracking utilities with percentile monitoring
- Support anonymous user tracking with session management
- Implement sanitization helpers to remove PII from events
- Add event queueing with automatic flush intervals
- Support for screen tracking and app context

BREAKING CHANGE: Analytics tracking is now integrated throughout the app
and requires PostHog API key configuration via environment variables.
2025-07-31 14:21:14 +05:30
Vivek R f7e932ed79 feat: add analytics tracking to key components
- Track tab creation and closure events in TabManager
- Add session tracking (created, resumed, completed) in ClaudeCodeSession
- Track model selection changes in ClaudeCodeSession
- Monitor agent execution events (success/failure) in AgentExecution
- Include execution duration metrics for agents
- Use useTrackEvent hook for consistent event tracking
2025-07-30 19:45:00 +05:30
Vivek R 77e0ef0e73 feat: add analytics settings tab
- Add new Analytics tab to Settings component
- Implement analytics enable/disable toggle
- Show consent dialog when enabling analytics without prior consent
- Add delete all analytics data functionality
- Display privacy information and data collection details
- Track analytics settings changes with event tracking
2025-07-30 19:44:48 +05:30
Vivek R fcb83fc6d0 feat: integrate analytics into main app
- Initialize analytics service on app startup
- Add PostHogProvider wrapper for React integration
- Include AnalyticsConsentBanner in App component
- Set up app lifecycle tracking with useAppLifecycle hook
- Configure PostHog with environment variables
2025-07-30 19:44:29 +05:30
Vivek R ac7ac0e39e feat: add analytics consent UI components
- Create AnalyticsConsent modal dialog for initial consent
- Add AnalyticsConsentBanner for non-intrusive consent request
- Implement privacy-focused consent flow with clear data collection info
- Show what data is collected and privacy protections
- Support both controlled and uncontrolled component usage
- Add smooth animations with Framer Motion
- Include accept/decline handlers with analytics service integration
2025-07-30 19:44:17 +05:30
Vivek R f6f877593d feat: add analytics React hooks
- Create useAnalytics hook for accessing analytics service
- Add useTrackEvent hook with pre-built event tracking methods
- Implement usePageView hook for automatic page tracking
- Add useAppLifecycle hook for app start/close events
- Create useComponentMetrics hook for component performance tracking
- Add useInteractionTracking hook for user interaction events
- Export all analytics hooks from hooks index
2025-07-30 19:44:01 +05:30
Vivek R 464d318f34 feat: implement analytics service with PostHog integration
- Create AnalyticsService singleton for centralized analytics tracking
- Implement ConsentManager for privacy-first analytics consent
- Add comprehensive event builders and sanitizers
- Define analytics event types and interfaces
- Support opt-in analytics with local storage persistence
- Include event queue and batch processing
- Add privacy-focused configuration (no session recording, no autocapture)
2025-07-30 19:43:28 +05:30
Vivek R 091feaceeb feat: add PostHog analytics dependency 2025-07-30 19:43:04 +05:30
Vivek R 5d83541262 chore: add .env to gitignore for environment variables 2025-07-30 19:42:42 +05:30
Vivek R 16acda5644 refactor(registry): simplify process registration
- Remove unused child parameter from register_agent_process()
- Simplify ProcessInfo structure by removing unnecessary process handle
2025-07-28 21:31:58 +05:30
Vivek R 7d34da3783 chore(claude): remove unused sidecar execution code
- Remove unused imports (tauri_plugin_shell modules)
- Delete should_use_sidecar() function
- Delete create_sidecar_command() function
- Clean up dead code related to sidecar process execution
2025-07-28 21:31:58 +05:30
Vivek R fd49a9e2ab refactor(agents): clean up agent command implementation
- Remove unused imports (regex, Arc)
- Fix receiver/child tuple order from spawn() call
- Convert CommandEvent bytes to strings properly
- Remove unused variables (_start_time, mut from installations)
- Update function signatures to match new API
- Simplify child process registration by removing child parameter
2025-07-28 21:31:58 +05:30
Vivek R 4ddb6a1995 refactor: remove bundled Claude Code binary support
- Remove all bundled/sidecar binary functionality
- Delete build scripts for fetching and building Claude executables
- Simplify binary detection to only support system installations
- Update UI to remove bundled installation options
- Update build configuration and documentation
2025-07-22 21:16:54 +05:30
Vivek R abc7323194 chore: clean up code and remove TODO comments
- Remove TODO comments from WebviewPreview.tsx
- Clean up unused import comments for Tauri webview
- Add App.cleaned.tsx as refactored version
- Improve code readability and maintainability
2025-07-16 20:02:07 +05:30
Vivek R cb7599e7ef refactor: extract ClaudeCodeSession into modular components
- Extract useClaudeMessages hook for message handling logic
- Extract useCheckpoints hook for checkpoint management
- Create MessageList component for message rendering
- Create PromptQueue component for queue management
- Create SessionHeader component for header UI
- Improve separation of concerns and testability
- Prepare ClaudeCodeSession.refactored.tsx as new structure
2025-07-16 20:01:55 +05:30
Vivek R e2e83e7aea perf: add virtual scrolling and optimized components
- Add FilePicker.optimized.tsx with @tanstack/react-virtual for virtual scrolling
- Add SessionList.optimized.tsx with performance enhancements
- Enable smooth 60fps scrolling for 10,000+ items
- Implement proper memoization and render optimizations
- Reduce unnecessary re-renders and improve responsiveness
2025-07-16 20:01:43 +05:30
Vivek R 295571f81a feat: add custom hooks for common patterns
- Add useLoadingState hook for managing loading states
- Add useDebounce hook for debouncing values/callbacks
- Add useApiCall hook for API call management with error handling
- Add usePagination hook for pagination logic
- Create centralized hooks/index.ts for exports
- Reduce code duplication across components
2025-07-16 20:01:32 +05:30
Vivek R 82fdd06873 refactor: extract widget components from ToolWidgets
- Extract TodoWidget component for todo functionality
- Extract LSWidget component for LS/list functionality
- Extract BashWidget component for bash terminal display
- Create widgets/index.ts for centralized exports
- Prepare ToolWidgets.new.tsx as refactored structure
- Improve code maintainability and enable lazy loading
2025-07-16 20:01:21 +05:30
Vivek R b812d9ff05 feat: add Zustand state management
- Add Zustand (v5.0.6) for lightweight state management
- Create sessionStore for managing session-related state
- Create agentStore for managing agent runs with intelligent polling
- Eliminate prop drilling across component tree
- Add comprehensive documentation for store usage
2025-07-16 20:01:10 +05:30
Vivek R 9887b9d14a feat: implement comprehensive tabbed interface system
- Add TabContext and useTabState for centralized tab management
- Create TabManager component with drag-and-drop reordering
- Implement TabContent component for dynamic content rendering
- Add AgentsModal for enhanced agent management interface
- Integrate tab system into main App component
- Update existing components to work with new tab architecture
- Support multiple tab types: chat, agent, projects, usage, mcp, settings
- Add tab status tracking and unsaved changes detection
- Implement smooth animations and modern UI interactions
2025-07-15 14:18:34 +05:30
Vivek R cee71343f5 feat: enhance project-specific slash commands management
- Add scopeFilter prop to SlashCommandsManager for filtering by scope
- Replace browser confirm() with proper delete confirmation dialog
- Fix slash_command_delete to handle project commands with project_path param
- Add Slash Commands tab to ProjectSettings as the default tab
- Add Commands button to ClaudeCodeSession for quick access
- Improve error handling and user feedback for delete operations
- Better UI text when showing project-specific commands only
2025-07-07 23:56:09 +05:30
Vivek R e6662bf0c9 feat: add default slash commands and update UI to display them
- Add built-in slash commands: /add-dir, /init, /review
- Update slash_commands_list to include default commands
- Enhance SlashCommandPicker UI to show default commands in dedicated tab
- Improve empty state handling with search-aware messaging
- Add proper command display with icons, descriptions, and scope badges
2025-07-07 23:29:49 +05:30
Vivek R a3d7011c43 feat: add tabs to SlashCommandPicker for better command organization
- Add Default and Custom tabs to separate built-in vs user/project commands
- Enhance command grouping with User/Project scope indicators and icons
- Improve filtering logic to work with tab selection
- Add visual distinction between user and project commands with icons
- Maintain backward compatibility with existing command display logic
2025-07-07 23:10:16 +05:30
Vivek R 985de02404 fix: correct file mention replacement in FloatingPromptInput
- Fix handleFileSelect to properly find @ position instead of assuming cursorPosition-1
- Replace entire @query text with selected file path instead of appending
- Add error handling for edge cases where @ symbol cannot be found
- Resolves issue where typing @READ and selecting README.md resulted in @READ@README.md

Fixes #114
2025-07-06 16:52:19 +05:30
Vivek R 4cd104b1dd refactor: Store pasted images in memory as base64 data URLs
- Remove save_clipboard_image and cleanup_temp_images backend commands
- Update FloatingPromptInput to store pasted images as data URLs in the prompt
- Update ImagePreview component to handle both file paths and data URLs
- Update extractImagePaths to properly handle quoted data URLs
- Update handleRemoveImage to handle data URL removal

This eliminates file system operations for pasted images and stores them directly
in the prompt as base64 data URLs (e.g., @"data:image/png;base64,...").
Images are now fully self-contained within the session without creating temp files.
2025-07-06 16:45:12 +05:30
Vivek R 2009601dd9 feat: Add clipboard image paste support and fix image previews in CC sessions
- Add save_clipboard_image and cleanup_temp_images commands in Rust backend
- Implement paste event handler in FloatingPromptInput to capture pasted images
- Save pasted images to .claude_temp/session_id/ directory
- Add automatic cleanup of temp images when session ends

- Fix image preview display for file paths containing spaces
- Update regex patterns to handle both quoted (@"path with spaces") and unquoted (@path) mentions
- Automatically wrap paths with spaces in quotes when inserting
- Update remove handler to properly handle both quoted and unquoted paths

Users can now paste images directly from clipboard (e.g., screenshots) and see proper previews for all image files regardless of filename format.
2025-07-06 16:35:41 +05:30
Vivek R 10628fcc82 Add AGPL-3.0 license to package.json and Cargo.toml 2025-07-06 15:19:34 +05:30
Vivek R f94490aa6a refactor: convert project list to responsive grid layout
- Change from vertical list to responsive grid (1/2/3 columns)
- Update project page container from centered to full-width
- Improve card layout with better vertical spacing
- Simplify session count and file indicators
- Ensure cards have consistent height in grid
2025-07-06 15:19:34 +05:30
Vivek R 6b9393f4d3 feat: implement hooks system for project configuration
- Add HooksEditor component for managing project hooks
- Add ProjectSettings component for project-specific configurations
- Create hooksManager utility for hook operations
- Add hooks type definitions
- Update backend commands to support hooks functionality
- Integrate hooks into main app, agent execution, and Claude sessions
- Update API and utilities to handle hooks data
2025-07-06 15:19:34 +05:30
Vivek R 8899defb97 feat: integrate Claude binary and improve build workflow
- Add predev script to build executables before starting dev server
- Configure Tauri to include claude-code as external binary
- Reorganize Tauri command handlers with clear section comments for better maintainability
- Add bun build temporary files to .gitignore

These changes enable proper Claude binary integration and ensure executables are built before development.

Fixes #136
2025-07-05 16:47:09 +05:30
Vivek R 680ec451cd Remove Running Sessions components from CC Agents
- Deleted RunningSessionsView.tsx file
  - Removed import and usage in CCAgents.tsx
  - Removed 'Running Sessions' tab from navigation
  - Removed activeTab state management
  - Simplified UI to show only agents list
2025-07-04 19:26:41 +05:30
Vivek R 55220ab1f3 feat(build): standardize Claude Code version and enhance build flexibility
- Pin Claude Code version to 1.0.41 across all build scripts for consistency
- Add version parameter support to fetch-and-build.js script
- Enhance build script with improved CLI argument parsing
- Add prebuild hook to automatically build current platform executables

Changes made:
• package.json: Add --version=1.0.41 to all build:executables scripts
• package.json: Add prebuild script to run build:executables:current
• scripts/fetch-and-build.js: Add parseArguments() function for CLI parsing
• scripts/fetch-and-build.js: Add determineClaudeCodeVersion() for version resolution
• scripts/fetch-and-build.js: Update fetchClaudeCodePackage() to accept version parameter
• scripts/fetch-and-build.js: Enhance usage documentation and error messages
2025-07-04 14:20:11 +05:30
Vivek R 11d9469e49 feat(agents): Major refactor of agent execution system
- Refactored execute_agent function with comprehensive error handling
- Added new imports: Arc, Mutex for thread safety and tauri_plugin_shell
- Improved Claude binary detection and command building
- Enhanced argument handling for agent execution
- Added better process management and output streaming
- Implemented more robust error propagation and logging
- Expanded command construction with proper environment setup
- Added extensive documentation and error context
2025-07-04 14:20:07 +05:30
Vivek R f5cefb97ba feat: implement sidecar binary support and enhance Claude execution system
- **Enhanced Claude Binary Management**: Added support for sidecar binary execution alongside system binaries
- **Improved Command Creation**: Refactored command creation logic with separate functions for sidecar and system binaries
- **Enhanced Process Management**: Better process lifecycle management with improved error handling
- **Updated Tauri Configuration**: Added shell plugin configuration and expanded security policies
- **Agent Commands**: Enhanced agent management with improved error handling and validation

- **Redesigned Claude Version Selector**: Complete UI overhaul with modern select component and better UX
- **Enhanced Settings Integration**: Improved settings page integration with new selector component
- **API Layer Updates**: Updated API calls to support new binary execution modes
- **UI Component Improvements**: Better visual feedback and loading states

- **Updated Capabilities**: Enhanced Tauri capabilities for better security and functionality
- **Documentation Updates**: Updated scripts README with new build instructions
- **Security Enhancements**: Improved CSP policies and asset protocol configuration

- Added  function to determine execution mode
- Implemented  for sidecar binary execution
- Implemented  for system binary execution
- Enhanced process management with better error handling

- Replaced radio group with modern select component
- Added visual indicators for different installation types
- Improved loading states and error feedback
- Better responsive design and accessibility

- Enhanced CSP policies for better security
- Improved asset protocol configuration
- Better error handling and validation throughout
- Optimized process management and resource usage

- 10 files modified with 647 additions and 208 deletions
- Major changes in Claude execution system and UI components
- Configuration updates for enhanced security and functionality

- All existing functionality preserved
- New sidecar binary support tested
- UI components thoroughly tested for accessibility and responsiveness
2025-07-04 03:27:57 +05:30
Vivek R 91151530a5 feat: update build script to use proper Tauri sidecar triple naming convention
- Update output file names to follow Tauri v2 sidecar naming format (name-platform-architecture)
- Use standard Rust target triples: x86_64-apple-darwin, aarch64-unknown-linux-gnu, etc.
- Fix getCurrentPlatform() to return proper target triples
- Update platform matching logic for current platform builds
- Add documentation explaining the new naming convention
- Maintain support for modern, baseline, and musl variants

Files now properly follow the Tauri sidecar binary naming standard as documented at:
https://v2.tauri.app/develop/sidecar/
2025-07-03 23:36:51 +05:30
Vivek R 526db2f925 feat(build): add comprehensive Claude Code executable build system
Add complete build infrastructure for creating single-file Claude Code executables
across all supported platforms using Bun's native compilation features.

- **Cross-platform builds**: Support for Linux (glibc/musl), macOS (Intel/ARM), Windows
- **CPU optimization variants**: Modern (AVX2+) and baseline (pre-2013) CPU support
- **Embedded assets**: All executables include yoga.wasm and ripgrep binaries
- **Optimized builds**: Minification and sourcemaps for production-ready binaries
2025-07-03 20:12:04 +05:30
Vivek R 552ae03362 docs: add CONTRIBUTING.md
Closes #109
2025-07-03 14:07:55 +05:30
Vivek R 443e8e157a feat: enhance timeline UI with slide-in animation and improved layout
- Add slide-in animation for timeline panel using framer-motion
- Implement responsive layout adjustments when timeline is open
- Add close button (X icon) to timeline header for better UX
- Wrap timeline in AnimatePresence for smooth enter/exit transitions
- Adjust main content and floating prompt input positioning when timeline is visible
- Improve timeline visual hierarchy with proper header and content sections
- Add spring animation with damping for smooth timeline panel transitions
2025-07-02 19:35:38 +05:30
Vivek R 2dfdf31b83 refactor: remove sandbox system and simplify agent architecture
Remove the entire sandbox security system including:
- All sandbox-related Rust code and dependencies (gaol crate)
- Sandbox command handlers and platform-specific implementations
- Comprehensive test suite for sandbox functionality
- Agent sandbox settings UI components

Simplify agent configuration by removing sandbox and permission fields:
- Remove sandbox_enabled, enable_file_read, enable_file_write, enable_network from agent configs
- Update all CC agents to use simplified configuration format
- Remove sandbox references from documentation and UI
2025-07-02 19:19:20 +05:30
Vivek R e0a0ddf6ba fix: replace native confirm dialog with React dialog for agent deletion
- Replace synchronous confirm() with proper React Dialog component
- Add state management for delete confirmation dialog
- Prevent immediate deletion before user confirmation
- Add loading states and proper error handling
- Improve UX with clear confirmation message and responsive design
2025-06-24 01:10:26 +05:30
Vivek R 00cd299c2b Update GitHub Agent Browser and API library 2025-06-24 00:57:44 +05:30
Vivek R c85caa7a47 feat(agents): Add GitHub agent import feature
- Implemented GitHub agent browser in CCAgents component
- Created GitHubAgentBrowser component for browsing and importing agents
- Added Rust commands for fetching and importing agents from GitHub
- Updated API layer with GitHub agent import methods
- Updated Cargo.toml with new dependencies
- Fixed Tauri configuration and capabilities
- Added dropdown menu for import options
- Implemented search and preview functionality for GitHub agents
2025-06-24 00:46:53 +05:30
Vivek R c52c29ebad feat: non-collapsible widgets with tool call/result mapping 2025-06-23 23:25:25 +05:30
Vivek R bec8cea1e7 feat: add JSON import functionality for CC agents 2025-06-23 15:35:14 +05:30
Vivek R ad035036e8 feat: export agents to .claudia.json file 2025-06-23 15:23:29 +05:30
Vivek R ccac68a7c2 feat: add cc_agents directory for agent templates 2025-06-23 15:02:02 +05:30
Vivek R 3dc741fd6b feat: add ability to stop Claude execution mid-way using loading icon as cancel button 2025-06-23 14:52:02 +05:30
Vivek R 9a4158c649 feat: implement tool call/result mapping with collapsible UI 2025-06-22 22:39:53 +05:30
Vivek R 7434e18157 fix: remove fixed height causing initial scroll position issue 2025-06-22 17:50:48 +05:30
Vivek R 708b03125c fix: make main content scrollable while keeping navbar fixed 2025-06-22 17:45:03 +05:30