Commit Graph
22 Commits
Author SHA1 Message Date
Steven EnamakelandGitHub 5ecc7cbc75 refactor: consolidate CLI binaries and streamline CI workflows (#44)
* 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.
2026-03-27 13:58:29 -07:00
Steven EnamakelandGitHub 37991fc567 refactor: split tauri host from openhuman_core runtime (#43)
* 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.
2026-03-27 13:30:32 -07:00
470302e040 fix: remove standalone bins from Cargo.toml to fix Tauri bundler failure (#39)
* 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>
2026-03-27 08:18:28 -07:00
Steven Enamakel 909f0f2869 chore: update Tauri CLI version and refine build commands
- 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.
2026-03-26 20:03:22 -07:00
Steven Enamakel 129e227074 chore: update OpenHuman version to 0.49.12 and refine release workflow
- 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.
2026-03-26 19:40:36 -07:00
Steven Enamakel c9ff3cfb13 chore(release): update OpenHuman version to 0.49.11 and refine release workflow
- 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.
2026-03-26 19:36:20 -07:00
Steven Enamakel cfd0f841fe fix(release): adjust argument parsing for OpenHuman binary in release workflow
- 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.
2026-03-26 19:20:21 -07:00
Steven Enamakel 44bcf3f26c chore: enhance release workflow and update Cargo.toml 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.
2026-03-26 18:51:54 -07:00
Steven Enamakel 851f2308bd refactor: remove Tauri integration and update tools discovery mechanism
- 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.
2026-03-26 18:29:44 -07:00
Steven Enamakel 30e355ddd1 chore: refine macOS release workflow and clean up Cargo.toml
- 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.
2026-03-26 18:05:49 -07:00
Steven Enamakel 97d0e33330 chore: update Tauri signing keys and enhance macOS release workflow
- 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.
2026-03-26 17:55:31 -07:00
Steven Enamakel 52ba6b9614 feat: add macOS ARM64 build workflow and script
- 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.
2026-03-26 17:33:08 -07:00
Steven Enamakel 34fed764ee chore: optimize Cargo.lock handling in GitHub workflows
- 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.
2026-03-26 17:14:24 -07:00
Steven EnamakelandGitHub bfaabd3b86 fix/rename (#20)
* 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.
2026-03-26 17:04:46 -07:00
Steven Enamakel e5abaa1829 chore: add skills dependencies installation step in release workflow
- Included a new step to install dependencies for the skills directory in the GitHub Actions release workflow to ensure all necessary packages are available for the build process.
2026-03-26 15:45:26 -07:00
Steven Enamakel 8bebad6b39 chore: update release workflow job name for clarity
- Renamed the cleanup job in the GitHub Actions workflow to better reflect its purpose of removing releases and tags if the build fails.
- Updated the version of the AlphaHuman package in Cargo.lock to 0.49.1.
2026-03-26 15:42:52 -07:00
Steven Enamakel e37a6ad672 chore: add cleanup job for failed releases in GitHub Actions workflow
- Introduced a new job to remove GitHub releases and associated tags if the build artifacts fail or are cancelled after a successful release creation.
- Implemented error handling for invalid release IDs and missing tags during the cleanup process.
2026-03-26 15:41:19 -07:00
Steven Enamakel eafd2127e3 chore: downgrade tauri-action version in workflows
- Updated the tauri-action version from v1 to v0.6.2 in both package-and-publish.yml and release.yml workflows for compatibility reasons.
2026-03-26 15:40:10 -07:00
Steven Enamakel af15285fc8 chore: update release workflows to include production environment
- Added 'Production' environment specification to the create-release and build jobs in the GitHub Actions workflow.
2026-03-26 15:10:05 -07:00
Steven Enamakel 2b157615a6 chore: update workflows and configuration
- Added `tauri.key` and `tauri.key.pub` to .gitignore.
- Removed Telegram-related environment variables from CLAUDE.md and documentation.
- Updated GitHub Actions workflows to use the latest version of `tauri-action`.
- Deleted legacy version bump workflow and added a new changelog update workflow.
- Introduced a script for testing release workflows locally.
2026-03-26 14:57:29 -07:00
Steven Enamakel 036e91c45f chore: update workflows and configuration for project rebranding
- Removed Telegram-related environment variables from workflows.
- Updated GitHub repository references in workflows to reflect new project ownership.
- Changed default skills GitHub repository in configuration to align with rebranding.
2026-03-26 14:40:16 -07:00
Steven Enamakel 15a6279aa8 refactor: update workflows and documentation
- Removed outdated workflows for lander deployment and PR creation from develop to main.
- Updated build workflow to trigger on push events.
- Renamed version bump workflow to indicate it's legacy.
- Simplified CLAUDE.md by removing unnecessary introductory text.
2026-03-26 14:26:09 -07:00