Commit Graph
129 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
b4c19b105b fix(auth): scope clearAllAppData to active user; fix re-onboarding race; drop dead API call (#1816)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-15 14:57:30 -07:00
5411f19e47 Add LM Studio as a local model provider (#1750)
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-15 11:54:17 -07:00
660e592fcc fix: add error handling to parseServiceCliOutput (#1737)
Co-authored-by: Test User <test@example.com>
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-15 04:12:44 -07:00
Srinivas VaddiandGitHub cd911ab18d Allow private HTTP core URLs (#1765) 2026-05-14 21:24:30 -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
a1735b5589 feat(orchestrator): collapse per-integration delegation into one tool (#1335) (#1488)
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-13 19:21:42 -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 74a08c8ad6 fix(auth): offer "clear app data" recovery when login decryption fails (#1652) 2026-05-13 09:29:54 -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
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
YellowSnnowmannandGitHub fc573b05f6 fix(core-rpc): normalize config method wiring and harden startup against config/SQLite edge cases (#1497) 2026-05-11 09:30:05 -07:00
Steven EnamakelandGitHub 532a76c180 feat(config): configurable OpenAI-compatible backend provider (#1342) (#1467) 2026-05-11 01:02:11 -07:00
Steven EnamakelandGitHub 6e2d69792d Add seed phrase onboarding and multi-chain wallet setup (#1407) 2026-05-09 13:54:10 -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
34188130a0 feat(subconscious): memory-context-aware reflection threads + dedupe gates (#623) (#1344)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 12:29:13 -07:00
Mega MindandGitHub 37cd17889c fix(channels): fix WhatsApp structured ingest pipeline + Memory page sync status (#1326) 2026-05-07 12:25:26 -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
66bea5ed4d Make Twitter OAuth failures actionable (#1318)
Co-authored-by: Jwalin Shah <jshah1331@gmail.com>
2026-05-07 12:11:14 -07:00
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
Mega MindandGitHub 4e9f2a8f77 feat(config): RPC bootstrap hardening, socket alignment, and exhaustive tests (#1313) 2026-05-06 16:45:42 -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
Steven EnamakelandGitHub c4d93f6981 feat(mascot): mic-only composer with cloud STT + cartoon voice (#1253) 2026-05-05 16:37:54 -07:00
a00bc06842 Add typed frontend RPC method catalog and drift tests (#1242)
Co-authored-by: Jwalin Shah <jshah1331@gmail.com>
2026-05-05 11:12:00 -07:00
62516ba418 feat(memory_tree): cloud-default LLM, queue priority, entity filter, Memory tab UI (#1198)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 20:52:56 -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
Steven EnamakelandGitHub df6c0a941d feat(home): early-bird banner + assistant→agent terminology (#1113) 2026-05-03 08:22:05 -07:00
oxoxDevandGitHub fbd4c7ee11 fix(app): reload webview instead of restart_app in dev mode (#1068) (#1071) 2026-05-01 17:45:34 -07:00
a084ebf45c fix(sentry): auto-send React events; collapse core→tauri for desktop (#1086)
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-01 15:11:42 -07:00
Steven EnamakelandGitHub 2304d9d58f feat(memory): add Sync and Learn sections to Memory workspace (#1031) 2026-04-29 18:43:11 -07:00
Steven EnamakelandGitHub ac97a96d3a fix(local-ai): cap local models to 1b preset (#1029) 2026-04-29 18:39:03 -07:00
394bfcd0fa fix(app, mcp): PersistGate recovery + MCP handler drain on disconnect (#857)
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-04-29 12:52:15 -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
e782f1ad22 fix(auth): close cross-user state + CEF cookie leak (#900) (#1007)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-28 18:53:25 -07:00
Steven EnamakelandGitHub 74e532d13a Move billing flows to web dashboard (#956) 2026-04-26 23:06:14 -07:00
Steven EnamakelandGitHub 80fbe370c4 feat(welcome): rework welcome agent — 5-step checklist, in-app modals, faster model (#919) 2026-04-25 19:23:34 -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 a472bee17f feat(app-update): wire up tauri shell auto-updater (#909) 2026-04-24 21:10:55 -07:00
95504d4b09 test: add 196 tests across MCP, services, utils, autocomplete (#855)
Co-authored-by: Jwalin Shah <jshah1331@gmail.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-04-24 11:47:26 -07:00
5b3dec4ded feat(app): memory citations UI, respond queue, silent ingest refresh (#800)
Co-authored-by: Jwalin Shah <jshah1331@gmail.com>
2026-04-24 09:45:54 -07:00
53befcd56f chore: drop dead crypto + stale rules, Windows doctor disk probe (#856)
Two cleanups surfaced during a codebase review:

## Changes
- **Drop dead integration-token crypto** — `integrationTokensCrypto.ts` + helpers; no remaining consumers
- **Trim stale `.claude/rules`** — rules that contradict current CLAUDE.md
- **Windows doctor disk probe** — detect low-disk conditions on Windows
- **Refresh stale binary-size claim** in docs

Net: +82 / −3,596 (mostly dead-code removal).

## Test plan
- [ ] `yarn typecheck` green — no dangling imports to crypto module
- [ ] `cargo check` green
- [ ] Doctor runs on Windows host

Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-04-23 22:14:48 -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
44fda19734 fix(recovery): prompt users to download latest build after crash loops (#778)
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-04-22 15:07:48 -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