* chore: bump version to 0.3.0 [skip ci]
* chore: bump version to 0.4.0 [skip ci]
* fix: update GitHub Actions workflow to use new token and repository settings
- Changed the environment variable for publishing to use `XGH_TOKEN` instead of `GH_TOKEN` for authentication.
- Updated the `PUBLISH_REPO` variable to specify the repository directly.
- Adjusted echo messages and curl commands to reflect the new token usage, ensuring proper functionality during the release process.
These changes enhance the security and clarity of the publishing workflow.
* fix: update Tauri configuration identifier
- Changed the application identifier from 'org.telegram.TelegramAir' to 'com.alphahuman.app' in the Tauri configuration file.
This update aligns the identifier with the new application branding.
* fix: add frontend build step and fix frontendDist path in CI
* chore: update GitHub Actions workflows to include Python sidecar setup and caching
- Added installation of Python dependencies in both build and package-and-publish workflows.
- Implemented setup for Python sidecar binary for Linux and macOS platforms.
- Introduced caching for Cargo registry and build artifacts to optimize build times.
These changes enhance the CI/CD process by improving dependency management and build efficiency.
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.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.
- Changed the workflow trigger from push events on the main branches to a workflow_run event that activates upon the completion of the "Version Bump" workflow.
- This adjustment streamlines the CI/CD process by ensuring that packaging and publishing only occur after version updates are finalized.
These changes enhance the automation and reliability of the deployment pipeline.
- Introduced a new `.prettierrc` file to define code formatting rules, including settings for semicolons, trailing commas, and import order.
- Added a `.prettierignore` file to exclude specific directories and files from formatting, ensuring a cleaner codebase.
- Updated `package.json` to include new scripts for formatting and linting, enhancing the development workflow.
These changes establish a consistent code style and improve maintainability across the project.
- Removed the push trigger from the build workflow, focusing on pull requests for CI/CD processes.
- Simplified concurrency group definition by eliminating fallback options, ensuring clearer management of in-progress builds.
These changes enhance the clarity and efficiency of the CI/CD pipeline, aligning it more closely with project needs.
- Updated the skills submodule to the latest commit, ensuring alignment with project dependencies.
- Introduced new GitHub Actions workflows:
- `build.yml` for building the Tauri app.
- `test.yml` for running unit tests with coverage.
- `pr-protection.yml` to enforce PR title conventions and branch protection.
- `version-bump.yml` for automated version bumping on main branch pushes.
These changes enhance the CI/CD pipeline, improve code quality checks, and ensure the project remains up-to-date with the latest skills integration.
* 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>
* Migrate entity graph from local SQLite to remote Neo4j backend API
Replace Tauri IPC invoke() calls with REST API calls to /api/entity-graph/
endpoints. EntityManager public API is unchanged so all consumers (AIProvider,
EntityQuery, SkillRegistry) need no modifications.
- Rewrite manager.ts to use apiClient instead of Tauri invoke()
- Add Neo4j response types and conversion helpers in types.ts
- Remove Rust entity_db.rs (607 lines) and rusqlite dependency
- Remove 12 ai_entity_* commands from Tauri generate_handler
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Add Git workflow guidelines to CLAUDE.md
- Introduced a new section outlining the requirement for all pull requests to target the `develop` branch instead of `main`. This update aims to standardize the contribution process and improve collaboration among developers.
* Enhance EntityManager with optimistic concurrency control for tag management
- Introduced MAX_TAG_RETRIES constant to handle HTTP 409 Conflict errors during tag addition and removal.
- Refactored addTag and removeTag methods to implement retry logic using If-Match headers for optimistic concurrency control.
- Updated search and getByTag methods to utilize URLSearchParams for improved query handling.
- Simplified entity fetching logic in getById and search methods to enhance performance and clarity.
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* Add AI intelligence system with memory, sessions, skills and constitution
Implements a client-side AI system inspired by OpenClaw's architecture:
Rust backend (src-tauri/src/ai/):
- SQLite memory database with FTS5 full-text search (memory_db.rs)
- AES-256-GCM encryption with Argon2id key derivation (encryption.rs)
- Session JSONL file I/O and memory file management (sessions.rs)
- 30 new Tauri commands for memory, encryption, and session operations
TypeScript AI modules (src/lib/ai/):
- Constitution framework: safety rules, memory principles, action validation
- Memory system: markdown chunking, hybrid FTS5+vector search, encryption
- Prompt system: modular builder with 7 sections (constitution, identity,
crypto-intelligence, memory-recall, skills, tools, context)
- Session system: JSONL transcripts, context compaction, memory flush
- Skills framework: SKILL.md loader, registry, GitHub installer
- LLM providers: pluggable interface with custom and OpenAI implementations
- AI tools: memory_search, memory_read, memory_write, web_search
Integration:
- Redux aiSlice with persisted config
- AIProvider in the app provider chain
- All data encrypted at rest, zero-knowledge architecture
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Apply cargo fmt formatting
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Add unit tests for AI intelligence system
Cover constitution (loader, validator), memory (chunker), prompts
(system-prompt, sections), providers (embeddings), sessions (types),
skills (frontmatter, registry), tools (registry), and Redux aiSlice.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Enhance AI system with entity management and constitution updates
- Introduced EntityManager and EntityQuery classes for managing entity relationships and queries within the AI platform.
- Updated constitution loader to fetch the constitution from a public GitHub repository, with fallback to a bundled default.
- Enhanced constitution parsing to support new formats and improved error handling.
- Updated memory schema to reflect changes in storage management.
- Added support for loading skill definitions from TypeScript files, improving skill lifecycle management.
This update strengthens the AI system's capabilities in entity management and constitution handling, ensuring better compliance and functionality.
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
- Restructured integration libraries to have dedicated directories for each integration (e.g., Telegram, future Gmail) under `src/lib/<integration>/`, improving organization and clarity.
- Updated state management to ensure all Redux dispatches for each integration are routed through specific state functions, enhancing maintainability.
- Consolidated services related to each integration within their respective folders, separating them from cross-cutting services.
This update streamlines the architecture for better scalability and maintainability of integrations.
- 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 a new `messageLoader` service to handle smart message fetching with three-direction loading, request cancellation via AbortController, and batch ID fetching.
- Implemented a `mtprotoService` for managing the MTProto client lifecycle, including initialization, connection, and authentication processes.
- Added an `updateManager` service to track and process updates with gap detection and recovery mechanisms, ensuring reliable message delivery.
- Included comprehensive tests for the update manager to validate its functionality and state management.
This update enhances the Telegram integration by providing robust message handling and update processing capabilities.
- 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.
- Added the `debug` package to enhance logging capabilities across the application.
- Included `@types/debug` for TypeScript support, ensuring type safety in logging implementations.
- Updated package-lock and yarn.lock files to reflect these changes.
This update aims to facilitate better debugging and monitoring of the Telegram MCP system.
- Updated import paths for Telegram types and API functions to improve module organization.
- Introduced new helper functions for reading typed values from MCP tool arguments.
- Added comprehensive API functions for managing Telegram contacts, chats, and messages, including creating groups, channels, and polls.
- Implemented a tool action parser to convert tool inputs into human-readable descriptions.
- Added tests for new functionalities to ensure reliability and correctness.
This update enhances the Telegram MCP server's capabilities and improves code maintainability.
API read functions previously fetched data from Telegram but never
persisted it to Redux, causing the cache to stay empty after API calls.
Now all read functions that fetch from the Telegram API dispatch Redux
actions to update chats, messages, and users in the store.
Introduces src/lib/mcp/telegram/state/ with dispatch helpers for chat,
message, and user state updates. Modifies 15 API functions to call
these after successful API fetches.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 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.
Set up Vitest with node polyfills and add 338 tests across 18 test files
covering the MCP tools, API layer, Redux state, selectors, and update
manager. Fix shallow-copy bug in ensureUser that caused shared state
between Redux user entries.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Implements a sync service that loads all chats via GetDialogs in batched
100-chat requests, preloads messages for the top 20 chats with rate-limit
pacing, and processes real-time Telegram updates through the existing
UpdateManager's PTS/SEQ state machine. The service is triggered automatically
by TelegramProvider when the connection is established and authenticated.
New files: syncService, entityBuilders, updateHandler, schedulers (all under
src/services/telegram/). Redux state extended with isSyncing, isSynced, users
map, and batch chat reducers (replaceChats, addChats, setSyncStatus, etc.).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Split monolithic tool handlers into a clean two-layer architecture:
- `api/` layer: ~80 files with raw Telegram API calls returning typed `ApiResult<T>` with `fromCache` boolean
- `tools/` layer: thinned to validation + formatting wrappers delegating to api/
Key changes:
- Add `ApiResult<T>` type and `fromCache` field to `MCPToolResult`
- Extract shared helpers (getChatById, formatMessage, etc.) into `api/helpers.ts`
- Move `apiResultTypes.ts` and `apiCastHelpers.ts` into `api/`
- Delete `telegramApi.ts` (all logic migrated to individual api/ files)
- Add `validatePositiveInt` to validation utilities
- Auto-infer `fromCache` in server.ts via `isStateOnlyTool()` safety net
- Update `bulk.ts` skill to import from new api layer
Net reduction of ~2,475 lines across 86 files.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Changed all references in documentation and code to reflect the new `alphahuman://` URL scheme for web-to-desktop handoff.
- Updated deep link handling in Tauri configuration, utility functions, and authentication flow to ensure compatibility with the new scheme.
- Enhanced documentation to guide users on the updated authentication process.
This update improves the clarity and functionality of the authentication flow for the desktop application.
- Changed all references in documentation and code to reflect the new `alphahuman://` URL scheme for web-to-desktop handoff.
- Updated deep link handling in Tauri configuration, utility functions, and authentication flow to ensure compatibility with the new scheme.
- Enhanced documentation to guide users on the updated authentication process.
This update improves the clarity and functionality of the authentication flow for the desktop application.
- 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 three-tier tool classification system for rate limiting: state_only, api_read, and api_write, improving the management of tool execution based on their API call characteristics.
- Updated rate limiting configuration to reflect new classifications, ensuring appropriate delays for different tool types.
- Implemented API fallback mechanisms in various tools to first attempt data retrieval from cached Redux state before falling back to Telegram API calls, enhancing performance and reliability.
- Refactored multiple Telegram tools to utilize the new API fallback approach, improving user experience during data retrieval.
This update significantly enhances the efficiency and responsiveness of the MCP by optimizing tool execution and data retrieval processes.
- Introduced a new rate limiter to manage tool execution frequency, preventing excessive API calls and ensuring smoother performance.
- Added bulk operations skill for batch processing of messages, including sending, archiving, and deleting across multiple chats.
- Implemented reminders skill for creating and managing time-based reminders, enhancing user interaction capabilities.
- Updated MCP server to integrate new skills and enforce rate limits on tool execution, improving overall system reliability and user experience.
This update significantly enhances the functionality of the MCP by providing powerful new tools while ensuring responsible API usage through rate limiting.
- 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.
- Introduced detailed architecture overview outlining system components and entry points.
- Documented state management using Redux Toolkit and Redux-Persist, including store configuration and slice structures.
- Described services layer architecture, detailing API client, socket service, and MTProto service functionalities.
- Explained the Model Context Protocol (MCP) system, including tool categories and implementation examples.
- Outlined routing structure and page components, emphasizing protected and public routes.
- Organized reusable components by feature, detailing their structure and usage.
- Provided insights into provider management for service lifecycle and shared state.
This documentation enhances understanding of the application's structure and improves onboarding for new developers, ensuring clarity in the system's design and functionality.
- Replaced the favicon in index.html with a new alpha.svg icon.
- Enhanced package.json with new macOS-specific build and run scripts for Tauri.
- Added a comprehensive macOS background execution implementation, including a system tray menu and autostart functionality.
- Updated Tauri configuration to support tray icon and macOS private API features.
- Introduced new capabilities for autostart and tray management in the application.
This update improves the user experience on macOS by providing a seamless background execution feature and a visually updated application icon.
This workflow automates the process of building, packaging, and publishing a Tauri application. It includes version extraction, release creation, and asset uploading for different platforms.
* 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.
- Introduced exponential backoff for connection retries in TelegramProvider, enhancing resilience during connection failures.
- Refactored MTProtoService to manage concurrent initialization and connection calls, preventing duplicate requests.
- Updated Redux store configuration to reset volatile fields on rehydrate, ensuring clean state management for Telegram sessions.
- Enhanced error handling in Telegram thunks to ensure proper initialization before connection attempts.
This update significantly improves the reliability and user experience of the Telegram connection process, ensuring smoother interactions and better state management.
- Updated the App component to include a new layout structure that wraps AppRoutes in a div with a fixed footer for user notifications.
- Added a notification banner to inform users that the application is in alpha and encourages feedback via a Telegram bot.
- Improved overall readability and maintainability of the component by restructuring the JSX.
This update enhances the user experience by providing clear feedback and a more organized layout within the application.