Files
openhuman/src-tauri/Cargo.toml
T
Steven EnamakelandGitHub ceb03fb2bc Fix/prod build (#51)
* 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.
2026-02-05 19:29:21 +05:30

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"]