Commit Graph
119 Commits
Author SHA1 Message Date
3e148f66cb feat(composio): bring-your-own Composio direct mode (#1710) (#1825)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 15:21:27 -07:00
obchainandGitHub 05451f5c33 feat(voice): configurable mascot voice with ElevenLabs picker (#1821) 2026-05-15 13:57:15 -07:00
3165306bd1 feat(voice): fully-local STT + TTS via Whisper/Piper provider factory (#1755)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 14:27:51 -07:00
Steven EnamakelandGitHub 7b95c37aee test: expand unit + e2e coverage from test-map across core domains (#1724) 2026-05-14 04:58:07 -07:00
Pranav AgarkarandGitHub 1699378c80 fix(settings): add type=button to analytics toggle for Windows WebView2 (#1698) (#1722) 2026-05-14 04:46:51 -07:00
Steven EnamakelandGitHub c18530f594 fix(settings): round-trip LLM provider model_routes and consolidate UI (#1660) 2026-05-13 11:24:40 -07:00
Steven EnamakelandGitHub 943489858f feat(settings): add mascot color customization (closes #1651) (#1667) 2026-05-13 11:15:06 -07:00
91eb90b4ad Document OpenHuman portfolio readiness cleanup (#1661)
Co-authored-by: Jwalin Shah <jshah1331@gmail.com>
2026-05-13 10:54:50 -07:00
c05de9274a test: wait for local model usage flags to load (#1643)
Co-authored-by: honor2030 <19909783+honor2030@users.noreply.github.com>
2026-05-13 22:43:09 +05:30
Steven EnamakelandGitHub 74a08c8ad6 fix(auth): offer "clear app data" recovery when login decryption fails (#1652) 2026-05-13 09:29:54 -07:00
256f004c36 feat(local_ai): unify memory embeddings — cloud Voyage default + live local toggle + dev infra (#1640)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 09:16:59 -07:00
4be66bafd1 feat(local_ai): Ollama precondition gate + install UX hardening (#1475) (#1569)
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-12 20:31:23 -07:00
84d86da70e fix(ipc): guard isTauri() on __TAURI_INTERNALS__.invoke (OPENHUMAN-REACT-S) (#1556)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-12 19:56:03 -07:00
54a9396f88 fix(ollama): URL builder + local-AI noise suppression bundle (#1553)
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-12 19:50:33 -07:00
Cyrus GrayandGitHub 8e9aef60f6 feat(analytics): implement Google Analytics (#1533) 2026-05-12 11:50:49 -07:00
oxoxDevandGitHub ef998ca16c fix(openUrl): fall back to window.open when CEF IPC handle not ready (#1472) (#1491) 2026-05-11 12:07:42 -07:00
Steven EnamakelandGitHub 532a76c180 feat(config): configurable OpenAI-compatible backend provider (#1342) (#1467) 2026-05-11 01:02:11 -07:00
Steven EnamakelandGitHub 81d24b4d74 fix(release): refresh Cargo.lock on bump, attach uid to core Sentry, hide debug settings (#1465) 2026-05-10 20:44:23 -07:00
Steven EnamakelandGitHub 6e2d69792d Add seed phrase onboarding and multi-chain wallet setup (#1407) 2026-05-09 13:54:10 -07:00
YellowSnnowmannandGitHub 0a749f5cec feat(heartbeat): deliver durable proactive meeting/reminder notifications with dedup + category controls (#1369) 2026-05-08 19:03:31 -07:00
d6ace5a5bb feat(boot): cloud-mode picker auth + reload-resilient core mode (#1357)
Co-authored-by: Steven Enamakel <31011319+senamakel@users.noreply.github.com>
2026-05-08 19:00:17 -07:00
YellowSnnowmannandGitHub 2c047a2153 feat(composio): granular trigger triage settings — per-toolkit + global toggle (#1334) 2026-05-07 12:31:40 -07:00
Mega MindandGitHub 318950187e fix(local-ai): fix false-negative Ollama diagnostics (binary + model detection) (#1327) 2026-05-07 12:25:14 -07:00
Cyrus GrayandGitHub 894485a0cd feat(settings): group settings menu into labeled sections (#1286) 2026-05-07 14:31:04 +05:30
Steven EnamakelandGitHub 09f8f12f65 feat(memory): graph view, raw archive, Gemma defaults, pipeline polish (#1317) 2026-05-06 22:58:56 -07:00
ba88d8cfc3 fix(webview/meet): gate orchestrator handoff on user opt-in (#1299) (#1310)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 17:43:21 -07:00
Steven EnamakelandGitHub abec9921c4 feat(logging): rotate embedded core + shell logs to ~/.openhuman/logs (#1278) 2026-05-06 13:53:45 -07:00
Cyrus GrayandGitHub dba87f7686 fix(settings): resolve overlapping text in Memory Data panel (#1305) 2026-05-06 13:11:32 -07:00
Cyrus GrayandGitHub fa03cc31b4 feat(settings): move Notification Routing into Developer Options (#1283) 2026-05-06 13:08:07 -07:00
Steven EnamakelandGitHub 1570f3220b feat(local-ai): off by default, scoped usage flags, faster auto-updates (#1263) 2026-05-05 22:22:54 -07:00
Cyrus GrayandGitHub da55b9d145 fix(ui): move Intelligence and Webhooks to Developer Options, clean up nav (#1225) 2026-05-05 11:08:42 -07:00
Cyrus GrayandGitHub c234fc8e84 feat(walkthrough): multi-page guided tour across key app sections (#1218) 2026-05-05 11:03:08 -07:00
CodeGhost21andGitHub 00bb53de3a feat(sentry): staging-only "Trigger Sentry Test" button (#1072) (#1183) 2026-05-04 10:56:00 -07:00
Steven EnamakelandGitHub ac1363d435 feat(memory): user-facing long-term memory window preset (#1137) (#1161) 2026-05-03 21:50:18 -07:00
CodeGhost21andGitHub 1d8e1bfa0d feat(updater): in-app auto-update with auto-download + restart prompt (#677) (#1114) 2026-05-03 08:29:25 -07:00
obchainandGitHub f2858f73d0 docs(config): finish #933 — kill BACKEND_URL stragglers + document runtime precedence (#1042) 2026-04-30 08:51:26 -07:00
b56e846988 feat(config): runtime RPC URL configuration bootstrap (Issue #933) (#948)
Co-authored-by: Steven Enamakel <31011319+senamakel@users.noreply.github.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-04-29 11:33:35 -07:00
40fddf5bfa chore(dev): add Windows dev runner and align lockfile versions (#1015)
Co-authored-by: oxoxDev <164490987+oxoxDev@users.noreply.github.com>
2026-04-29 11:07:00 -07:00
Steven EnamakelandGitHub 74e532d13a Move billing flows to web dashboard (#956) 2026-04-26 23:06:14 -07:00
Steven EnamakelandGitHub 87ca378248 Scope CEF data to OpenHuman user profiles (#917) 2026-04-25 18:18:01 -07:00
Steven EnamakelandGitHub 579970c559 feat(conversations): remove suggested-question prompt bubbles (#918) 2026-04-25 17:50:40 -07:00
Steven EnamakelandGitHub 7b123bc2fe feat(onboarding): rework desktop onboarding and welcome timing (#915) 2026-04-25 16:35:36 -07:00
Mega MindandGitHub 1d864efbeb feat(notifications): unify notification slices, dismiss action, stats panel, unified Notifications page (#876) 2026-04-24 11:58:11 -07:00
VectorJetandGitHub a96d9da3a4 chore: migrate from yarn to pnpm (#886) 2026-04-24 10:52:16 -07:00
1408666706 feat(notifications): native OS notifications via CEF shim + scanner fallback (#850)
Co-authored-by: oxoxDev <nikhil@tinyhumans.ai>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-04-23 17:52:57 -07:00
3b83fba93a feat(home): next-steps card + drop stub /agents route (#788)
Co-authored-by: Jwalin Shah <jshah1331@gmail.com>
2026-04-23 10:05:23 -07:00
f2ad7a3a55 polish(settings): trust-surface visual pass — Connections + Recovery Phrase (#766)
Co-authored-by: Jwalin Shah <jshah1331@gmail.com>
2026-04-22 23:33:01 -07:00
c78c957821 feat(notifications): in-app notification center (Phase 1b of #395) (#769)
Co-authored-by: Jwalin Shah <jshah1331@gmail.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-04-22 15:17:45 -07:00
325f019853 refactor(core): move CLI adapters out of src/core/ into per-domain cli modules (#758)
* refactor(voice): move standalone CLI adapter into voice domain

Move the blocking `openhuman voice` / `openhuman dictate` dictation-server
subcommand out of `src/core/cli.rs` and into a new `src/openhuman/voice/cli.rs`
owned by the voice domain. The core CLI dispatcher now routes to
`voice::cli::run_standalone_subcommand` and no longer imports voice internals.

Why this shape: the standalone server blocks forever on the hotkey listener,
which doesn't fit the controller registry's request/response contract. A
domain-owned CLI adapter is the right home for long-lived operational
commands; the controller registry stays for RPC-style capabilities.

Establishes the exposure rule documented in PLAN.md for the rest of the
backend overhaul.

- src/openhuman/voice/cli.rs: new 118-line adapter (flag parsing, tokio
  runtime, run_standalone call)
- src/openhuman/voice/mod.rs: declare `pub mod cli`
- src/core/cli.rs: delete 92-line run_voice_server_command, dispatch only
- PLAN.md: new scope doc + exposure rule

* refactor(text_input): move CLI adapter into domain

Move src/core/text_input_cli.rs to src/openhuman/text_input/cli.rs and
drop the stale `pub mod text_input_cli` from src/core/mod.rs. Core CLI
dispatcher now routes `text-input` to the domain-owned adapter.

The moved file has a mixed shape that validates the exposure rule from
the previous voice commit:
 - `run` starts a long-lived HTTP JSON-RPC server (domain cli.rs shape)
 - `read / insert / ghost / dismiss` are short-lived UX wrappers around
   `text_input::rpc::*` (pretty-print, flag parsing — CLI affordance, not
   transport duplication)

Both shapes legitimately belong in the domain. The controller registry
stays for transport-agnostic capabilities; CLI UX wrappers live next to
their domain RPC.

- git mv src/core/text_input_cli.rs src/openhuman/text_input/cli.rs
- src/openhuman/text_input/mod.rs: declare `pub mod cli`
- src/core/mod.rs: drop `pub mod text_input_cli`
- src/core/cli.rs: update dispatch path

* refactor(tree_summarizer): move CLI adapter into domain

git mv src/core/tree_summarizer_cli.rs src/openhuman/tree_summarizer/cli.rs
and drop the stale `pub mod tree_summarizer_cli` from src/core/mod.rs.
Core CLI dispatcher now routes `tree-summarizer` to the domain-owned
adapter.

All five subcommands (ingest / run / query / status / rebuild) are short
-lived UX wrappers over registry handlers that already exist in
tree_summarizer/schemas.rs — no long-running server, no business logic
duplicated. Straight relocation keeps transport generic.

- git mv src/core/tree_summarizer_cli.rs src/openhuman/tree_summarizer/cli.rs
- src/openhuman/tree_summarizer/mod.rs: declare `pub mod cli`
- src/core/mod.rs: drop `pub mod tree_summarizer_cli`
- src/core/cli.rs: update dispatch path

* refactor(screen_intelligence): move + split CLI adapter into domain

Move src/core/screen_intelligence_cli.rs (699 lines, 7 subcommands) into
a domain-owned cli/ submodule, split by responsibility so no single file
exceeds the project's 500-line soft limit.

Layout:
  screen_intelligence/cli/mod.rs        (204) dispatch + shared helpers
                                              (CliOpts, parse_opts,
                                              bootstrap_engine, logging,
                                              print_help)
  screen_intelligence/cli/server.rs      (79) run_server (long-running
                                              capture+vision loop)
  screen_intelligence/cli/session.rs    (150) status / start / stop
  screen_intelligence/cli/capture.rs    (173) capture / vision (inspect pair)
  screen_intelligence/cli/doctor.rs     (107) readiness diagnostics

Classification before moving:
 - no business-logic duplication vs schemas.rs handlers
 - heavy fns (doctor 103, capture 97, start 89) were 80%+ pretty-printing
   and CLI-side orchestration (polling loop, flag-driven save) — legit
   CLI UX, not extracted domain logic
 - shared helpers stayed pub(super) inside mod.rs; no new domain APIs
   introduced

Core transport changes:
 - delete src/core/screen_intelligence_cli.rs
 - drop `pub mod screen_intelligence_cli` from src/core/mod.rs
 - src/core/cli.rs dispatch routes to domain cli::

After this commit, src/core/cli.rs contains only dispatch lines for all
four migrated domains (voice, text_input, tree_summarizer,
screen_intelligence) — no embedded domain logic.

* refactor(screen_intelligence): address external review — extract capture save + tighten cli visibility

Follow-ups from codex + gemini review of the branch:

 1. Extract CaptureFrame construction + disk save from the CLI.
    `capture.rs --keep` was building a CaptureFrame inline (stamping
    timestamps, copying context fields) and calling
    `AccessibilityEngine::save_screenshot_to_disk` directly. Added
    `AccessibilityEngine::save_capture_test_result(workspace_dir,
    &CaptureTestResult, reason) -> Option<Result<PathBuf, String>>`
    so the CLI only passes the result through and picks a reason
    label. Domain owns the frame shape, not the CLI.

 2. Tighten CLI module visibility across all four migrated domains.
    `pub mod cli` -> `pub(crate) mod cli` and
    `pub fn run_*_command` -> `pub(crate) fn` for voice, text_input,
    tree_summarizer, screen_intelligence. Only src/core/cli.rs needs
    to see these; they're transport plumbing, not domain public API.

No behavior change.

* style: cargo fmt

* address review comments from coderabbitai

- screen_intelligence/cli/server: use effective keep_screenshots (opts.keep
  || config flag) for both SiServerConfig and status output, so the server
  behaves consistently with what the CLI reports.
- voice/cli: surface config load errors with a warning instead of silently
  falling back to Config::default(); reject unknown --mode values instead
  of silently coercing them to Push.
- PLAN.md: narrow the Phase 4 enforcement grep so it forbids domain
  imports/non-dispatcher references in the transport layer while still
  allowing crate::openhuman::<domain>::cli::run_*(...) dispatch calls,
  which this PR legitimately introduces.

* style: cargo fmt voice cli

* style: cargo fmt + bump tauri-cef vendor

* fix(screen_intelligence): narrow save_capture_test_result to pub(crate) (addresses @coderabbitai nitpick on engine.rs:486)

AccessibilityEngine::save_capture_test_result is only called from the
domain's own cli/capture.rs (crate-internal). Making it pub leaks it
into the public API surface unnecessarily — tighten to pub(crate) to
match the visibility-tightening done across the rest of this PR.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* update

* chore: update .gitignore to include scheduled_tasks.lock in app/.claude

* ran formatter

---------

Co-authored-by: Jwalin Shah <jshah1331@gmail.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-22 14:30:31 -07:00
8212438112 feat(e2e): agent-observable artifact capture for onboarding + privacy flow (#762)
Adds a canonical WDIO spec that captures screenshots, page-source dumps, and
mock request logs at named checkpoints, plus an afterTest hook that dumps
failure artifacts. Wrapper script prints the run dir so coding agents (and
humans) can inspect the flow from disk.

Co-authored-by: Jwalin Shah <jshah1331@gmail.com>
Co-authored-by: WOZCODE <contact@withwoz.com>
2026-04-22 14:28:34 -07:00