mirror of
https://github.com/tinyhumansai/openhuman.git
synced 2026-07-27 21:08:00 +00:00
* chore: add CI secrets management and local testing script - Added ci-secrets.example.json to provide a template for CI secrets configuration. - Introduced test-ci-local.sh script to facilitate local testing of the package-and-publish workflow using act. - Updated .gitignore to exclude the actual ci-secrets.json file containing sensitive tokens. * chore: enhance local testing and environment loading scripts - Added scripts to load environment variables from .env and JSON files, improving local development setup. - Introduced ci-event.json to simulate GitHub event payloads for local CI testing. - Updated test-ci-local.sh to utilize the new event JSON for better integration with local testing workflows. - Modified .gitignore to include ci-secrets.local.json for local secret management. * chore: enhance environment loading and improve V8 memory management - Updated load-env.sh to conditionally load ci-secrets.local.json and set APPLE_PASSWORD for notarization. - Introduced a delay in auto-starting skills to prevent memory spikes during initialization. - Adjusted V8 runtime memory settings to minimize initial heap allocation, reducing the risk of OOM errors. * chore: update version bump workflow to modify tauri.conf.json - Changed the version update process to reflect changes in tauri.conf.json instead of Cargo.toml. - Adjusted the commit message to indicate the inclusion of tauri.conf.json in the version bump process. * chore: migrate from V8 to QuickJS runtime and update related configurations - Replaced V8 runtime references with QuickJS throughout the codebase, including updates to initialization and error handling. - Modified package.json to change the build command for macOS to source environment variables correctly. - Updated Cargo.toml to remove deno_core dependency and include rquickjs with appropriate features. - Cleaned up unused V8-related code and comments in the runtime modules. - Adjusted skill manifest checks to support QuickJS compatibility. * refactor: implement QuickJS runtime and remove V8 references - Replaced V8 engine with QuickJS in the runtime module, updating related imports and initialization logic. - Introduced new `qjs_engine.rs` and `qjs_skill_instance.rs` files to handle QuickJS-specific functionality. - Removed the deprecated `v8_skill_instance.rs` and associated V8-related code. - Updated JavaScript bootstrap code to align with QuickJS operations and APIs. - Adjusted documentation and comments to reflect the transition to QuickJS. * refactor: update IdbStorage to use parking_lot::Mutex for improved concurrency - Changed the connection management in IdbStorage from RwLock to parking_lot::Mutex for better performance. - Updated related methods to reflect the new locking mechanism, enhancing the efficiency of database operations. - Adjusted the IdbOpenResult struct to include serde::Serialize for potential serialization needs. * refactor: update QuickJS skill instance and timer management - Modified memory limit and stack size settings in QjsSkillInstance to be asynchronous, improving performance. - Cleaned up imports in qjs_ops.rs by removing unused dependencies and enhancing function definitions for clarity. - Refactored timer management functions for better readability and efficiency, including renaming and restructuring comments. * chore: update package.json scripts and clean up build.rs - Added a new script for running the Tauri app with environment variable loading. - Simplified the macOS development command to use a dedicated build script. - Removed unnecessary environment variable logging from build.rs to streamline the build process. - Cleaned up commented-out sections in the GitHub Actions workflow for Android packaging.
112 lines
3.8 KiB
TOML
112 lines
3.8 KiB
TOML
[package]
|
|
name = "AlphaHuman"
|
|
version = "0.30.0"
|
|
description = "AlphaHuman - AI-powered Super Assistant"
|
|
authors = ["AlphaHuman"]
|
|
edition = "2021"
|
|
|
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
|
|
[lib]
|
|
# The `_lib` suffix may seem redundant but it is necessary
|
|
# to make the lib name unique and wouldn't conflict with the bin name.
|
|
# This seems to be only an issue on Windows, see https://github.com/rust-lang/cargo/issues/8519
|
|
name = "tauri_app_lib"
|
|
crate-type = ["staticlib", "cdylib", "rlib"]
|
|
|
|
[build-dependencies]
|
|
tauri-build = { version = "2", features = [] }
|
|
|
|
[dependencies]
|
|
# Tauri core and plugins
|
|
tauri = { version = "2", features = ["tray-icon", "macos-private-api"] }
|
|
tauri-plugin-opener = "2"
|
|
tauri-plugin-deep-link = "2.0.0"
|
|
tauri-plugin-os = "2"
|
|
# tauri-plugin-autostart moved to desktop-only target section
|
|
# tauri-plugin-notification moved to desktop-only target section
|
|
# Serialization
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
|
|
# HTTP client (rustls for cross-platform TLS support including Android)
|
|
reqwest = { version = "0.12", default-features = false, features = ["json", "blocking", "rustls-tls"] }
|
|
|
|
# Async runtime
|
|
tokio = { version = "1", features = ["full", "sync"] }
|
|
|
|
# keyring moved to desktop-only target section (not supported on Android/iOS)
|
|
|
|
# Concurrency utilities
|
|
once_cell = "1.19"
|
|
parking_lot = "0.12"
|
|
|
|
# Logging
|
|
log = "0.4"
|
|
env_logger = "0.11"
|
|
|
|
# .env file loading
|
|
dotenvy = "0.15"
|
|
|
|
# AI module dependencies
|
|
base64 = "0.22"
|
|
aes-gcm = "0.10"
|
|
argon2 = "0.5"
|
|
rand = "0.8"
|
|
dirs = "5"
|
|
sha2 = "0.10"
|
|
uuid = { version = "1", features = ["v4"] }
|
|
|
|
# V8 JavaScript runtime moved to desktop-only (not available on Android/iOS)
|
|
|
|
# WebSocket client for TDLib connections
|
|
tokio-tungstenite = { version = "0.24", features = ["rustls-tls-webpki-roots"] }
|
|
|
|
# HTTP streaming support for fetch polyfill
|
|
futures = "0.3"
|
|
|
|
# Embedded SQLite for skill databases
|
|
rusqlite = { version = "0.31", features = ["bundled"] }
|
|
|
|
# Date/time utilities
|
|
chrono = { version = "0.4", features = ["serde"] }
|
|
|
|
# Cron expression parsing for scheduled skill tasks
|
|
cron = "0.12"
|
|
|
|
# Persistent Socket.io client (Rust-native, survives app backgrounding)
|
|
# Note: Using default native-tls on desktop, but we'll handle Android separately
|
|
futures-util = "0.3"
|
|
|
|
# Desktop/iOS use native-tls for Socket.io
|
|
[target.'cfg(not(target_os = "android"))'.dependencies]
|
|
rust_socketio = { version = "0.6", features = ["async"] }
|
|
|
|
# Android uses a simpler approach - no persistent Socket.io (use web socket from frontend)
|
|
[target.'cfg(target_os = "android")'.dependencies]
|
|
# Android logging (routes Rust `log` crate to logcat)
|
|
android_logger = "0.14"
|
|
|
|
[target.'cfg(not(any(target_os = "android", target_os = "ios")))'.dependencies]
|
|
keyring = "3"
|
|
tauri-plugin-autostart = "2"
|
|
tauri-plugin-notification = "2"
|
|
# V8 JavaScript runtime (via deno_core - powers Deno)
|
|
# Only available on desktop - prebuilt binaries don't exist for Android/iOS
|
|
rquickjs = { version = "0.11", features = ["futures", "macro", "loader", "parallel"] }
|
|
# TDLib Rust bindings (desktop only - downloads prebuilt TDLib library)
|
|
tdlib-rs = { version = "1.2", features = ["download-tdlib"] }
|
|
# Local LLM inference - desktop only (llama.cpp requires native C++ compilation)
|
|
# Disable default features (including openmp) to avoid cross-compilation issues
|
|
# on macOS where Homebrew installs ARM64-only OpenMP libraries
|
|
llama-cpp-2 = { version = "0.1", default-features = false }
|
|
encoding_rs = "0.8"
|
|
|
|
[target.'cfg(not(any(target_os = "android", target_os = "ios")))'.build-dependencies]
|
|
# TDLib build configuration
|
|
tdlib-rs = { version = "1.2", features = ["download-tdlib"] }
|
|
|
|
[features]
|
|
# This feature is used for production builds or when a dev server is not specified, DO NOT REMOVE!!
|
|
custom-protocol = ["tauri/custom-protocol"]
|