* chore: bump version to 0.20.0 [skip ci]
* revert: remove automatic skill dependency installation system
- Removed dependency installation loading state from SkillSetupWizard
- Reverted SkillRuntime dependency checking and installation methods
- Cleaned up dependency-related imports and event listeners
- Documented complete implementation in skills/todo.md for future work
The dependency installation system was causing unwanted loading states
when configuring skills. All functionality has been properly reverted
while preserving implementation details for future development.
* Refactor SkillManagementPanel to conditionally show action buttons based on connection status
- Added offline and setup-required states with informative messages
- Updated SkillSetupModal to use connection status for setup vs. manage mode
- Simplified mode logic for better UX and error handling in setup scenarios
* Update CLAUDE.md with new features, state slices, and code quality tools
- Document additions: Redux aiSlice, skillsSlice, teamSlice, and architecture updates
- Add ESLint, Prettier integrations with Husky hooks and GitHub workflows
- Update development commands from npm to yarn for consistency
- Expand key user groups and revise target audiences
- Include enhanced project structure, build outputs, and CI/CD updates
* fix: resolve TypeScript compilation error and enhance skill session synchronization
- Fix unused parameter error in SkillManager.getSkillLoadParams() by prefixing with underscore
- Add support for session parameter passing in SkillRuntime.load() method
- Implement skill reloading capability for post-authentication updates
- Ensure proper connection status synchronization between skill setup and UI display
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: change skill button text from 'Configure' to 'Manage' for connected skills
- Update SkillsGrid button text to dynamically show based on connection status
- Connected skills now show 'Manage' button instead of 'Configure'
- Provides clearer user indication of skill state
- Improves UX for authenticated skills like Telegram
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* refactor: update documentation, download system and code formatting improvements
- Update Claude rules with improved project overview and command documentation
- Enhance download screen with better architecture detection and formatting
- Improve device detection utilities with multi-architecture support
- Add skills system troubleshooting documentation
- Code formatting improvements with better line breaks and spacing
- Optimize GitHub release asset parsing for platform-specific downloads
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
---------
Co-authored-by: Steven Enamakel <31011319+senamakel@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
* ran prettier
* Refactor ESLint configuration to use ES module syntax and enhance TypeScript support
- Converted CommonJS `require` statements to ES module `import` syntax for better compatibility with modern JavaScript.
- Added new paths to ignore in ESLint configuration to exclude additional directories.
- Updated TypeScript file patterns to be more specific, improving linting accuracy.
- Adjusted React hooks rules to allow certain patterns, enhancing flexibility in component design.
These changes improve the maintainability and clarity of the ESLint configuration, aligning it with current best practices.
* Refactor ESLint configuration to use ES module syntax and enhance TypeScript support
- Converted CommonJS `require` statements to ES module `import` syntax for better compatibility with modern JavaScript.
- Added new paths to ignore in ESLint configuration to exclude additional directories.
- Updated TypeScript file patterns to be more specific, improving linting accuracy.
- Introduced new React hooks rules and adjusted existing rules for better adherence to best practices.
- Made minor adjustments to import statements across various files for consistency and clarity.
These changes improve the overall linting setup and ensure better code quality across the project.
* Refactor import statements across multiple files for consistency
- Updated import statements to use TypeScript's `type` syntax for type imports, enhancing clarity and consistency across the codebase.
- Consolidated imports from the same module into single statements, improving readability and maintainability.
These changes streamline the code structure and align with best practices for TypeScript imports.
* Refactor import statements in memory manager for improved clarity
- Updated import statements to consolidate type imports and enhance readability.
- Removed redundant imports, streamlining the code structure in the memory manager file.
These changes align with best practices for TypeScript imports and improve maintainability.
* Add Husky for pre-commit and pre-push hooks
- Introduced Husky to manage Git hooks, enhancing the development workflow.
- Added pre-commit and pre-push scripts to enforce code formatting and linting checks before commits and pushes.
- Updated package.json to include Husky as a dependency and added a prepare script for setup.
These changes improve code quality and ensure adherence to formatting and linting standards during the development process.
* Refactor import statements for improved clarity and consistency
- Updated import statements across multiple files to consolidate type imports and enhance readability.
- Adjusted the order of imports for better organization and alignment with best practices in TypeScript.
These changes streamline the code structure and improve maintainability throughout the project.
* ran formatter
* Refactor import statements and improve code formatting across multiple files
- Consolidated and reordered import statements for better clarity and consistency in `SkillsGrid.tsx`, `SkillProvider.tsx`, and `index.ts`.
- Enhanced readability by adjusting formatting and removing redundant lines.
- These changes align with best practices for TypeScript imports and improve overall maintainability of the codebase.
* Refactor and optimize code in multiple components
- Removed redundant properties from the `STATUS_DISPLAY` object in `SkillsGrid.tsx` to streamline status handling.
- Consolidated import statements in `SettingsModal.tsx` for improved organization.
- Simplified state management and error handling in `BillingPanel.tsx`, enhancing performance and readability.
- Added `REHYDRATE` import to `index.ts` for better state persistence management.
These changes improve code clarity, maintainability, and align with best practices in TypeScript development.
* Consolidate import statements in SettingsModal.tsx for improved organization
* Add Prettier and ESLint checks to typecheck workflow
- Integrated a Prettier formatting check to ensure code style consistency.
- Added an ESLint step to enforce code quality and catch potential issues.
- These enhancements improve the development workflow by automating formatting and linting checks during the typecheck process.
* Add activeSkillDescription state to ConnectionsPanel and ConnectStep
- Introduced activeSkillDescription state in both ConnectionsPanel and ConnectStep components to store and manage skill descriptions.
- Updated the SkillSetupModal to accept skillDescription as a prop, enhancing the modal's functionality and data handling.
These changes improve the user experience by providing more detailed information about skills during the connection setup process.
* Enhance pre-push hook to include TypeScript compile check
- Added a TypeScript compile check to the pre-push script, ensuring that code compiles successfully before pushing.
- Updated error handling to include compile errors alongside formatting and linting issues, providing clearer feedback to developers.
These changes improve the reliability of the codebase by preventing non-compiling code from being pushed.
* Update GitHub workflows for pull request handling and publishing logic
- Modified the package-and-publish workflow to support pull request events, ensuring proper handling of branches.
- Adjusted the SHOULD_PUBLISH environment variable to differentiate between pull requests and main branch events.
- Updated the pr-protection workflow to focus solely on the main branch, removing references to the master branch.
These changes enhance the CI/CD process by refining branch handling and improving clarity in workflow conditions.
* Update skills submodule and enhance skill management interface
- Updated the skills submodule to the latest commit, ensuring alignment with project dependencies.
- Refactored the SkillSetupModal to conditionally render either the SkillSetupWizard or SkillManagementPanel based on the skill's setup status, improving user experience.
- Introduced the SkillManagementPanel component to manage connected skills, allowing users to view connection status and configurable options.
- Enhanced the package-and-publish workflow by updating the release name for better clarity.
These changes improve the overall functionality and maintainability of the skill management system.
* Remove skills catalog JSON and refactor skills loading mechanism
- Deleted the `skills-catalog.json` file from the public directory, as it is no longer needed.
- Updated the `SkillsGrid` component to load the skills catalog directly from the local skills directory via Rust, improving the skills management process.
- Enhanced the `SkillProvider` to discover skills from the local directory and sync from GitHub if no local skills are found, streamlining the skill lifecycle management.
These changes improve the overall efficiency and maintainability of the skill management system.
* Update skills submodule and enhance skill management features
- Updated the skills submodule to the latest commit, ensuring alignment with project dependencies.
- Modified the `ConnectionIndicator` component's description for clarity.
- Refactored the `SkillsGrid` component to improve type definitions and streamline skill processing, including the addition of a `hasSetup` property for better skill management.
- Enhanced the `SkillManagementPanel` to conditionally render the "Re-run Setup" button based on the presence of setup hooks.
- Updated the `SkillSetupModal` to handle skills without setup hooks more effectively.
- Implemented a background update check in the `SkillProvider` to ensure skills are kept up to date with the latest changes from GitHub.
These changes improve the overall functionality and maintainability of the skill management system.
* Enhance skill management interface and update dependencies
- Added new CSS styles for the skills table, improving layout and user experience.
- Updated the SkillsGrid component to utilize new props and improve type definitions.
- Enhanced the SkillSetupModal to include skill descriptions for better context.
- Updated the Home component to include a call-to-action for upgrading to premium plans.
- Added new entries to .gitignore for mypy and ruff caches to streamline development.
These changes improve the overall functionality and maintainability of the skill management system.
* Update skills submodule and refine billing plan features
- Updated the skills submodule to the latest commit for improved functionality.
- Simplified CSS styles in `index.css` for better readability and consistency.
- Refactored billing plan features in `billingHelpers.ts` to streamline plan metadata and improve clarity.
- Enhanced the `BillingPanel` component by adjusting layout and improving user feedback on current plan status and usage metrics.
These changes enhance the overall user experience and maintainability of the billing and skills management systems.
* Enhance SettingsLayout and BillingPanel components for improved user experience
- Updated the backdrop blur effect in SettingsLayout for a more visually appealing modal.
- Adjusted CSS styles in SettingsHeader for better spacing and layout consistency.
- Refined billing plan features in billingHelpers to clarify plan descriptions and improve user understanding.
- Enhanced the BillingPanel layout, including improved token usage display and subscription management options.
These changes collectively enhance the overall user interface and experience within the settings and billing sections.
* Add team management features to settings interface
- Introduced a new "Team" section in the SettingsHome component, allowing users to manage their team and invite members.
- Added TeamPanel, TeamMembersPanel, and TeamInvitesPanel components for comprehensive team management functionalities.
- Updated routing in SettingsModal to include new team-related paths.
- Enhanced useSettingsNavigation hook to support navigation for team management.
- Integrated Redux state management for teams, members, and invites, improving data handling and user experience.
These changes collectively enhance the settings interface by providing robust team management capabilities.
* Update skills submodule and enhance App component layout
- Updated the skills submodule to the latest commit for improved functionality.
- Wrapped the AppRoutes component in a new div for better spacing and layout consistency.
- Added a dead code allowance for the McpRequest struct in socket.rs to improve code clarity.
- Introduced a dead code allowance for the is_permission_granted function in notification_service.rs to maintain future extensibility.
These changes collectively enhance the overall structure and maintainability of the application.
* Update skills submodule to latest commit for improved functionality and alignment with project dependencies.
* Update skills submodule and enhance skill management interface
- Updated the skills submodule to the latest commit, ensuring alignment with project dependencies.
- Refactored the SkillSetupModal to conditionally render either the SkillSetupWizard or SkillManagementPanel based on the skill's setup status, improving user experience.
- Introduced the SkillManagementPanel component to manage connected skills, allowing users to view connection status and configurable options.
- Enhanced the package-and-publish workflow by updating the release name for better clarity.
These changes improve the overall functionality and maintainability of the skill management system.
* Remove skills catalog JSON and refactor skills loading mechanism
- Deleted the `skills-catalog.json` file from the public directory, as it is no longer needed.
- Updated the `SkillsGrid` component to load the skills catalog directly from the local skills directory via Rust, improving the skills management process.
- Enhanced the `SkillProvider` to discover skills from the local directory and sync from GitHub if no local skills are found, streamlining the skill lifecycle management.
These changes improve the overall efficiency and maintainability of the skill management system.
* Update skills submodule and enhance skill management features
- Updated the skills submodule to the latest commit, ensuring alignment with project dependencies.
- Modified the `ConnectionIndicator` component's description for clarity.
- Refactored the `SkillsGrid` component to improve type definitions and streamline skill processing, including the addition of a `hasSetup` property for better skill management.
- Enhanced the `SkillManagementPanel` to conditionally render the "Re-run Setup" button based on the presence of setup hooks.
- Updated the `SkillSetupModal` to handle skills without setup hooks more effectively.
- Implemented a background update check in the `SkillProvider` to ensure skills are kept up to date with the latest changes from GitHub.
These changes improve the overall functionality and maintainability of the skill management system.
* Enhance skill management interface and update dependencies
- Added new CSS styles for the skills table, improving layout and user experience.
- Updated the SkillsGrid component to utilize new props and improve type definitions.
- Enhanced the SkillSetupModal to include skill descriptions for better context.
- Updated the Home component to include a call-to-action for upgrading to premium plans.
- Added new entries to .gitignore for mypy and ruff caches to streamline development.
These changes improve the overall functionality and maintainability of the skill management system.
* Add submodule for skills and initialize skills repository
- Created a new .gitmodules file to include the skills submodule.
- Initialized the skills submodule with a commit reference, linking to the skills repository on GitHub.
This update integrates the skills component into the project, enhancing the AI system's capabilities.
* Implement subscription billing UI with Stripe and Coinbase integration
Replace the placeholder BillingPanel with a working subscription billing
interface. Users can view their current plan and token usage, upgrade via
Stripe (card) or Coinbase (crypto, annual-only), and manage subscriptions
through Stripe's Customer Portal. Adds billing API service and types.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Add unified skill system with core type definitions and management features
- Introduced a comprehensive skill system that includes lifecycle management, tool definitions, state management, entity extensions, and intelligence rules.
- Implemented a skill state manager using Zustand for managing skill-specific state.
- Created an entity extension registry for registering new entity and relation types.
- Developed an intelligence engine for evaluating rules and executing actions based on events.
- Established a unified tool registry to streamline tool management across various integrations.
This update enhances the AI system's capabilities by providing a robust framework for skill management and interaction.
* Add billing helpers and refactor BillingPanel for improved plan management
- Introduced a new `billingHelpers.ts` file containing plan metadata, utility functions for plan management, and pricing calculations.
- Refactored `BillingPanel` to utilize the new billing helpers, streamlining the display of plan information and pricing.
- Added unit tests for billing helpers to ensure functionality and correctness of plan-related operations.
This update enhances the billing system's structure and maintainability, providing a clearer separation of concerns for plan management.
* Enhance skill management system with new features and integrations
- Added path aliases in `tsconfig.json` for improved module resolution.
- Updated `vite.config.ts` to include skill types path for better integration.
- Integrated `SkillsProvider` into the application to manage skill lifecycle, including registration and activation of virtual skills like Telegram, bulk operations, and reminders.
- Implemented a unified skill system with a new orchestrator for managing skill states and tool definitions.
- Enhanced bundled skill loading mechanism to utilize a unified skill system, improving the overall architecture and maintainability.
This update strengthens the skill management framework, enabling better organization and functionality within the AI system.
* Adopt supermemory patterns into AI memory system
Port 5 patterns from claude-supermemory reference implementation to fill
gaps in the existing memory pipeline:
1. Tool observation compression — compress verbose tool outputs before
compaction summarization and memory flush, saving tokens and signal
2. Categorized memory context — render memory as structured XML with
profile facts, recent context, and search results with dedup
3. Relative timestamps — surface updated_at from FTS chunks and display
human-readable relative times in search results
4. Memory deduplication on write — filter duplicate facts before appending
to memory files during flush
5. Auto-capture on session end — lightweight memory flush for short sessions
that never trigger compaction
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Refactor TelegramMCPServer to delegate entirely to unified tool registry
The server was still maintaining its own tool map with 80+ handler entries
and legacy fallback paths. Now it delegates all tool listing and execution
to skillOrchestrator.toolRegistry, matching the architecture established
in the skills system. Updated tests to mock the unified registry instead
of individual tool handlers.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Consolidate skill system and migrate Telegram state to Zustand
Remove legacy skill implementations (src/lib/ai/skills/, src/lib/mcp/skills/)
and consolidate everything into the unified skill orchestrator at
src/lib/skills/. Add runtime skill subprocess support with stdio JSON-RPC
transport for Python/Node/Deno skills.
Key changes:
- Delete old SkillRegistry, installer, loader, runner, frontmatter parser
- Delete MCP skills layer (bulk.ts, reminders.ts, index.ts) and move
skill definitions to src/lib/skills/definitions/
- Add RuntimeHost and StdioTransport for subprocess-based skills
- Add shell plugin (tauri-plugin-shell) with scoped permissions for
python3, node, deno, npx executables
- Extend orchestrator with runtime skill lifecycle (spawn, load, activate,
tick, deactivate, shutdown) and reverse RPC handling
- Add overrideTier parameter to enforceRateLimit for unified registry
- Decouple prompt system from old SkillEntry type
- Remove old SkillRegistry from AIProvider
- Migrate Telegram state functions from Redux dispatch to Zustand store
- Add Telegram Zustand store, selectors, actions, migration utilities
- Add hello-python example skill
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Migrate Telegram state from Redux to Zustand
Replace the Redux telegram slice with a Zustand store using immer middleware.
All 49 reducers ported as store methods, 5 thunks converted to standalone async
functions, and 30+ selectors migrated to Zustand hooks and plain functions.
Updates all consumers: services, API helpers, tool adapters, and UI components.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Refactor skill management and remove Telegram components
- Updated TODO.md to include integration of the payments flow.
- Refactored App.tsx to remove unused TelegramProvider and SkillsProvider, streamlining the component structure.
- Deleted obsolete test fixtures related to Telegram state and skills, including mcpContext.ts, rootState.ts, telegramState.ts, and TelegramConnection components.
- Removed legacy skill loading and entity extension files, consolidating the skill system into a unified orchestrator.
- Updated documentation to reflect changes in skill management and structure.
This commit enhances the overall architecture by eliminating deprecated components and improving the skill management framework.
* Update skills submodule to latest commit 22e42c9, ensuring alignment with the current project structure and dependencies.
* Integrate Python skills system with JSON-RPC IPC and interactive setup UI
Wire the Python skills runtime into the Tauri frontend via the shell plugin,
communicating over JSON-RPC 2.0 stdin/stdout. Replace "Coming Soon" Telegram
entries in onboarding and settings with a live setup wizard that drives the
skill's multi-step authentication flow.
- Phase 0: Create skill.py SkillDefinition for Telegram, update __main__.py
to use SkillServer (MCP preserved via --mcp flag)
- Phase 1: Add skills lib (types, transport, runtime, manager, paths),
Redux skillsSlice with persistence, setup UI components
(SetupFormRenderer, SkillSetupWizard, SkillSetupModal)
- Phase 2: Add SkillProvider to provider chain, Rust skill data I/O commands
- Phase 3: Tool bridge for AI registry integration in AIProvider
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Update skill management and billing helpers
- Updated skills submodule to the latest commit, ensuring alignment with project dependencies.
- Refactored SkillSetupWizard to ensure the skill is running before starting the setup flow, improving user experience.
- Adjusted billingHelpers test to import PlanTier from the correct path, enhancing type safety.
- Modified embedQuery method in NullEmbeddingProvider to accept a parameter, improving method signature clarity.
These changes enhance the overall functionality and maintainability of the skill management and billing systems.
* Enhance deep link handling and skill setup error management
- Added a note in CLAUDE.md regarding the requirement to run the .app for deep link testing on macOS.
- Introduced a simulation feature for deep links in development mode within desktopDeepLinkListener.ts.
- Updated SkillSetupWizard to throw descriptive errors if a skill fails to start, improving error handling and user feedback.
These changes improve the development experience and robustness of the skill setup process.
* Add Python sidecar setup script and update dependencies
- Introduced a new script `setup-python-sidecar.mjs` to symlink the system Python to the Tauri runtime for local development.
- Updated the `package.json` to include a new npm script for setting up the Python sidecar.
- Changed the version specification for `@tauri-apps/plugin-shell` from `^2` to `~2` for more controlled updates.
- Updated the `tauri.conf.json` to include the new Python sidecar in the external binaries list.
- Updated the skills submodule to the latest commit for alignment with project dependencies.
These changes enhance the development workflow for Python skills integration and improve dependency management.
* Update skills submodule to latest commit and modify TODO.md
- Updated the skills submodule to the latest commit for better alignment with project dependencies.
- Added a note in TODO.md to skip the connect account page and redirect to the home page during the payment flow integration.
These changes ensure the project remains up-to-date and clarify the next steps for the payment flow implementation.
* Refactor Python sidecar integration and enhance skill runtime management
- Updated `setup-python-sidecar.mjs` to symlink system Python to `src-tauri/runtime-skill-python-<target>` for local development.
- Introduced new commands in Rust for retrieving the current working directory and virtual environment site-packages for Python skills.
- Modified `SkillTransport` to support spawning skills using the sidecar for bundled runtimes, improving the execution flow.
- Updated `tauri.conf.json` to reflect changes in external binaries and added documentation for the Python sidecar setup.
- Adjusted skill management to ensure proper error handling and logging during skill execution.
These changes streamline the development process for Python skills and enhance the overall robustness of the skill management system.
* Enhance skill connection indicators and logging
- Added a new `TelegramConnectionIndicator` component to display real-time connection status for the Telegram skill.
- Integrated `useSkillConnectionStatus` hook across various components to provide unified connection status for skills.
- Updated `ConnectionsPanel` and `ConnectStep` to utilize the new connection status logic, improving user feedback during skill setup.
- Enhanced logging in `SocketService` and `SocketProvider` for better debugging and error tracking.
- Introduced utility functions for sanitizing sensitive data before logging, ensuring security during error handling.
These changes improve the user experience by providing clear connection statuses and enhance the robustness of the logging system.
* Remove console logging from SocketProvider for cleaner code
- Eliminated console log statements related to socket connection and disconnection events, as well as error handling, to streamline the codebase.
- This change enhances the maintainability of the SocketProvider component by reducing unnecessary logging clutter.
* Enhance SocketService with MCP transport and tool management
- Introduced `SocketIOMCPTransportImpl` for handling client-server MCP requests, improving communication efficiency.
- Updated the `mcp:listTools` event to aggregate tools from all ready skills, providing a comprehensive tool list in response to requests.
- Enhanced the `mcp:toolCall` event to validate tool name formats and handle tool calls asynchronously, improving error handling and logging.
- Added a method to retrieve the MCP transport instance, enhancing the SocketService's functionality.
These changes improve the robustness and usability of the SocketService in managing MCP interactions.
* Remove logger service and replace with debug package in SocketService
- Deleted the custom logger implementation in favor of using the `debug` package for logging in the SocketService.
- Updated the SocketService to enable logging based on the development environment, improving debugging capabilities.
These changes streamline the logging process and enhance the maintainability of the codebase.
* Add SkillsGrid component to enhance skill management interface
- Introduced a new SkillsGrid component to display a grid of skills with connection statuses and setup options.
- Implemented skill icons and status badges for better visual representation of skill states.
- Integrated skills catalog loading functionality to dynamically fetch and display available skills.
- Updated Home component to include the SkillsGrid, improving user interaction with skills.
These changes enhance the user experience by providing a clear and interactive skills management interface.
* Update skills submodule and add skills catalog JSON
- Updated the skills submodule to the latest commit for improved functionality.
- Introduced a new `skills-catalog.json` file containing detailed descriptions and configurations for various skills, enhancing the skills management system.
- Enhanced the `SkillsGrid` component to validate skill names, ensuring they do not contain underscores, which are reserved for tool namespacing.
These changes improve the robustness of the skills management interface and ensure better adherence to naming conventions.
* Update skills submodule and modify tool name formatting in SocketService
- Updated the skills submodule to the latest commit for improved functionality.
- Changed the tool name formatting in SocketService to use double underscores instead of single underscores, enhancing clarity in tool identification.
These changes ensure better alignment with naming conventions and improve the overall functionality of the skills management system.
* Add DownloadScreen component and update Welcome page
- Introduced a new DownloadScreen component to provide users with platform-specific download options for the application.
- Updated the Welcome page to conditionally display the DownloadScreen for web users while showing the Telegram login button for Tauri users.
- Modified the greeting text and adjusted layout for improved user experience.
These changes enhance the onboarding process by offering clear download options based on the user's platform.
* Enhance AppRoutes and Welcome component for web detection
- Added logic in AppRoutes to determine if the application is running on the web or Tauri, using the `isTauri` utility.
- Updated the Welcome component to accept a prop indicating the platform, allowing for tailored rendering based on the environment.
- This change improves the onboarding experience by providing a more context-aware interface for users depending on their platform.
* Refactor SkillsGrid and Home components for improved clarity
- Removed unused Telegram and Gmail connection indicators from the Home component to streamline the interface.
- Simplified the SkillCard function in SkillsGrid by renaming the description parameter for better clarity.
- These changes enhance code readability and maintainability by eliminating unnecessary components and improving parameter naming.
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* Add submodule for skills and initialize skills repository
- Created a new .gitmodules file to include the skills submodule.
- Initialized the skills submodule with a commit reference, linking to the skills repository on GitHub.
This update integrates the skills component into the project, enhancing the AI system's capabilities.
* Implement subscription billing UI with Stripe and Coinbase integration
Replace the placeholder BillingPanel with a working subscription billing
interface. Users can view their current plan and token usage, upgrade via
Stripe (card) or Coinbase (crypto, annual-only), and manage subscriptions
through Stripe's Customer Portal. Adds billing API service and types.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Add unified skill system with core type definitions and management features
- Introduced a comprehensive skill system that includes lifecycle management, tool definitions, state management, entity extensions, and intelligence rules.
- Implemented a skill state manager using Zustand for managing skill-specific state.
- Created an entity extension registry for registering new entity and relation types.
- Developed an intelligence engine for evaluating rules and executing actions based on events.
- Established a unified tool registry to streamline tool management across various integrations.
This update enhances the AI system's capabilities by providing a robust framework for skill management and interaction.
* Add billing helpers and refactor BillingPanel for improved plan management
- Introduced a new `billingHelpers.ts` file containing plan metadata, utility functions for plan management, and pricing calculations.
- Refactored `BillingPanel` to utilize the new billing helpers, streamlining the display of plan information and pricing.
- Added unit tests for billing helpers to ensure functionality and correctness of plan-related operations.
This update enhances the billing system's structure and maintainability, providing a clearer separation of concerns for plan management.
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
- Moved `mtprotoService` and other Telegram-related services to a dedicated `src/lib/telegram/services/` directory for better organization.
- Updated import paths across various files to reflect the new service structure.
- Enhanced state management by ensuring all Redux dispatches for Telegram state are routed through dedicated functions, improving maintainability and clarity.
- Consolidated unit tests to ensure they align with the new service structure and state management approach.
This update streamlines the Telegram integration and enhances the overall architecture of the application.
- Introduced Sentry for error tracking, initialized in the application to capture errors while respecting user privacy.
- Added a new analytics service to manage user consent for data collection, ensuring only non-personal data is sent to Sentry.
- Updated Redux state to track user analytics preferences and modified onboarding steps to include analytics consent.
- Enhanced the PrivacyPanel component to allow users to toggle analytics sharing.
- Removed the AnalyticsStep from onboarding as its functionality is now integrated into the PrivacyPanel.
This update improves error reporting capabilities while prioritizing user privacy and consent.
- Introduced flags to track the QR flow and DC migration states, preventing polling and authentication checks during sensitive operations.
- Updated polling intervals and added initial delays to enhance the user experience during authentication.
- Improved code clarity with detailed comments explaining the new flow control mechanisms.
This update ensures a smoother and more reliable authentication process for users, reducing the risk of errors during critical operations.
- Changed all references of the deep link scheme in documentation and code to `alphahuman://` to align with the new branding.
- Updated the Telegram login flow documentation to reflect the new deep link handling.
- Adjusted various files to ensure consistency in the authentication process across platforms.
This update enhances the clarity and branding of the authentication flow for the desktop application.
- Removed the backend URL dependency for Tauri desktop login, simplifying the login process.
- Updated the login flow to directly open the Telegram bot link for desktop users, enhancing user experience.
- Streamlined the code by eliminating unnecessary error handling related to backend URL usage.
This update optimizes the Telegram login functionality for desktop applications, ensuring a smoother authentication process.
- Introduced a new documentation file detailing the Telegram login flow for the desktop client, including system-browser authentication and deep link handling.
- Updated the TelegramLoginButton component to initiate the login process using the backend URL for Tauri desktop applications.
- Enhanced deep link listener to validate incoming URLs and manage session tokens more effectively.
- Refactored utility functions to streamline Tauri environment checks and improve code clarity.
This update improves the onboarding experience for desktop users and provides comprehensive guidance on implementing Telegram login functionality.
* Enhance onboarding flow with conditional routing
- Introduced OnboardingRoute component to conditionally navigate users based on onboarding status.
- Updated AppRoutes to utilize OnboardingRoute, redirecting users to the home page if onboarding is complete.
- Removed direct Telegram link from GetStartedStep to streamline onboarding process and improve user experience.
This update improves the onboarding experience by ensuring users are only shown the onboarding page when necessary.
* Enhance error handling and connection management in Telegram components
- Added console error logging in TelegramConnectionModal for better debugging during authentication failures.
- Updated connection status check in TelegramProvider to only verify once when connected, improving efficiency.
- Simplified socket connection logic in socketService by removing unnecessary checks and reducing timeout for initial connection.
This update improves error visibility and optimizes connection handling, enhancing the overall user experience during Telegram interactions.
* Implement JWT payload parsing in socketService for user ID retrieval
- Enhanced the getSocketUserId function to extract user IDs from JWT tokens, improving user identification in socket connections.
- Added error handling for token parsing to ensure robustness against malformed tokens.
This update enhances the socket service's ability to manage user-specific connections by accurately retrieving user IDs from authentication tokens.
* Add UserProvider to App component and enhance user data fetching logic
- Integrated UserProvider into the App component to manage user state.
- Updated UserProvider to fetch current user data on token availability and handle token expiration by clearing the token on fetch failure.
- Improved user data fetching logic for better error handling and user experience.
* Enhance Telegram connection handling and error management
- Added logic to handle Telegram account mismatch, providing user feedback and resetting connection state.
- Improved user verification during authentication to ensure the logged-in account matches the Telegram account.
- Refactored connection status checks and error handling for better user experience.
- Introduced a method to clear session and disconnect when account mismatch occurs.
- Updated polling mechanism for authentication status to ensure timely updates.
This update improves the robustness of the Telegram connection process and enhances user feedback during authentication failures.
* ran prettier
* Refactor socket and auth state management for user-specific handling
- Updated socket state management to support multiple users by introducing user-specific selectors and actions.
- Refactored connection status handling in the socket service to dispatch user-specific status updates.
- Enhanced onboarding state management to track completion per user, allowing for more granular control.
- Introduced new selectors for socket and auth states to improve readability and maintainability.
- Updated relevant components to utilize the new user-specific state management.
This update improves the application's ability to handle multiple users and enhances the overall user experience during onboarding and socket connections.
* Enhance MTProto client session management and introduce user-specific session handling
- Updated the MTProtoService to manage sessions per user by storing session data under a user-specific key.
- Modified the initialize method to accept a userId parameter, allowing for user-specific session initialization and management.
- Improved session loading and saving logic to ensure proper handling of user sessions.
- Added a utility function to generate session keys based on userId for better maintainability.
This update enhances the application's ability to handle multiple user sessions effectively.
* Refactor Telegram state management for user-specific handling
- Introduced user-specific state management in the Telegram store, allowing for better handling of multiple users.
- Updated selectors to retrieve state based on the current user, improving data encapsulation and reducing global state dependencies.
- Enhanced reducers and thunks to ensure actions are dispatched with user context, maintaining user-specific data integrity.
- Modified persistence configuration to store Telegram state scoped by user, ensuring isolated state management.
This update significantly improves the application's ability to manage multiple user sessions effectively and enhances overall user experience.
* Enhance MTProtoService connection handling with user-specific initialization
- Updated the checkConnection method to accept an optional userId parameter, allowing for user-specific connection initialization.
- Modified the connection logic to ensure proper initialization only occurs when a userId is provided, improving session management.
- Refactored related thunks to use a consistent naming convention for userId parameters, enhancing code clarity.
This update improves the handling of user sessions in the MTProtoService, aligning with recent enhancements in user-specific state management.
* Refactor Telegram connection handling for user-specific management
- Updated the TelegramConnectionModal to utilize user-specific identifiers for connection status and authentication processes, enhancing session management.
- Refactored related components and selectors to ensure userId is consistently passed and utilized, improving clarity and maintainability.
- Enhanced the ConnectionsPanel and ConnectStep to check for saved sessions based on userId, allowing for better handling of multiple user connections.
This update significantly improves the application's ability to manage user-specific Telegram connections and enhances the overall user experience.
* Refactor Telegram connection logic to simplify session management
- Removed unnecessary userId checks and localStorage interactions from ConnectionsPanel and ConnectStep components, streamlining the connection status determination.
- Updated MTProtoService to manage session data through Redux instead of localStorage, enhancing consistency and maintainability.
- Improved session loading and saving logic to focus solely on Redux state, ensuring better integration with user-specific session handling.
This update enhances the clarity and efficiency of the Telegram connection management process, aligning with recent improvements in user-specific state management.
* Update CLAUDE.md to clarify localStorage usage and emphasize Redux for state management
- Revised documentation to discourage the use of localStorage and sessionStorage for app state, advocating for Redux and Redux Persist instead.
- Added guidelines for removing existing localStorage usage and migrating relevant data to Redux.
- Updated service layer documentation to reflect changes in session management, specifying that session data is now stored in Redux rather than localStorage.
- Enhanced clarity on deep link handling and the prevention of infinite reload loops.
This update aligns with recent improvements in user-specific state management and reinforces best practices for state handling.
* Enhance onboarding process with error handling and API integration
- Updated the Onboarding component to include an API call for marking onboarding as complete, with error handling to provide user feedback.
- Refactored the GetStartedStep component to support asynchronous completion handling, including loading state and error messages.
- Introduced a new onboardingComplete method in the userApi service to facilitate the onboarding completion process.
This update improves the user experience during onboarding by ensuring proper error management and feedback.
* Enhance TelegramConnectionModal with socket connection management and improved initialization flow
- Integrated socket connection handling in the TelegramConnectionModal to ensure the socket is connected when the modal opens, enhancing real-time features.
- Refactored the initialization logic to streamline the connection process, including user verification and error handling.
- Introduced a reference to track the QR code flow state, preventing multiple initiations and improving user experience during authentication.
This update improves the reliability of the Telegram connection process and enhances user feedback during the onboarding experience.
* Refactor Telegram connection checks for improved logic consistency
- Updated the ConnectionsPanel and ConnectStep components to refine the logic for determining if a Telegram connection is established, ensuring that both session string and authentication status are required for a valid connection.
- Simplified className definitions in the UI components for better readability and maintainability.
This update enhances the clarity of connection status checks and improves the overall user experience during the onboarding process.
* Refactor Telegram authentication flow and improve error handling
- Simplified the TelegramLoginButton component by removing complex authentication logic and replacing it with a direct link to the Telegram bot for login.
- Enhanced the Login page to consume a login token from the URL, providing better error handling and user feedback during the authentication process.
- Introduced a new API service for consuming login tokens, ensuring secure retrieval of JWT tokens from the backend.
This update streamlines the authentication experience and improves error management, enhancing overall user experience during login.
- Changed connected services to show red "Disconnect" button instead of green "Connected" badge
- Provides clearer action-oriented interface for managing connections
- Green status dot already indicates connection status visually
- Maintains existing styling patterns with red disconnect theme
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Created 5 new settings panels with matching ConnectionsPanel structure
- Added MessagingPanel, PrivacyPanel, ProfilePanel, AdvancedPanel, BillingPanel
- All panels use SettingsHeader with back button and proper titles
- Implemented centered "Coming Soon" design with icons and descriptions
- Updated SettingsModal routing to use proper React components instead of inline divs
- Ensured consistent layout structure and styling across all settings modals
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added slide-right animation with 300ms duration for smoother modal entry
- Updated SettingsLayout to use new slide-right animation instead of fade-up
- Enhanced animation timing with cubic-bezier easing for premium feel
- Updated useSettingsAnimation hooks for consistent 300ms panel transitions
- Applied animations to all settings modals and sub-panels consistently
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Updated SettingsHeader with back button support and custom titles
- Redesigned ConnectionsPanel to use consistent styling with SettingsHome
- Replaced glass morphism layout with standard settings modal structure
- Applied matching colors, fonts, borders, and spacing throughout
- Maintained all existing functionality while improving visual consistency
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove user profile icon, name, and username from settings header
- Add clean "Settings" title with proper typography
- Implement close button (X) in top-right corner with hover effects
- Maintain dark glass morphism theme and layout structure
- Preserve accessibility with proper aria-labels and modal title ID
- Update imports to use useSettingsNavigation hook for close functionality
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Split settings into main settings list and destructive actions list
- Add proper visual separation with spacing between the two lists
- Fix yellow border issue in dangerous menu items
- Use consistent border-stone-700 for all menu items
- Maintain amber text color for dangerous actions (Delete/Logout)
- Improve UI organization and safety by separating destructive actions
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add "Delete All Data" option to settings modal with proper dangerous styling
- Logout option already existed in settings modal
- Remove "Delete All Data" and "Logout" buttons from home page
- Update home page to have only Settings button with clean styling
- Increase modal height from 600px to 800px for better spacing
- All account management actions now centralized in settings modal
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add "View Encryption Key" menu item to SettingsHome between Advanced and Billing
- Include key icon and description matching original Home page implementation
- Remove "View Encryption Key" button from Home page action buttons list
- Remove handleViewEncryptionKey function from Home component
- Improve organization by grouping security options in settings menu
- Clean up Home page layout with fewer action items
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add stronger focus suppression to modal container with focus:ring-0
- Enhance SettingsMenuItem with focus:ring-0 and focus:border-inherit
- Update global CSS with border: inherit !important to prevent focus border changes
- Ensure no white borders or outlines appear on modal or menu item focus
- Complete focus styling elimination across settings system
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Updated the message handler to only accept messages from Telegram OAuth, ensuring better security.
- Refactored the authentication process to handle Telegram's auth_result more effectively, including parsing the payload and managing session tokens.
- Improved error handling during the authentication process, providing clearer error messages for failed operations.
- Added a new allowed host in vite.config.ts for the frontend runner.
These changes streamline the authentication process with Telegram, enhancing security and user experience.
- Remove all browser focus outlines globally with outline: none !important
- Remove all custom focus rings and box shadows from components
- Update global CSS to suppress all focus styling including box-shadow: none
- Remove focus ring styles from Home page action buttons
- Remove focus ring styles from SettingsMenuItem components
- Clean interaction with no visible focus styling on any elements
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
ConnectionsPanel Styling:
- Apply dark glass morphism theme to match main settings modal
- Update SettingsPanelLayout to use glass container with 600px fixed height
- Convert SettingsBackButton to dark theme with proper stone colors
- Update all connection cards to use dark backgrounds and borders
- Apply consistent hover states and typography
Status Indicator Improvements:
- Replace "Connected" text badges with small green dots in top-right corner
- Use sage green color (bg-sage-500) with dark border for visibility
- Keep "Coming Soon" badges in original right-side position
- Maintain clean layout with subtle but clear status indicators
Layout Fixes:
- Restore "Coming Soon" tags to proper position on right side
- Add relative positioning for absolute green dot placement
- Improve visual hierarchy with consistent dark theme elements
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Settings Modal Styling Fixes:
- Convert from light theme to dark glass morphism design
- Update modal container to use fixed height (600px) and glass styling
- Apply dark theme to menu items matching Home page action buttons
- Update profile header with dark background and proper typography
- Fix menu item spacing and borders with proper first/last item handling
Focus Management Fixes:
- Add focus:outline-none to settings modal container to remove unwanted blue outline
- Preventively fix same issue in TelegramConnectionModal
- Maintain accessibility while removing browser default focus styling
Navigation Update:
- Change settings button to navigate to /settings instead of /settings/connections
- Provides better UX by showing main settings menu first
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add complete settings modal infrastructure with clean white design
- Implement user profile section with Redux integration for user data
- Create settings menu with Connections, Messaging, Privacy, Profile, Advanced, Billing, Logout
- Add connections management panel reusing onboarding components
- Integrate with existing TelegramConnectionModal for connection setup
- Add URL-based routing for /settings and /settings/connections paths
- Update Home.tsx to open settings modal from "Manage Connections" button
- Include proper animations, accessibility, and mobile responsive design
- Follow pixel-perfect design specifications with 520px modal width
- Maintain TypeScript safety and existing code patterns throughout
Features:
• Modal overlay system with backdrop blur and center positioning
• Settings navigation with smooth panel transitions (200ms entry, 250ms slides)
• Connection status display from Redux state with Connect/Disconnect actions
• Profile display with avatar, user name, and email from user slice
• Logout functionality integrated with auth slice clearToken action
• Mobile-first responsive design with full-screen behavior on small screens
• Accessibility features: focus management, ARIA labels, ESC key support
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Cleaned up whitespace in TelegramConnectionModal for improved code readability.
- Updated import paths in ConnectStep to align with the new asset structure, ensuring consistency across components.
- Enhanced the structure of reducers in the Telegram state management to improve clarity and maintainability.
These changes streamline the codebase and enhance the overall organization of the Telegram integration within the application.
- Introduced a new GmailIcon component for better visual representation of Gmail connectivity.
- Replaced inline SVG in GmailConnectionIndicator with the new GmailIcon component, improving code maintainability and readability.
- Updated import paths for GoogleIcon in ConnectStep to reflect the new asset structure.
These changes enhance the user interface by providing a dedicated icon for Gmail and streamline the codebase for easier future updates.
- Introduced several SVG icons including Binance, MetaMask, Google, Notion, Telegram, and Wallet, enriching the visual assets available for the application.
- Created new React components for ExchangeIcon, GoogleIcon, and WalletIcon, providing reusable icon components with customizable class names.
- Added GmailConnectionIndicator component to display Gmail connection status, improving user feedback on connectivity.
- Updated Home component to integrate GmailConnectionIndicator alongside existing TelegramConnectionIndicator, enhancing the user experience with real-time connection indicators.
These changes improve the application's visual appeal and user interaction by providing clear indicators and a variety of icons for different functionalities.
- Reorganized Telegram-related Redux logic by moving the telegramSlice functionality into a dedicated directory structure, enhancing maintainability.
- Created separate files for reducers, thunks, and types, improving code organization and clarity.
- Implemented additional asynchronous actions for initializing and connecting to Telegram, along with robust error handling for authentication and message fetching.
- Updated imports across components to reflect the new structure, ensuring consistency and reducing potential import errors.
These changes streamline the Telegram integration within the application, making it easier to manage and extend in the future.
- Introduced TelegramProvider to manage the Telegram MTProto connection, handling initialization and connection status updates.
- Refactored TelegramConnectionModal to remove unused authStatus selector, streamlining the component.
- Enhanced MTProtoService with FLOOD_WAIT handling for connection checks and message sending, improving reliability during Telegram interactions.
- Updated telegramSlice to prevent concurrent authentication checks, optimizing performance during user authentication.
These changes enhance the application's ability to manage Telegram connections effectively, providing a smoother user experience during authentication and interaction.
- Introduced TelegramConnectionIndicator component to display real-time connection status to Telegram, enhancing user feedback.
- Integrated TelegramConnectionIndicator into the Home component, providing users with immediate visibility of their Telegram connection status.
- Updated App component to include TelegramProvider, ensuring proper context for the new connection indicator.
These changes improve the user experience by providing clear indications of Telegram connectivity within the application.
- Enhanced the TelegramConnectionModal to provide better management of the 2FA password input process, including timeout handling and improved error messaging.
- Updated MTProtoService to ensure proper handling of SESSION_PASSWORD_NEEDED errors, allowing the password callback to manage authentication flow more effectively.
- Added logging for password resolution and authentication status checks to improve visibility during the connection process.
These changes enhance the reliability and user experience of the Telegram authentication process, ensuring smoother transitions and clearer feedback during authentication steps.
- Updated TelegramConnectionModal to handle authentication checks more robustly, allowing the QR code flow to continue even if the authentication status check fails.
- Improved error handling in checkAuthStatus to prevent failures from blocking the authentication process, ensuring a smoother user experience.
- Added logging for better visibility into authentication status and errors during the connection process.
These changes improve the reliability of the Telegram connection flow and enhance user feedback during authentication.
- Modified Vite configuration to include 'os' in node polyfills and added resolution aliases for better compatibility with browser environments.
- Enhanced TelegramConnectionModal by implementing a countdown timer for QR code expiration, improving user feedback during authentication.
- Refactored modal structure for better accessibility and responsiveness, ensuring a smoother user experience.
These changes improve the application's integration with Telegram and enhance the overall user interface during the authentication process.
- Introduced polyfills for Node.js globals (Buffer, process, util) to support Telegram package functionality in the browser.
- Updated Vite configuration to include node polyfills, ensuring compatibility with Node.js APIs.
- Enhanced TelegramConnectionModal to manage connection states, including loading and error handling, improving user experience during authentication.
- Implemented QR code generation and handling for Telegram login, with robust error management and user feedback.
These changes establish a solid foundation for Telegram integration, enhancing the application's ability to handle real-time communication and user authentication effectively.
- Updated the App component to utilize PublicRoute and ProtectedRoute components for managing access to different pages based on authentication and onboarding status.
- Introduced a new DefaultRedirect component to handle redirection logic based on user state, improving user experience by directing users to the appropriate page.
- Cleaned up route definitions for better clarity and maintainability.
These changes enhance the routing structure and improve the overall navigation flow within the application.
- Integrated Redux state management into the Onboarding component by dispatching the setOnboarded action upon completion.
- Updated authSlice to include isOnboarded state, allowing for tracking of onboarding status.
- Modified the Redux store configuration to persist the onboarding status alongside the token, improving user experience and state consistency.
These changes streamline the onboarding process and enhance state management for user authentication.
- Removed localStorage interactions for session tokens and user data in the TelegramLoginButton and authSlice, enhancing security and simplifying the codebase.
- Updated the desktop deep link listener to eliminate localStorage usage for user data, streamlining the authentication process.
- Adjusted the Redux store configuration to remove custom storage for backward compatibility, focusing on a cleaner state management approach.
These changes enhance the application's architecture by centralizing state management and improving maintainability.
- Added Redux Toolkit for managing authentication state, replacing Zustand for token handling.
- Implemented authSlice for token management, including setting and clearing tokens with localStorage synchronization.
- Refactored components (Login, Home, TelegramLoginButton) to utilize Redux for token management, enhancing state consistency.
- Updated App component to include Redux Provider and PersistGate for state persistence.
- Removed Zustand-based authStore and socketStore, streamlining the state management approach.
These changes improve the application's architecture by centralizing state management with Redux, enhancing maintainability and scalability.
- Introduced a new Zustand store for managing socket connection status and socket ID, improving state management for real-time communication.
- Updated the ConnectionIndicator component to utilize the socket store for dynamic status updates, allowing for better integration with the socket connection state.
- Enhanced the SocketService class to update the socket connection status during various connection events, ensuring accurate status reporting.
- Refactored the TelegramLoginButton component to clarify JWT token handling in comments, improving code readability.
These changes enhance the application's real-time capabilities and provide a more robust user experience by accurately reflecting connection states.
- Introduced Zustand for managing authentication state, including token storage and user session handling.
- Updated TelegramLoginButton and Home components to utilize the new auth store for setting and clearing tokens.
- Enhanced the desktop deep link listener to store session tokens in the Zustand store, ensuring consistent state management.
- Refactored localStorage interactions for session tokens to improve backward compatibility.
These changes streamline the authentication process and improve state management across the application.
- Introduced a new TelegramLoginButton component to handle user authentication via Telegram.
- Replaced the previous Telegram login button implementation in the Welcome component with the new TelegramLoginButton for improved modularity and code clarity.
- Updated configuration to include TELEGRAM_BOT_ID for seamless integration with the Telegram authentication flow.
These changes enhance the user experience by providing a dedicated component for Telegram login, streamlining the authentication process.
- Modified the description in the ConnectionIndicator component for clearer messaging.
- Refactored button styles in the Home component to enhance visual consistency and user interaction.
- Removed the AnalyticsStep component to streamline the onboarding process.
These changes aim to improve user clarity and engagement throughout the application.
- Introduced a new LottieAnimation component to handle Lottie animations in the onboarding flow.
- Updated the Onboarding component to include Lottie animations for each step, enhancing visual engagement.
- Added multiple Lottie animation files to the public/lottie directory for use in onboarding steps.
- Adjusted the ConnectStep and GetStartedStep components to improve messaging and user experience.
These changes aim to create a more dynamic and engaging onboarding experience for users, utilizing animations to illustrate key steps in the process.