- Replace openssl with aes-gcm for AES-256-GCM decryption in rest.rs
- Remove openssl/openssl-sys from Cargo.toml and Cargo.lock
- Use ci_safe_config() in ingestion tests to skip ORT model loading
(avoids Mutex poisoned panic on CI without libonnxruntime)
- Remove serial_test dependency (no longer needed)
- Fix cargo fmt issue in rest.rs
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add tiered model presets (Low/Medium/High) with device-aware recommendations
so users can pick a local AI model that fits their machine without editing
raw JSON config. Detect RAM, CPU, GPU via sysinfo crate and recommend a tier.
Persist selection to config.toml, with env var override and graceful
degradation hints on bootstrap failure.
- Rust: presets.rs (tier definitions, recommendation logic), device.rs
(hardware detection), 3 new RPC methods, env var override, bootstrap hints
- Frontend: tier selector UI in Settings > Local AI Model with device info,
loading/error states, and "Advanced" toggle for existing controls
- Tests: 7 Rust unit tests + comprehensive JSON-RPC E2E test
- Also fixes pre-existing lint warning in SkillSetupWizard.tsx
Closes#80
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
- Introduced a new job `notify-discord` to send notifications to a Discord channel upon successful release publication.
- The notification includes release details such as title, version, and assets, formatted for clarity.
- Added error handling for missing webhook URL and invalid release IDs to ensure robustness.
All 26 agent tests shared std::env::temp_dir() as workspace, causing
them to contend on the same SQLite database file when running in
parallel. This caused flaky "database is locked" failures in CI
(e.g. clear_history_resets_conversation).
Fix: each test helper now creates its own tempfile::TempDir, returning
it alongside the Agent so it stays alive for the test duration.
Verified: 36/36 pass across 5 consecutive runs with zero flakiness.
- Introduced `.claude/memory.md` to document fixes, gotchas, strict rules, workflow, and environment setup.
- Aims to streamline onboarding and provide quick reference for common issues and workflows.
- Centralize all VITE_* env var reads in app/src/utils/config.ts (SENTRY_DSN, BACKEND_URL, DEV_JWT_TOKEN)
- Update consumers (analytics.ts, backendUrl.ts, store/index.ts) to import from config.ts
- Add TypeScript type declarations for ImportMetaEnv in vite-env.d.ts
- Remove dead import.meta.env.OPENHUMAN_CORE_RPC_URL fallback (non-VITE prefix, never exposed by Vite)
- Remove unused TELEGRAM_BOT_USERNAME/TELEGRAM_BOT_ID from test mocks
- Create .env.example (root) documenting ~30 Rust/Tauri env vars with [required]/[optional] tags
- Create app/.env.example documenting 6 frontend VITE_* vars
- Add Configuration section to CLAUDE.md
Closes#61
- Added `.claude/memory.md` to serve as a centralized quick reference for project fixes, gotchas, rules, and workflows.
- Documented `memory-keeper` agent's purpose and guidelines in `.claude/agents/memory-keeper.md`.
- Ensured concise formatting and strict update rules for maintaining institutional knowledge.
Extends WebSearchTool with a `parallel` provider backed by the
Parallel Search API (POST /v1beta/search). Includes API key loading
from env vars, encrypted persistence mirroring Brave, structured result
parsing with excerpt truncation, and full unit test coverage using
mocked JSON responses. Defaults are unchanged (duckduckgo).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- 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.