CI runner lacks libonnxruntime so ORT Session::builder panics inside
its internal std::Mutex, poisoning it for the parallel test. Running
them serially avoids the second test hitting the poisoned mutex.
- Remove duplicate `libloading` package entry in Cargo.lock that caused
`failed to parse lock file` build errors
- Remove extra blank line in ingestion.rs:1098 to pass cargo fmt check
- Added an "Early Beta" note to the README to inform users about the development status.
- Updated the download instructions in the README for clarity and added a script for global installation.
- Introduced a new BUILDING.md file detailing the steps to build and install OpenHuman from source or via stable releases.
- Added a placeholder install script to guide users on future installation options.
- Updated the signing workflow to sign non-main binaries (sidecars) before the main .app bundle, improving compliance with Apple notarization requirements.
- Added diagnostic output to display the main executable name and list contents of the app bundle for better visibility during the signing process.
- Improved comments for clarity on the new signing steps and their significance in the overall workflow.
- Updated the signing process to include signing of non-main binaries (sidecars) before the main .app bundle, improving compliance with Apple notarization requirements.
- Added diagnostic output to list contents of the app bundle and main executable for better visibility during the signing process.
- Improved comments for clarity on the new signing steps and their significance in the overall workflow.
- Adjusted the formatting of the name matching logic for the daemon executable in `common.rs` to enhance readability.
- Ensured consistency in the checks for the executable name across different operating systems, maintaining clarity in the codebase.
- Updated the build script to re-create the DMG with the stapled .app, ensuring compliance with Apple notarization requirements.
- Added notarization step for the DMG using xcrun notarytool, improving the overall security and integrity of the release process.
- Enhanced comments for clarity on the new notarization and stapling steps.
- Changed the default binary name from "openhuman" to "openhuman-core" in Cargo.toml and related scripts.
- Updated build and test workflows to reference the new binary name, ensuring consistency across the project.
- Adjusted paths and executable checks in the codebase to accommodate the renamed binary, improving clarity and maintainability.
- Updated the signing workflow to focus solely on signing the entire .app bundle with hardened runtime, eliminating unnecessary sidecar signing steps.
- Enhanced diagnostic output to list the contents of the app bundle before signing, improving visibility during the process.
- Improved comments for clarity on the new streamlined signing approach and its compliance with Apple notarization requirements.
- Updated the re-signing workflow to focus on signing sidecar binaries and frameworks with hardened runtime, ensuring compliance with Apple notarization requirements.
- Enhanced diagnostic output for better visibility during the signing process, including verification of sidecar binaries.
- Improved comments for clarity on the signing steps and their significance in the overall workflow.
- Bumped version to 0.49.30 in Cargo.lock to reflect changes.
- Updated the re-signing workflow to strip existing signatures before signing binaries and frameworks, ensuring compliance with Apple notarization requirements.
- Changed the signing approach to an inside-out method, signing nested code first and then the outer .app bundle.
- Enhanced diagnostic output for better visibility during the signing process.
- Updated comments for clarity on the new signing steps and their importance.
- Consolidated the re-signing of the entire .app bundle into a single command with the `--deep` option, improving efficiency and reliability.
- Removed redundant sidecar re-signing loops, simplifying the signing workflow.
- Enhanced diagnostic output to list contents of the app bundle, aiding in troubleshooting.
- Updated comments for clarity on the signing process and its requirements.
- Added steps to ensure the signing identity is available by creating and managing a keychain for certificate import.
- Implemented security commands to unlock the keychain and import the signing certificate, improving the reliability of the signing process.
- Cleaned up temporary certificate files after use to maintain a secure environment.
- Added a new step to locate the macOS .app bundle dynamically, improving reliability in finding the application during the release process.
- Updated subsequent steps to utilize the located .app path and bundle directory, ensuring correct signing and notarization of the application.
- Enhanced error handling to provide clearer feedback if the .app bundle cannot be found.
* refactor(skills): migrate to registry-based skill management and update state handling
- Replaced Redux-based skill state management with hooks for improved performance, utilizing `useAvailableSkills`, `useSkillSnapshot`, and `useAllSkillSnapshots`.
- Streamlined skill list derivation and sorting logic to enhance clarity and maintainability.
- Updated components to reflect the new state management approach, ensuring real-time updates and compatibility with existing code.
- Bumped OpenHuman version to 0.49.24 in Cargo.lock.
* refactor(skills): update skill state handling and remove Redux dependencies
- Simplified skill state management by replacing Redux-based logic with direct references to runtime maps.
- Adjusted the SkillsGrid component to derive skill sync summary text without relying on skill states.
- Removed unused Redux configurations and tests related to skills, streamlining the codebase.
* fix(skills): make notifyOAuthComplete resilient when no local runtime
notifyOAuthComplete and triggerSync no longer throw when the frontend
SkillManager has no local runtime instance. They persist setup_complete
via RPC first, then try core RPC pass-through as fallback.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* refactor(skills): clean up imports and improve configuration handling
- Consolidated import statements in the SkillsGrid component for better readability.
- Updated the DEV_FORCE_ONBOARDING constant in the config file to enhance clarity and maintainability by combining conditions into a single line.
* feat(skills): add SkillDebugModal for runtime skill inspection
- Introduced SkillDebugModal component to inspect a skill's runtime state, including metadata, published state, and tool definitions.
- Integrated the modal into the SkillCard component, allowing users to open it for debugging purposes.
- Implemented functionality for calling tools and displaying results, enhancing the debugging experience for skills.
* feat(skills): enhance OAuth deep link handling and skill management
- Improved the OAuth deep link process by adding steps to persist setup completion, start the skill in the core runtime, and notify the skill of OAuth completion.
- Enhanced error handling for starting skills and notifying OAuth completion, ensuring resilience in the skill management workflow.
- Updated logging throughout the process to provide better insights into the state and actions taken during OAuth handling and tool calls.
* chore(build): update Tauri configuration and add macOS build script
- Disabled the creation of updater artifacts in the Tauri configuration to streamline the build process.
- Introduced a new script for building and code-signing macOS Tauri releases, including notarization steps and environment variable validation.
- Updated environment loading logic to source from the correct secrets file for improved configuration management.
* feat(build): add pre-signing for sidecar binaries in macOS build script
- Implemented pre-signing of sidecar binaries with hardened runtime and entitlements to comply with Apple notarization requirements.
- Enhanced the build script to verify and sign all executables in the specified sidecar directory, ensuring proper code-signing before the build process.
* feat(build): implement pre-signing for sidecar binaries in macOS build script
- Added functionality to pre-sign sidecar binaries with hardened runtime and entitlements to meet Apple notarization requirements.
- Enhanced the build script to verify and sign all executables in the specified sidecar directory, ensuring compliance before the build process.
* feat(build): enhance macOS build process with notarization and sidecar re-signing
- Added a new step to the release workflow for re-signing sidecar binaries with hardened runtime and notarization after the build process.
- Updated the build script to remove pre-signing of sidecar binaries, ensuring notarization is handled separately for compliance with Apple requirements.
- Improved the overall build process by verifying and re-signing all executables within the .app bundle, including frameworks and resources, before notarization.
- Implemented DMG re-packaging after notarization to ensure the latest signed application is included in the distribution.
* refactor(capture): consolidate import statements for AppContext and WindowBounds
- Combined separate import statements for AppContext and WindowBounds into a single line for improved readability and organization in the capture module.
* refactor(logging): improve log formatting for better readability
- Updated log statements in various files to use multi-line formatting for improved clarity and consistency.
- Enhanced the SkillDebugModal and event loop logging to streamline the output and make it easier to read.
- Refactored log messages in js_handlers and ops_net to maintain uniformity in logging style.
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* refactor(tauriCommands): streamline RPC method calls for skill management
- Simplified the syntax of RPC method calls in the `tauriCommands.ts` file by removing unnecessary line breaks, enhancing code readability.
- Updated descriptions in the `schemas.rs` file to maintain consistent formatting for RPC method descriptions, improving documentation clarity.
* chore(release): bump OpenHuman version to 0.49.23 in Cargo.lock
* feat(skills): add skill status management in desktopDeepLinkListener
- Introduced a new action `setSkillStatus` to manage the skill's connection status.
- Updated the OAuth deep link handling to dispatch the skill status as 'ready' upon successful connection, improving state management for skills.
* feat(screen_intelligence): implement capture mode for screenshots
- Added a `CaptureMode` enum to differentiate between windowed and fullscreen screenshot captures.
- Enhanced the `capture_screen_image_ref_for_context` function to determine capture mode based on window bounds, with fallback to fullscreen.
- Implemented logic to downscale screenshots exceeding size limits when captured in fullscreen mode.
- Introduced a new `parse_foreground_output` function to parse application context from AppleScript output, improving context retrieval for screenshots.
* chore(build): update Tauri configuration to remove updater artifacts creation
- Modified the TAURI_CONFIG_OVERRIDE to exclude the creation of updater artifacts during the build process, streamlining the build workflow.
* feat(accessibility): enhance accessibility state and add capture test functionality
- Introduced new properties `captureTestResult` and `isCaptureTestRunning` to the `AccessibilityState` interface for managing capture test states.
- Added `CaptureTestResult` and `CaptureTestContextInfo` interfaces to define the structure of capture test results.
- Implemented `openhumanScreenIntelligenceCaptureTest` function to initiate screen intelligence capture tests, improving accessibility features.
* feat(debug): add Screen Intelligence Debug Panel for enhanced diagnostics
- Introduced a new `ScreenIntelligenceDebugPanel` component to display accessibility status, session information, and capture test results.
- Integrated the debug panel into the existing `ScreenIntelligencePanel`, allowing users to expand and collapse the debug section.
- Updated accessibility state management to include `captureTestResult` and `isCaptureTestRunning` for improved testing feedback.
- Enhanced test setup to accommodate new debug functionalities.
* feat(screen_intelligence): implement custom hook for screen intelligence items
- Added `useScreenIntelligenceItems` hook to fetch and manage screen intelligence items from the accessibility state.
- Integrated the hook into the `Intelligence` component, combining items from both memory and screen intelligence sources.
- Enhanced loading state management to reflect the combined loading status of both data sources.
* test(screen_intelligence): add unit tests for useScreenIntelligenceItems mapping and confidenceToPriority functions
- Introduced tests for the mapping logic of AccessibilityVisionSummary to ActionableItem, ensuring correct transformation of properties.
- Added tests for confidenceToPriority function to validate priority assignment based on confidence levels.
- Included edge cases such as handling empty arrays, null app names, and long actionable notes truncation.
* feat(mnemonic): update mnemonic handling to support variable word counts
- Refactored mnemonic import logic to accommodate BIP39 phrase lengths (12, 15, 18, 21, 24 words).
- Updated state initialization and validation to dynamically adjust based on the allowed word counts.
- Enhanced user prompts to reflect the new word count options for recovery phrases.
- Adjusted focus handling for input fields to improve user experience during phrase entry.
* refactor(skills): migrate skill state management to RPC-based hooks
- Replaced Redux-based skill state management with RPC-backed hooks for improved performance and reactivity.
- Introduced `useSkillSnapshot` and `useAllSkillSnapshots` hooks to fetch skill states directly from the Rust core.
- Updated components to utilize the new hooks, enhancing the overall architecture and reducing dependency on Redux.
- Added event listeners to trigger state updates in response to skill state changes, ensuring real-time updates across the application.
* fix(lint): merge duplicate tauriCommands import in accessibilitySlice test
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* refactor(tests): remove eslint-disable comment from screen intelligence E2E test file
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Replaced direct Tauri invocations with a unified `callCoreRpc` function for skill management operations, enhancing code consistency and maintainability.
- Updated functions for listing, discovering, starting, stopping, and managing skill data to utilize the new RPC schema.
- Added new RPC handlers for skill discovery, listing, data reading, writing, enabling, disabling, and checking if a skill is enabled, expanding the skills management capabilities.
- Enhanced the SkillManifest struct to support serialization, improving data handling for skill manifests.
- Changed the workflow to create draft releases instead of published ones.
- Added a new job to publish the draft release after successful builds, enhancing the release process.
- Updated relevant steps to reflect the new draft status for releases.
- Introduced a new RPC schema to facilitate sending arbitrary RPC methods to running skills.
- Implemented the `handle_skills_rpc` function to process RPC requests, including skill ID, method name, and optional parameters.
- Updated the controller schemas to include the new RPC functionality, enhancing the skills management system.
- Introduced a new entitlements file for the sidecar to enhance security during code signing.
- Updated the GitHub Actions workflow to utilize the entitlements file in the signing process.
- Bumped OpenHuman version to 0.49.21 in Cargo.lock for dependency management.
- Configured tauri.conf.json to reference the new entitlements file for macOS builds.
- Added `openssl-sys` and `openssl-src` dependencies in Cargo.toml and Cargo.lock for enhanced cryptographic support.
- Updated `tauri.conf.json` to streamline build targets by removing the updater option, simplifying the configuration.
- Removed the Rust quality job from build.yml and added it to typecheck.yml, consolidating Rust-related checks into a single workflow.
- Streamlined the build process by eliminating unnecessary dependencies and steps in the build.yml file, focusing solely on building the Tauri app.
* docs: design document for openhuman REPL / interactive shell (#92)
Design-first writeup covering problem statement, UX sketch with example
sessions (skills + non-skill flows), architecture showing how the REPL
reuses existing invoke_method/controller registry/RuntimeEngine without
duplicating logic, safety rules for secret redaction, and phased
implementation milestones (MVP → skills commands → script/batch mode).
Closes#92
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* chore: update dependencies and enhance onboarding logic
- Updated Cargo.lock and Cargo.toml to include new dependencies: `clipboard-win`, `endian-type`, `error-code`, `fd-lock`, `home`, `nibble_vec`, `radix_trie`, `rustyline`, and `unicode-segmentation`.
- Enhanced the OnboardingOverlay component to wait for user profile loading before checking onboarding status, improving user experience during onboarding.
- Adjusted dependency versions and added features for `rustyline` in Cargo.toml.
* feat(repl): implement interactive REPL for OpenHuman core
- Added a new REPL module to provide an interactive shell for users, allowing command execution and evaluation.
- Integrated REPL functionality into the CLI, enabling commands like `openhuman repl` and support for options such as `--eval` and `--batch`.
- Enhanced command parsing and execution flow to maintain consistency with existing JSON-RPC server logic, ensuring no duplication of functionality.
- Updated CLI help documentation to include REPL usage instructions.
- Introduced Apple certificate import and code signing steps in the GitHub Actions workflow for macOS, enhancing sidecar security.
This commit lays the groundwork for a more interactive user experience and strengthens the security of the sidecar binary.
* refactor(repl): remove tool_warning_shown field from ReplState
- Eliminated the `tool_warning_shown` boolean field from the `ReplState` struct, simplifying the state management within the REPL module.
- Updated the constructor to reflect the removal of this field, ensuring consistency in the initialization of `ReplState`.
* refactor(build): simplify Tauri build command in workflow
- Removed unnecessary parameters from the Tauri build command in the GitHub Actions workflow, streamlining the build process.
- Improved readability of the build configuration by eliminating redundant options.
* chore(tauri): update build targets in tauri.conf.json
- Changed the build targets from a single string to an array, specifying individual target formats for improved clarity and flexibility in the build process.
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>