* refactor: remove mobile platform support and update documentation
- Updated CONTRIBUTING.md and SECURITY.md to reflect the removal of Android and iOS support, focusing on desktop platforms only.
- Modified AGENTS.md and MEMORY.md to clarify the platform capabilities of OpenHuman as a desktop application.
- Adjusted various Rust files to eliminate references to mobile platforms, including socket management and platform detection logic.
- Removed mobile-specific code from SkillsGrid and Skills components, ensuring the application is tailored for desktop usage.
- Deleted unused iOS and Android assets and configurations from the Tauri project structure.
* chore: remove zeroclaw mentions and mobile support paths
* chore: update dependencies and remove unused packages
- Removed several unused dependencies from package.json, including `@tauri-apps/plugin-shell`, `@types/react-router-dom`, `immer`, `qrcode.react`, and `@testing-library/user-event`.
- Updated the Vite configuration to exclude `telegram` from the optimizeDeps include list.
- Cleaned up yarn.lock by removing references to deleted packages.
- Deleted outdated GitHub Actions workflows for macOS ARM64 build, package and publish, and update changelog.
* refactor: consolidate CLI binaries and update configurations
- Renamed the main binary from `openhuman-core` to `openhuman` for consistency across the project.
- Removed the `openhuman-cli` and `openhuman-core` binaries, consolidating functionality into the new `openhuman` binary.
- Updated build configurations in GitHub Actions and Tauri to reflect the new binary name and paths.
- Adjusted the Tailwind and Vite configurations to point to the correct HTML and source directories.
- Introduced a new method in the Rust core server for handling JSON-RPC calls, enhancing the API structure.
* chore: update subproject commit reference in skills
* chore: update Rust test workflow and improve CLI command formatting
- Modified the GitHub Actions workflow to include a new job for running Rust tests in the workspace.
- Updated the `test:rust` command in `package.json` to run tests for the entire workspace.
- Refactored CLI command definitions in `openhuman.rs` for improved readability by consolidating struct fields into single lines.
* chore: enhance E2E testing scripts and workflows
- Updated `.prettierignore` to exclude the `rust-core` directory.
- Added new E2E testing commands in `package.json` for running all flows and improved formatting commands to include `cargo fmt`.
- Enhanced GitHub Actions workflows to streamline E2E testing, including new scripts for running individual specs and all flows sequentially.
- Refactored existing E2E scripts to utilize a common function for running tests, improving maintainability and readability.
- Introduced a new script for resolving Node.js and Appium dependencies, ensuring compatibility for E2E tests.
- Cleaned up and simplified existing E2E scripts by removing redundant code and consolidating functionality.
* chore: update GitHub Actions workflows for Tauri build process
- Modified build and release workflows to reference the correct target directory for Rust binaries, ensuring compatibility with the Cargo workspace structure.
- Adjusted caching configuration in the test workflow for consistency and improved readability.
- Standardized environment variable formatting in the test workflow to enhance clarity.
* fix: standardize string formatting in GitHub Actions workflows
- Updated the test workflow to use single quotes for cache configuration and environment variables, enhancing consistency across the file.
* chore: add Cargo.toml and Cargo.lock for rust-core workspace
- Introduced a new workspace for the rust-core module with its own Cargo.toml.
- Added Cargo.lock to manage dependencies for the rust-core module.
- Updated .gitignore to exclude the target directory generated by Cargo.
- Modified GitHub Actions workflow to build from the new rust-core path instead of src-tauri.
* feat: enhance memory and authentication models in rust-core
- Added new `memory` module to handle persistent memory operations for skills, including methods for storing and querying skill data.
- Introduced `models` module with `auth` and `socket` submodules to manage user session and socket connection states.
- Updated `lib.rs` to include new modules and ensure proper integration within the rust-core workspace.
- Modified `eslint.config.js` to ignore target directories in linting processes.
* feat: integrate Tauri and QuickJS support in rust-core
- Added `tauri` and `rquickjs` as optional dependencies in `Cargo.toml` to enable Tauri integration and JavaScript execution.
- Introduced `CronScheduler` and `PingScheduler` modules for managing scheduled tasks and health checks for skills.
- Implemented `MemoryState` struct for shared app-state management in the memory client.
- Updated the runtime module to include new schedulers and ensure proper integration with Tauri features.
- Enhanced the skill registry to support new functionalities related to skill management and communication.
* chore: update ESLint configuration and refactor Rust module imports
- Added 'rust-core/**' to ESLint ignore list to streamline linting processes.
- Refactored import paths in Rust modules to directly reference the `memory` module, enhancing clarity and maintainability.
- Improved formatting in JavaScript files for better readability and consistency.
* refactor: rename rust-core to openhuman-core and update dependencies
- Renamed the `rust-core` module to `openhuman-core` across all files for consistency.
- Updated `Cargo.lock` to include `openhuman-core` as a new dependency and removed `rust-core`.
- Adjusted import paths in the codebase to reflect the new module name, ensuring all references are updated.
- Enhanced the Tauri integration by modifying dependencies in `src-tauri/Cargo.toml` to point to `openhuman-core`.
* refactor: simplify platform detection using match statements
- Replaced multiple if-else statements with match expressions in `current_platform`, `get_platform`, and `register` functions for improved readability and maintainability.
- Removed unnecessary conditional compilation for Android and iOS in the `SocketManager` and `tauri_bridge` modules, streamlining the codebase.
- Enhanced the `send_notification` function to handle platform checks more efficiently.
* refactor: update platform detection to use std::env::consts
- Replaced `cfg!(target_os = "os_name")` checks with `std::env::consts::OS` for improved clarity and consistency across the codebase.
- Added `rppal` as an optional dependency in `Cargo.toml` for Raspberry Pi support.
- Cleaned up platform-specific code in various modules, enhancing maintainability.
* refactor: streamline platform-specific code and improve readability
- Replaced conditional compilation with `std::env::consts::OS` checks in various modules to enhance clarity and maintainability.
- Simplified platform detection logic in `available_disk_space_mb`, `ensure_arduino_cli`, and `open_in_brave` functions.
- Updated `screenshot_command_exists` test to conditionally skip based on the operating system.
- Cleaned up unnecessary `#[cfg]` attributes, focusing on a more consistent approach across the codebase.
* feat: introduce comprehensive AI configuration and memory management
- Added multiple configuration files for OpenHuman AI, including `AGENTS.md`, `BOOTSTRAP.md`, `CONSCIOUS_LOOP.md`, `IDENTITY.md`, `MEMORY.md`, `README.md`, `SOUL.md`, `TOOLS.md`, and `USER.md` to define agent roles, onboarding processes, identity, memory management, and tool capabilities.
- Implemented an encryption layer for AI memory storage in `encryption.rs`, utilizing AES-256-GCM for secure data handling.
- Updated `lib.rs` to include the new AI module structure, enhancing the overall architecture and maintainability of the codebase.
* refactor: update dependencies and configuration for improved structure
- Removed `android_logger` and related packages from `Cargo.lock` and `Cargo.toml`, streamlining the dependency list.
- Adjusted the `APP_IDENTIFIER` constant in `config.rs` to reflect the new application identifier.
- Updated resource paths in `tauri.conf.json` for better organization.
- Enhanced platform-specific dependency management in `Cargo.toml` for clarity and maintainability.
* fix(core): gate ai module behind tauri-host feature
* refactor: update AI loading mechanisms and improve platform handling
- Refactored the AI configuration loading in `loader.ts` and `tools/loader.ts` to utilize Tauri commands for desktop environments, enhancing performance and reliability.
- Updated paths for AI markdown files to reflect the new `rust-core` structure.
- Introduced a new end-to-end test for Tauri command interactions in `tauriCoreBridge.e2e.test.ts`.
- Cleaned up platform-specific code across various modules, ensuring a more consistent approach to handling desktop and web contexts.
* feat: add sidecar core binary build and staging for Tauri bundler
- Implemented build steps for the sidecar core binary in multiple workflows, targeting both x86_64-unknown-linux-gnu and aarch64-apple-darwin architectures.
- Added staging steps to copy the built binaries into the Tauri resources directory, ensuring proper integration for application bundling.
- Updated relevant workflows to enhance the build process and streamline artifact management.
* refactor: enhance AI loading logic for Tauri integration
- Updated `loader.ts` and `tools/loader.ts` to prioritize Tauri commands for loading configurations in desktop environments, with a fallback to bundled markdown files for web contexts.
- Adjusted test mocks to reflect the new file paths for tools markdown.
- Improved test setup to mock Tauri API behavior accurately.
* docs: update CLAUDE.md and remove Android build scripts from package.json
- Added a new section in CLAUDE.md detailing the runtime scope, clarifying that Tauri is desktop-only and should not include mobile or web branches.
- Removed Android development and build scripts from package.json to streamline the project for desktop platforms only.
* refactor: streamline import statements and enhance test mock structure
- Reordered import statements in `loader.ts` and `tools/loader.ts` for consistency.
- Simplified mock implementation in `tauriCoreBridge.e2e.test.ts` to improve readability and maintainability.
- Added external binary configuration in `build.rs` to support resource management during local builds.
* test: stabilize core/unit test paths and tauri build-test config
* chore: update subproject commit reference in skills
* chore: update Tauri build configuration to include custom environment variable
- Modified the Tauri build command in the GitHub Actions workflow to set a custom configuration for updater artifacts, enhancing the build process for the x86_64-unknown-linux-gnu target.
* fix: remove standalone bins from Cargo.toml to fix Tauri bundler failure
Tauri's bundler reads all [[bin]] entries from Cargo.toml and tries to
copy them into the app bundle, even when gated behind required-features.
This caused CI to fail with "openhuman-cli does not exist" because only
the OpenHuman binary was compiled.
- Remove openhuman-cli and openhuman-core [[bin]] entries from Cargo.toml
- Add autobins = false to prevent Cargo auto-discovering src/bin/*.rs
- Remove --bin OpenHuman flag from build/package-and-publish/release workflows
- In release.yml, inject [[bin]] entries temporarily for standalone build step
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: move standalone bins out of src/bin/ to prevent Tauri auto-discovery
Tauri CLI and Cargo both auto-discover src/bin/*.rs as binary targets,
regardless of autobins = false. Moving the files to src/standalone/
ensures they are completely invisible to the Tauri bundler.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: disable updater artifacts in build workflow
The build workflow is a CI check and doesn't have TAURI_SIGNING_PRIVATE_KEY.
Pass a config override to disable createUpdaterArtifacts for this workflow.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: clear updater pubkey in build workflow to skip signing
The updater plugin has a pubkey configured which triggers signing even
with createUpdaterArtifacts disabled. Clear the pubkey via config override.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: skip bundling in build workflow with --bundles none
The CI build check only needs to verify compilation succeeds, not
produce signed bundles. Using --bundles none skips the bundler entirely,
avoiding the TAURI_SIGNING_PRIVATE_KEY requirement.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* feat: implement Conscious Loop for proactive actionable item extraction
- Introduced a new background process that periodically recalls skill memory and extracts actionable items using LLM.
- Created `CONSCIOUS_LOOP.md` for LLM prompt structure and guidelines.
- Added `useConsciousItems` hook to manage and fetch actionable items from the `conscious` memory namespace.
- Updated `Intelligence` page to integrate and display actionable items from the Conscious Loop.
- Enhanced error handling and event emissions for better UI feedback during analysis runs.
* docs: update Conscious Loop documentation and enhance command structure
- Added detailed descriptions for `ConsciousLoopStartedEvent`, `ConsciousLoopCompletedEvent`, and `ConsciousLoopErrorEvent`.
- Expanded function documentation for `conscious_loop_run` and `conscious_loop_run_inner`, including parameters and logic flow.
- Introduced `conscious_loop_timer` details and error handling improvements.
- Modified `memory.rs` to expose `extract_namespaces_from_documents` as `pub(crate)`.
- Updated `mod.rs` and `lib.rs` to include new commands and timer setup.
- Clarified design decisions and event protocol for better understanding of the Conscious Loop functionality.
- Included formatting, linting, and compilation checks for JavaScript and Rust.
- Specified tools and commands for verifying code quality before marking tasks complete.
Updated error handling in chat commands to reduce redundant event emissions by logging errors instead. Enhanced error reporting for HTTP client and inference response failures. Added frontend logic to prevent duplicate error messages in the UI.
- Ensured the `messages` view updates when a new message is added to the currently selected thread.
- Simplified `useEffect` logic in `Conversations.tsx` to always set the selected thread for consistent message synchronization.
- Removed redundant `setSelectedThread` call during message dispatch to prevent state management issues.
- Improved table formatting in the `sdk-rust-e2e-test-run.md` and `tinyhumansai-sdk.md` files for better readability.
- Ensured consistent alignment and spacing across various sections to enhance user experience.
- Updated the TinyHumans AI SDK version in Cargo.lock and Cargo.toml.
- Added new documentation files for the Rust SDK E2E test run and TinyHumans AI SDK reference.
- Updated the skills subproject commit reference.
- Refactored memory client methods for improved functionality and consistency.
- Upgraded Tauri CLI version from 2.9.6 to 2.10.0 in package.json and yarn.lock.
- Modified build commands in various workflow files to include the `--bin OpenHuman` argument, ensuring the correct binary is targeted during builds for macOS and Linux.
- Streamlined argument handling in the build workflows for consistency across platforms.
- Eliminated several functions related to thread selection, creation, deletion, and purging to simplify the Conversations component.
- Introduced a new variable to manage the selected thread's tool timeline, enhancing the component's state management.
- Improved code readability by reducing complexity and focusing on essential functionality.
- Bumped OpenHuman version in Cargo.lock from 0.49.11 to 0.49.12.
- Cleaned up the release workflow by standardizing argument formatting for better consistency across platforms.
- Made minor formatting adjustments in Conversations component for improved readability.
* refactor: update Conversations component and routing logic
- Replaced the Conversations component rendering in AppRoutes with a redirect to the conversations list.
- Simplified the Conversations component by removing unused imports and state variables.
- Introduced default thread creation logic to ensure a conversation is always available.
- Streamlined the effect hooks for managing thread selection and message fetching.
* refactor: remove TDLib integration and clean up related code
- Eliminated TDLib-related code and comments across multiple files to streamline the project.
- Updated build logic to remove unnecessary checks for TDLib resources.
- Refined comments for clarity regarding background service shutdown and storage mechanisms.
- Adjusted the QuickJS runtime support module to reflect the removal of TDLib integration.
* refactor conversations to single default thread UI
- Updated the OpenHuman version in Cargo.lock from 0.49.8 to 0.49.11.
- Adjusted the release workflow to conditionally pass the `--bin OpenHuman` argument only on macOS, improving compatibility for Linux packaging.
* refactor: update AI configuration handling and remove OpenClaw integration
- Replaced OpenClaw context injection with direct AI configuration retrieval methods.
- Introduced new functions for fetching and refreshing AI configuration, enhancing modularity.
- Cleaned up the AIPanel component to utilize the new configuration structure.
- Removed obsolete OpenClaw-related files and logic to streamline the codebase.
- Added new TODO items for future enhancements in the documentation.
* docs: add PR template and update AI authoring rules
- Introduced a new pull request template in `.github/pull_request_template.md` to standardize PR submissions.
- Updated CLAUDE.md to require the use of the new PR template for all pull requests.
- Added a rule in AGENTS.md specifying that agents must adhere to the PR template when suggesting content.
* chore: update subproject commit and refine pre-push script
- Updated the subproject commit reference in the skills directory.
- Refined the pre-push script to improve formatting and linting checks, ensuring automatic fixes are applied when issues are detected.
* refactor: improve label formatting in AIPanel component
- Adjusted label formatting in the AIPanel component for better readability by breaking long lines into multiple lines.
- Ensured consistent styling for labels related to personality, safety rules, tools, and skills overview.
- Updated the release workflow to ensure the `--bin OpenHuman` argument is correctly passed to Cargo by adding an additional separator. This change addresses an issue with Yarn v1 stripping the argument layer, improving the build process for standalone binaries.
- Commented out macOS build configurations in the release workflow to focus on ensuring the flow works correctly.
- Added steps to build and upload standalone CLI binaries for `openhuman-core` and `openhuman-cli`.
- Updated `Cargo.toml` to require the `standalone-bins` feature for both binaries, streamlining the build process.
- Eliminated the Tauri integration files and related functions to streamline the tools discovery process.
- Updated the tools discovery logic to utilize a mock registry instead of relying on Tauri, enhancing compatibility and simplifying the workflow.
- Adjusted comments in the release workflow to reflect the changes in tools discovery and removed references to the now-removed Tauri binary.
- Updated comments in the GitHub Actions release workflow to clarify the handling of feature-gated binaries for macOS codesigning.
- Removed unnecessary required features for `openhuman-core` and `openhuman-cli` in Cargo.toml to streamline the configuration.
- Modified the Tauri signing key configuration in the GitHub Actions workflow to allow fallback to an updater private key if the primary key is not set.
- Added comments in the release workflow to clarify the handling of app binaries and feature-gated helper binaries for macOS codesigning.
- Updated the public key in the Tauri configuration for the updater plugin to a new value for improved security.
- Updated the Tauri command in both discover-tools.js and tauri-integration.js to include the new '--features tools-discovery-bin' option for enhanced tool discovery.
- Bumped OpenHuman version to 0.49.5 in Cargo.lock to reflect dependency updates.
- Added required features for openhuman-tools-discovery, openhuman-core, and openhuman-cli in Cargo.toml to support the new functionality.
- Introduced a new GitHub Actions workflow for building Tauri applications on macOS Apple Silicon (aarch64).
- Created a script to facilitate local execution of the macOS ARM64 build process, including handling secrets and environment variables.
- Updated existing workflows to replace the APPLE_APP_SPECIFIC_PASSWORD with a more generic APPLE_PASSWORD for consistency.
- Modified example secrets file to reflect the new password structure.
- Added a step to generate a fingerprint for Cargo.lock, skipping the first 7 lines to focus on dependency changes.
- Updated caching strategy for Cargo registry and git sources to utilize the new fingerprint for improved cache efficiency.
* chore: update AlphaHuman version to 0.49.3 and configure updater plugin in tauri.conf.json
- Bumped the AlphaHuman package version in Cargo.lock to 0.49.3.
- Added updater configuration in tauri.conf.json to enable automatic updates with specified endpoints.
* refactor: rename AlphaHuman to OpenHuman across the codebase
- Updated all instances of "AlphaHuman" to "OpenHuman" in comments, tooltips, and constants to reflect the new branding.
- Adjusted relevant documentation and prompts to ensure consistency with the new name.
* refactor: update documentation and configurations to reflect OpenHuman branding
- Replaced all instances of "AlphaHuman" with "OpenHuman" in documentation, comments, and configuration files to ensure consistency with the new branding.
- Updated deep link URLs and related authentication flows to use the new "openhuman://" scheme.
- Adjusted paths and references in the skills system and other related files to align with the new project name.te
* refactor: standardize OpenHuman references and update configurations
- Replaced all instances of "AlphaHuman" with "OpenHuman" across documentation, comments, and configuration files to maintain branding consistency.
- Updated URLs and paths to reflect the new "openhuman://" scheme.
- Adjusted environment variable names and related settings to align with the new project identity.
- Enhanced documentation for clarity and accuracy regarding the OpenHuman framework.r
* chore: update subproject commit reference in skills directory
* refactor: update backend URL to reflect new service domain
- Changed default backend URL from "https://api.openhuman.xyz" to "https://api.tinyhumans.ai" in both JavaScript and Rust configuration files.
- Ensured consistency across the codebase regarding the new backend service endpoint.
* feat: introduce identity and migration modules for OpenHuman
- Added a new identity module to support AIEOS v1.1 JSON format, including structures for identity, psychology, linguistics, motivations, capabilities, physicality, history, and interests.
- Implemented a migration module to facilitate data migration from OpenClaw memory, including SQLite and Markdown sources, with detailed reporting on migration statistics and warnings.
- Established utility functions for handling multimodal content and image processing within the OpenHuman framework.
- Enhanced the agent system with new dispatcher and classifier functionalities to improve tool management and message classification.
* chore: remove Android project files and configurations
- Deleted various Android project files including .editorconfig, .gitignore, build.gradle.kts, gradle.properties, and others to clean up the project structure.
- Removed all related resources, layouts, and source files from the Android app directory to streamline the codebase.
- This cleanup is part of a larger effort to refactor and simplify the project structure.
* refactor: update login flow and remove Telegram integration
- Removed the TelegramLoginButton component and its references from the OAuthLoginSection, streamlining the login options.
- Updated the AppRoutes to remove the login route, reflecting changes in the authentication flow.
- Enhanced the RotatingTetrahedronCanvas component with improved geometry and lighting effects for better visual presentation.
- Adjusted the TypewriterGreeting component's styling for consistency.
- Cleaned up the Welcome page to integrate the OAuthLoginSection directly, improving user experience.
* chore: update subproject commit reference in skills directory
* chore: update test configurations and improve test assertions
- Modified test scripts in package.json to use a specific Vitest configuration file for consistency.
- Updated assertions in loader tests to ensure loading durations are non-negative.
- Enhanced tool loading tests to clarify expected behavior regarding localStorage and cache management.
- Adjusted agent tool registry tests to improve error handling and ensure accurate statistics.
- Refined device detection tests to reflect updated fallback URLs.
* fix: enhance parameter formatting and remove unused components
- Updated the `formatParameters` function to handle cases where schema properties are empty, returning a more informative response.
- Deleted the `DownloadScreen` component and associated device detection utilities to streamline the codebase and remove unused functionality.
- Adjusted tests to reflect changes in the tool loading and agent tool registry, ensuring accuracy in assertions.
* chore: simplify Vitest configuration by removing unused include patterns
- Updated the Vitest configuration to remove unnecessary test file patterns, streamlining the test setup for better clarity and maintainability.
* refactor: update paths and comments for AI configuration and file watching
- Modified Vite configuration to ignore only the `src-tauri` directory.
- Updated logging messages to reflect the correct path for writing AI configuration files.
- Adjusted fetch calls in the file watcher to use the new path for `TOOLS.md`.
- Revised comments and logic in Rust code to clarify the handling of AI configuration file paths, including legacy fallback options.
* chore: remove unused updater secrets from GitHub Actions workflow
- Deleted UPDATER_GIST_URL and UPDATER_GIST_ID environment variables from the package-and-publish workflow, streamlining the configuration.
* chore: comment out Vitest thresholds for clarity
- Commented out the thresholds section in the Vitest configuration to improve clarity and maintainability, as it is currently not in use.
* ran formatter
* chore: update updater public key in tauri configuration
- Replaced the existing public key in the updater plugin configuration with a new value to ensure proper functionality and security.
* chore: update ESLint configuration and refactor components
- Added `localStorage` and `sessionStorage` as readonly globals in ESLint configuration for better linting support.
- Removed unused imports from `SkillsPanel.tsx` to clean up the code.
- Changed the type of `watcherInterval` in `file-watcher.ts` for improved type safety.
- Refactored toast management logic in `Intelligence.tsx` to enhance clarity and maintainability.
- Simplified import statements in `IntelligenceProvider.tsx` for consistency.
- Streamlined object property shorthand in `agentToolRegistry.ts` for cleaner code.
* refactor: improve error handling and type safety in Intelligence component
- Enhanced toast notification logic to defer state updates, preventing potential issues with setState in effects.
- Updated the source filter dispatch to use a more specific type for improved type safety.
* refactor: enhance type safety across various components and services
- Updated type definitions from `any` to `unknown` in multiple files to improve type safety and prevent potential runtime errors.
- Refactored state management in `TauriCommandsPanel` to use more specific types.
- Adjusted context and parameters in several interfaces to ensure consistent typing.
- Added ESLint directive to `polyfills.ts` for intentional global assignments.
- Streamlined type handling in utility functions and API responses for better clarity and maintainability.
* refactor: streamline import statements and improve code clarity
- Consolidated import statements in `agentToolRegistry.ts` and `intelligenceSlice.ts` for better readability.
- Simplified the `createTestStore` function in `test-utils.tsx` to enhance code conciseness.
- Cleaned up the `isExecutionStepProgressEvent` function in `intelligence-chat-api.ts` for improved clarity and maintainability.