Commit Graph
100 Commits
Author SHA1 Message Date
oxoxDevandGitHub ecad06534a fix(shell): bounded macOS/Linux CEF cache-lock wait + graceful init failure (TAURI-RUST-F) (#3337) 2026-06-05 10:16:05 -04:00
oxoxDevandGitHub 43233c6137 chore(welcome): remove orphaned useBackendReachable probe (#2037) (#3410) 2026-06-05 10:13:09 -04:00
oxoxDevandGitHub d6dfcfbe27 fix(inference): stop Codex CLI import user-state errors flooding Sentry (#3403) (#3404) 2026-06-05 10:11:55 -04:00
oxoxDevandGitHub 6056ed9310 test(credentials): cover rename-stage retry + best-effort tmp cleanup (#3364 follow-up) (#3398) 2026-06-05 10:09:23 -04:00
oxoxDevandGitHub 25cd13df68 fix(keyring): don't mint a new master key on keychain access-denied (#3311) (#3338) 2026-06-04 18:12:33 -04:00
oxoxDevandGitHub e7e26efb3e fix(credentials): reject expired session locally + gate usage polling — RCA for backend 401 flood (#3297) (#3384) 2026-06-04 13:37:06 -04:00
oxoxDevandGitHub 81e527ee2d fix(credentials): retry transient Windows FS errors when persisting auth-profiles.json (#3355) (#3364) 2026-06-04 10:33:19 -04:00
oxoxDevandGitHub e37a569933 fix(memory): thread BYO embedding credential — stop Cohere empty-key 401 flood (#3354) (#3358) 2026-06-04 10:32:13 -04:00
oxoxDevandGitHub 122196b718 fix(inference,ai-settings): prevent + handle ollama embedding-model-as-chat (Sentry TAURI-RUST-4P6) (#3359) (#3360) 2026-06-04 19:08:08 +05:30
3119965c70 feat: tighten runtime policy + transport guards v3 (#3306)
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-06-04 08:13:16 -04:00
06f8a629b4 feat(settings): make action_dir editable in Agent OS access (#3240) (#3305)
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-06-04 01:36:55 -04:00
oxoxDevandGitHub 679d463e09 feat(presentation): embed images in generated decks (#3209) (#3299) 2026-06-04 00:53:30 -04:00
oxoxDevandGitHub 46fad3a50a fix(composio): correct direct-mode v3 execute contract + classify 404/410 as action-not-found (#3219) (#3298) 2026-06-04 00:52:54 -04:00
e3c3624a82 feat(orchestrator): wire generate_presentation + require grounding (#2780) (#3029)
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
Co-authored-by: Cyrus Gray <cyrus@tinyhumans.ai>
2026-06-03 18:36:36 +05:30
3a7180da77 feat(security): explicit agent turn origin + fail-closed approval gate + memory provenance (#3227)
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-06-02 19:25:30 -07:00
71e04eac45 feat(chat): Files in this chat — persistent per-chat artifact panel (#3024) (#3026)
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-06-02 17:22:08 -07:00
oxoxDevandGitHub 00b8a669c6 feat(mcp): sanitize remote tool descriptions + length caps (#3215) 2026-06-02 17:19:21 -07:00
oxoxDevandGitHub f2154de4d6 fix(shell): Windows pre-CEF cache-lock wait to stop relaunch panic (TAURI-RUST-F) (#3210) 2026-06-02 17:18:54 -07:00
oxoxDevandGitHub 11139657cf fix(inference): actionable error for completion-only model 404 + unmistakable run_code failure (#3193) (#3211) 2026-06-02 15:33:40 -07:00
oxoxDevandGitHub 4d18d36e10 test(memory-sync): E2E + Vitest coverage for #3113 sync pipeline (#3116) (#3194) 2026-06-02 15:23:41 -07:00
oxoxDevandGitHub 89380db659 fix(channels): classify empty-response, 4xx and vision chat errors with actionable copy (#3119) (#3199) 2026-06-02 20:38:05 +05:30
oxoxDevandGitHub e60bccb76d fix(composio): empty connections in direct mode without api key (TAURI-RUST-R4) (#3198) 2026-06-02 19:47:56 +05:30
oxoxDevandGitHub ec7c97cc1d fix(scheduler-gate): build fresh System per CPU sample to avoid sysinfo OOB panic (#3191)
Co Authored by: Cyrus Gray <cyrus@tinyhumans.ai>
2026-06-02 19:40:56 +05:30
307c8e2b2a feat(chat): ArtifactCard + Tauri download + backend artifact events (#2779) (#3017)
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-06-02 19:32:30 +05:30
166fc6af61 feat(tools): add generate_presentation tool (native rust engine, ppt-rs) (#2778) (#3016)
Co-authored-by: Cyrus Gray <cyrus@tinyhumans.ai>
2026-06-02 18:31:42 +05:30
oxoxDevandGitHub 46893243d9 fix(test): feed multi_batch_volume_builds_full_tree past the 50k seal threshold (#3115) (#3181) 2026-06-01 23:14:53 -07:00
9683653211 feat(onboarding): guided memory & vault setup with health checklist (#2910) (#3160)
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-06-01 23:07:41 -07:00
13e2af1095 observability(sentry): attach user id to Rust-core events (#3135) (#3136)
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-06-01 22:58:06 -07:00
oxoxDevandGitHub 817c2a0301 fix(memory/safety): exclude bare-phone patterns from strict PII rejection (#2848) (#3028) 2026-06-01 14:22:25 -07:00
df99680c18 feat(agent/multimodal): support [FILE:…] markers with text extraction (#2777) (#2954)
Co-authored-by: Cyrus Gray <cyrus@tinyhumans.ai>
2026-06-01 22:08:56 +05:30
oxoxDevandGitHub 4187561ded feat(memory): record real LLM cost in sync audit (#3110) (#3150) 2026-06-01 21:26:12 +05:30
oxoxDevandGitHub 4ab9e98a11 fix(agent): refresh orchestrator integration context on mid-session OAuth (#3044) (#3153) 2026-06-01 21:25:00 +05:30
c5ff4a3516 feat(approval): per-launch UUID session_id + scrub legacy bearer leaks (#2952)
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-30 08:35:47 -07:00
b1b919a92a feat(meet-agent): Flow A second brain — orchestrator + tools + pre-roll + cache + barge-in
Co-authored-by: M3gA-Mind <megamind@mahadao.com>
2026-05-29 07:10:50 +05:30
oxoxDevandGitHub 336d811ca0 feat(core): pass in-process RPC bearer via internal handle, not process env (#2709) 2026-05-29 04:35:33 +05:30
4657d16c7c feat(wallet): bind prepared transaction quotes to originating chat session
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-29 04:35:01 +05:30
oxoxDevandGitHub 894f312c07 fix(composio/triage): demote provider-config-rejection rollups (Sentry TAURI-RUST-1V) (#2689) 2026-05-29 04:26:12 +05:30
oxoxDevandGitHub 0bd17ea5e4 fix(subconscious): preserve anyhow chain + retry DDL with busy_timeout on SQLITE_BUSY (#2851) 2026-05-29 04:17:42 +05:30
oxoxDevandGitHub 3f2e2f28b9 fix(observability): demote backend Cloudflare anti-bot wrap (Sentry TAURI-RUST-34H) (#2692) 2026-05-27 18:45:55 -07:00
oxoxDevandGitHub 7b16112542 test: unblock cargo test --lib on main (3 stale test fixtures) (#2710) 2026-05-27 20:23:23 +05:30
oxoxDevandGitHub 60050aa09a feat: tighten runtime policy + transport guards v2 (#2636) 2026-05-26 17:25:57 +05:30
oxoxDevandGitHub 70440039b9 refactor(app/deps): move redux-logger to devDependencies (#2625) (#2630) 2026-05-25 09:17:42 -07:00
oxoxDevandGitHub 440c016816 docs(install): promote native packages as primary install path (#2620) (#2629) 2026-05-25 09:17:34 -07:00
oxoxDevandGitHub 1eb5b24b10 fix(ci): harden contributor-rewards pull_request_target (#2621) (#2628) 2026-05-25 09:17:11 -07:00
oxoxDevandGitHub 5493b92be2 fix(installer): require python3 in prereq loop (#2624) (#2627) 2026-05-25 09:16:54 -07:00
oxoxDevandGitHub c28d9dac0b fix(app): guard CEF IPC fallback sync throw via safeInvoke wrapper (Sentry TAURI-REACT-7 + 6) (#2619) 2026-05-25 09:15:16 -07:00
oxoxDevandGitHub 5d380c354a fix(observability,embeddings): demote Ollama embed user-config rejections (Sentry TAURI-RUST-XS + MA/KM/GX) (#2612) 2026-05-25 09:14:59 -07:00
b087d7069a fix(observability,composio): demote direct-mode Composio 401/Invalid API key noise (Sentry TAURI-RUST-X9) (#2481)
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-22 19:42:09 -07:00
oxoxDevandGitHub b08aa3ea8d fix(tauri): retry main-window lookup on Windows after SW_SHOW (#3A) (#2341) 2026-05-22 15:59:05 +05:30
oxoxDevandGitHub 62727e1dc7 fix(core/socketio): accept http://tauri.localhost origin (#2331 follow-up) (#2482) 2026-05-22 14:09:40 +05:30
oxoxDevandGitHub b1bbc53fce feat: tighten runtime policy + transport guards (#2331) 2026-05-21 23:39:05 +05:30
oxoxDevandGitHub e031d85ed2 feat(agents): route prediction-market intents via new markets_agent specialist (#2427) (#2430) 2026-05-21 22:58:00 +05:30
oxoxDevandGitHub dcec5858e0 fix(tauri): pre-flight every xdg-utils binary before register_all (#5V) (#2416) 2026-05-21 22:57:44 +05:30
f7dfa94e5d fix(observability): Wave 4 classifier — socket transport + custom-provider config-rejection (~366 events, 13 IDs)
## Summary

- Extends `expected_error_kind` matcher ladder with 11 new substring arms across two existing buckets — no new variants, no new emit sites, no behavior change beyond reclassifying known wire shapes that were leaking past Wave 1-3 anchors.
- Closes 13 Sentry IDs (~366 events) — **all deterministic user-environment / user-config errors with no remediation path** (offline, DNS fail, captive portal, bad API key, out of credits, wrong model id, missing OAuth scope, region block).
- Pure classifier — no UI, retry, or fallback logic touched. The reliable-provider stack still falls back to OpenHuman's hosted tier for the Lane O bodies; users keep their chat. Lane N socket failures already gated through `report_error_or_expected` at `ws_loop.rs:191`, so the threshold-escalation event simply demotes to a `warn` breadcrumb instead of paging.
- Two micro-commits — Lane O (`is_provider_config_rejection_message` PHRASES const) and Lane N (`is_network_unreachable_message` substring arms) — each independently revertible.

## Problem

After the Wave 1-3 sweep landed, fresh Sentry triage surfaced **13 unresolved IDs** whose bodies match the *spirit* of an existing classifier bucket but use wire-shape variants the current substring anchors miss:

### Lane O — custom-provider config rejection (~250 events)

The `ProviderConfigRejection` variant + `is_provider_config_rejection_message` exist precisely for "user pointed OpenHuman at a custom_openai endpoint with a model / temperature / region / credential that provider doesn't accept." But the 7 phrases shipped in Wave 1-3 (#2079 / #2076 / #2202) only cover the DeepSeek / OpenRouter abstract-tier-leak and Moonshot temperature shapes. New surfaces:

| Sentry ID | Events | Real wire body |
|---|---|---|
| `R1` | 44 | `{"error":{"message":"This model is not available in your region.","code":403}}` |
| `R4` | 14 | `{"code":403,"reason":"ModelNotAllowed","message":"模型不允许访问"…}` (Doubao/ChatGLM) |
| `YC` | 16 | `{"error":{"type":"invalid_authentication_error"…}}` |
| `S5` | 14 | `{"error":{"message":"This request requires more credits, or fewer max_tokens…"}}` (OpenRouter 402) |
| `Y0` | 13 | `{'error': '/chat/completions: Invalid model name passed in model=reasoning-v1…'}` |
| `JN` | 14 | `{"error":{"message":"No active credentials for provider: openai"…}}` |
| `KB` | 16 | Same `No active credentials for provider` shape from OpenHuman backend re-emit |
| `JK` | 17 | `litellm.BadRequestError: Github_copilotException - Bad Request…` |
| `J2` / `J5` / `J4` | 62 | `{"error":{"message":"model 'llama3.3' not found","type":"not_found_error"…}}` |

### Lane N — socket WebSocket-connect transport (~116 events)

`is_network_unreachable_message` already catches `connection refused` / `dns error` / `network is unreachable` but two real shapes escape:

| Sentry ID | Events | Real wire body |
|---|---|---|
| `44` | 50 | `[socket] Connection failed: WebSocket connect: IO error: failed to lookup address information: nodename nor servname provided, or not known` |
| `4P` | 66 | `[socket] Connection failed: WebSocket connect: HTTP error: 200 OK` (captive portal / corporate proxy intercepting the WS upgrade handshake) |

Every one of these is deterministic **user-environment** / **user-configuration** state — the maintainers have no remediation. Sentry has no signal to act on. Every event was pure noise.

## Solution

### Lane O — `src/openhuman/inference/provider/config_rejection.rs:55-79`

Append 8 new phrases to the `PHRASES` const (case-insensitive substring match, same precedence as existing 7):

```rust
"not available in your region",        // R1
"modelnotallowed",                     // R4
"invalid_authentication_error",        // YC
"requires more credits",               // S5
"invalid model name passed in model=", // Y0
"no active credentials for provider",  // JN + KB
"litellm.badrequesterror",             // JK
"not_found_error",                     // J2 + J5 + J4
```

Each anchor is intentionally narrow (e.g. `passed in model=` not bare `invalid model name`; `litellm.badrequesterror` not bare `litellm`) so a stray log line elsewhere can't accidentally demote a real provider/backend bug. The HTTP-layer wrapper (`is_provider_config_rejection_http`) still guards on `provider != openhuman_backend::PROVIDER_LABEL`, so a model rejection from **our own** backend (which would be a real regression) still reaches Sentry.

### Lane N — `src/core/observability.rs:299-319`

Three new substring arms appended to `is_network_unreachable_message`:

- `failed to lookup address` + `nodename nor servname` — libc `getaddrinfo()` failure renderings on macOS / BSD / POSIX resolvers when tungstenite wraps as `IO error` without the reqwest `dns error` prefix.
- `http error: 200 ok` — tungstenite-only render. Reqwest renders HTTP 200 as `"HTTP status server error (200)"`, so no collision with the regular HTTP call path. A negative precedence test (`http_200_classifier_does_not_silence_unrelated_log_lines`) pins this against benign `HTTP/1.1 200 OK` / `status: 200 OK` prose so a future broadening cannot silence success traces.

### Design trade-off — classifier vs. root-fix validation layer

The Lane O bugs *do* have a more durable root fix: a pre-save provider validation layer (test the API key, validate the model id against `/v1/models`, surface region-blocks at config-save time). That's a real product initiative requiring UX design, per-provider model-list infrastructure, and meaningful spec work — out of scope for a triage sweep. This PR follows the Wave 1-3 maintainer precedent (classifier-first noise suppression) so the Sentry signal/noise ratio improves immediately; the validation layer remains tracked as a separate follow-up. If/when it lands, these classifier arms become redundant belt-and-suspenders and can be deleted without conflict.

Lane N has no root-fix alternative — offline / firewall / captive-portal / DNS failures are pure user-environment state. Classifier-demote is the correct disposition.

## Submission Checklist

> If a section does not apply to this change, mark the item as `N/A` with a one-line reason. Do not delete items.

- [x] Tests added or updated (happy path + at least one failure / edge case) per [Testing Strategy](../gitbooks/developing/testing-strategy.md#failure-path-requirement)
- [x] **Diff coverage ≥ 80%** — changed lines (Vitest + cargo-llvm-cov merged via `diff-cover`) meet the gate enforced by [`.github/workflows/coverage.yml`](../.github/workflows/coverage.yml). 11 positive tests pinned to real Sentry bodies + 1 negative precedence test cover every new substring arm; only the rustdoc comments and the negative `unrelated_*` test body are non-executable lines.
- [x] N/A: behaviour-only change — Coverage matrix updated — added/removed/renamed feature rows in [`docs/TEST-COVERAGE-MATRIX.md`](../docs/TEST-COVERAGE-MATRIX.md) reflect this change
- [x] All affected feature IDs from the matrix are listed in the PR description under `## Related`
- [x] No new external network dependencies introduced (mock backend used per [Testing Strategy](../gitbooks/developing/testing-strategy.md#mock-policy))
- [x] N/A: classifier-only change with no UI / release-cut surface touched — Manual smoke checklist updated if this touches release-cut surfaces ([`docs/RELEASE-MANUAL-SMOKE.md`](../docs/RELEASE-MANUAL-SMOKE.md))
- [x] Linked issue closed via `Closes #NNN` in the `## Related` section

## Impact

- **Runtime**: no behavior change for users — chat / agent / web-channel / socket paths continue to fall back / retry exactly as before. The only delta is that `report_error_or_expected` now classifies these 13 wire shapes as `ExpectedErrorKind::*` instead of escalating as `tracing::error`, so Sentry stops receiving the events.
- **Performance**: negligible — `is_provider_config_rejection_message` lowercases once and runs 15 substring scans (was 7); `is_network_unreachable_message` runs 11 substring scans (was 8). Both already on the error-path, never on the hot path.
- **Security**: no new attack surface. Substring matchers run on already-rendered error messages — no parsing, no allocation beyond the existing `to_ascii_lowercase()`.
- **Migration**: none.
- **Compatibility**: forward-compatible. New phrases are append-only — no existing matcher behavior changes. If a future maintainer ships the root-fix validation layer, deleting these arms is a clean local edit.

## Related

- Closes OPENHUMAN-TAURI-R1
- Closes OPENHUMAN-TAURI-R4
- Closes OPENHUMAN-TAURI-YC
- Closes OPENHUMAN-TAURI-S5
- Closes OPENHUMAN-TAURI-Y0
- Closes OPENHUMAN-TAURI-JN
- Closes OPENHUMAN-TAURI-KB
- Closes OPENHUMAN-TAURI-JK
- Closes OPENHUMAN-TAURI-J2
- Closes OPENHUMAN-TAURI-J5
- Closes OPENHUMAN-TAURI-J4
- Closes OPENHUMAN-TAURI-44
- Closes OPENHUMAN-TAURI-4P
- Follow-up PR(s)/TODOs: pre-save provider-validation layer (validate API key + model id + region at config-save time) tracked as separate product initiative; would supersede the Lane O arms.

---

## AI Authored PR Metadata (required for Codex/Linear PRs)

> Keep this section for AI-authored PRs. For human-only PRs, mark each field `N/A`.

### Linear Issue
- Key: N/A (Sentry-driven triage; no Linear ticket)
- URL: N/A

### Commit & Branch
- Branch: fix/sentry-wave4-classifier-no
- Commit SHA: e16414ac (tip)

### Agent
- Claude Code (Sonnet 4.6) running locally

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->

## Summary by CodeRabbit

* **Bug Fixes**
  * Enhanced detection of network connectivity failures and provider configuration rejection scenarios for more accurate error classification.

* **Tests**
  * Added comprehensive test coverage for network-related transport failures and provider configuration rejection cases.

<!-- review_stack_entry_start -->

[![Review Change Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/tinyhumansai/openhuman/pull/2309?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)

<!-- review_stack_entry_end -->

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: oxoxDev <nikhil@tinyhumans.ai>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-20 16:54:07 -07:00
74c91ba4d2 fix(core): port-bind fallback + retry when 7788 is busy (#1613) (#2116)
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-19 21:02:08 -07:00
1fe8afb1a7 fix: route embedding emitters through expected-error reporting (#2216)
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-19 20:33:01 -07:00
oxoxDevandGitHub 1ae31ba14c fix(core-rpc): demote timeout unhandled-rejections + classify in client (#REACT-15+) (#2196) 2026-05-19 20:22:54 -07:00
oxoxDevandGitHub 34bcf343dc feat(approval): gate external-effect tool calls until user approves (#1339) (#2149) 2026-05-19 19:58:25 -07:00
20dfafbf0e fix(memory): serialize memory_tree schema init across worker pool (#2059)
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-19 16:51:59 -07:00
oxoxDevandGitHub 272a6b063c fix(core,app): authenticate /events/webhooks SSE with per-launch core RPC bearer (#1922) (#2114) 2026-05-19 16:43:53 -07:00
oxoxDevandGitHub 3281f179a2 test(observability): pin SESSION_EXPIRED wire-shape regression tests (#SG) (#2188) 2026-05-19 14:42:50 -07:00
oxoxDevandGitHub 3a82782ecd fix(observability): demote loopback sidecar-down noise to expected (#R5 #R6) (#2063) 2026-05-19 20:52:05 +05:30
oxoxDevandGitHub 2f4c3f397d feat(integrations): Polymarket trading + market data (#1398, venue 1/3) (#2145) 2026-05-19 19:15:20 +05:30
dfb2a6caa1 feat(agent): cross-chat context retrieval for same-user threads (#1505) (#2054)
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 15:57:35 +05:30
4d73bf869a fix(whatsapp): recover DOM message bodies — telemetry, tier-3 fallback, source tag, synthetic chat_id (#1376) (#1804)
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-15 20:29:29 -07:00
9a73cb24c6 fix(app): split connectivity into internet/core/backend channels (#1527) (#1727)
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-15 15:56:00 -07:00
40cce5c409 fix(observability): close 3 transient-failure leak paths in Sentry classifier (#1608) (#1798)
Co-authored-by: Cyrus Gray <cyrus@tinyhumans.ai>
2026-05-16 00:16:48 +05:30
20c61a9bdd test(composio): pin compound retry count to 4 (unblock CI for #1719/#1727/#1795) (#1803)
Co-authored-by: Cyrus Gray <cyrus@tinyhumans.ai>
2026-05-16 00:15:19 +05:30
b778433c8a fix(observability): demote composio validation noise to expected user-state (#3R #3S #33 #34 #97) (#1795)
Co-authored-by: Cyrus Gray <cyrus@tinyhumans.ai>
2026-05-15 18:59:44 +05:30
eecd11cf0b fix(observability): drop 401 session-expired Sentry noise (#25, #1Q, #27, #1G) (#1719)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 04:13:44 -07:00
oxoxDevandGitHub f583829d10 Filter transient updater Sentry noise (#1716) 2026-05-14 21:36:36 -07:00
72a365c9ce fix(channels): demote channel-message 404s to typed error (OPENHUMAN-TAURI-2Y) (#1732)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 21:07:13 -07:00
oxoxDevandGitHub 23fbaecc19 Fix composio integrations URL base normalization (#1715) 2026-05-14 04:59:14 -07:00
bf9404a42f fix(providers): drop budget-exhausted 400s from Sentry (#3M, #12, #13) (#1633)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 04:18:30 -07:00
oxoxDevGitHubgoogle-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>Claude Opus 4.7Steven EnamakelZavian Wangobchain
5e6073baaa fix(windows): retry-with-backoff for transient FS errors on auth-profiles.lock + .openhuman wipe (#9E, #9C, #4Y, #61, #5Q, #9F, #4M) (#1641)
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
Co-authored-by: Zavian Wang <36817799+Zavianx@users.noreply.github.com>
Co-authored-by: obchain <167975049+obchain@users.noreply.github.com>
2026-05-13 20:07:55 -07:00
c2502a6c1a fix(agent): skip Sentry on max-iteration cap, emit info (#99, #98) (#1634)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-13 20:05:13 -07:00
70083897a0 fix(integrations): fall back to default backend when api_url points at local AI (#51, #80, #7Z) (#1630)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-13 19:44:18 -07:00
oxoxDevGitHubgoogle-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>Claude Opus 4.7
9363ec9d54 fix(si_server): idempotent start_session, suppress benign 'session already active' (#5J, #5H) (#1635)
Signed-off-by: oxoxDev <nikhil@tinyhumans.ai>
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 14:27:52 -07:00
41e548b3d8 fix(observability): drop transient backend_api + integrations failures from Sentry (#1632)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 14:20:33 -07:00
57b4e0e3b8 fix(core_process): demote expected port-clash + Windows bind ACL to warn (#2B, #AT, #BV, #BT) (#1628)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-13 10:51:26 -07:00
6d2e722fa8 fix(threads): typed ThreadNotFound error + skip Sentry for stale-thread RPCs (OPENHUMAN-TAURI-4H, -60) (#1570)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-12 21:30:34 -07:00
afdc268040 fix(observability): drop transient upstream HTTP from Sentry (429/408/502/503/504) (#1529)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-12 20:45:06 -07:00
oxoxDevGitHubgoogle-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>Claude Opus 4.7Steven Enamakel
721cb2b64c fix(util): UTF-8-safe truncation helpers + audit unsafe byte-slice call sites (OPENHUMAN-TAURI-7G) (#1549)
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-12 19:57:34 -07:00
29f4b02d3b fix(socket): follow HTTP 3xx during WebSocket handshake (OPENHUMAN-TAURI-9X) (#1547)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-12 19:57:18 -07:00
oxoxDevGitHubgoogle-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>Steven Enamakel
2f2f98516a fix(rpc): normalize legacy un-namespaced method names in dispatcher (OPENHUMAN-TAURI-9Q) (#1541)
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-12 19:56:51 -07:00
oxoxDevGitHubgoogle-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>Claude Opus 4.7Steven Enamakel
d762660ea3 fix(si_server): skip embedded server autostart on non-macOS (OPENHUMAN-TAURI-50) (#1542)
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
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:40 -07:00
3bfe53aaa9 fix(tauri): hide instead of destroy main window on Windows close (OPENHUMAN-TAURI-2X) (#1548)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-12 19:51:31 -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
af4d231ced chore(branding): refresh app icons across all sizes (#1571)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 11:30:29 -07:00
3db3b92992 fix(webview-accounts): typed error wrap for openWebviewAccount (#1472) (#1521)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 00:22:29 -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
2426110c5d feat(auth): classify RPC 401s + global reauth bus (#1472) (#1495)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 11:34:08 -07:00
oxoxDevandGitHub 49398094e8 fix(human/mascot): consume orphan audio-stopped rejections (#1472) (#1494) 2026-05-11 09:29:47 -07:00
b5bedd6b2c fix(tauri): align staging datadir resolution with core (#1490) (#1492)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 09:26:38 -07:00
0f6cc583f3 feat(tools/whatsapp_data): expose local WhatsApp store to agent (#1341) (#1373)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 19:04:15 -07:00
oxoxDevGitHubgoogle-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
530e18e372 feat(redirect-links): stage util to append ?u= on openhm.xyz URLs (#1164) (#1184)
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
2026-05-07 12:34:19 -07:00
a3f8321303 fix(integrations): propagate backend error body in non-2xx responses (#1296) (#1330)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 12:30:39 -07:00
b7f743d461 fix(webview-accounts): zoom Sign in with Google escapes to system browser (#1294) (#1329)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 12:28:25 -07:00
44062fae8c fix(webview/cdp): replace wall-clock load timeout with idle-watchdog (#1213) (#1312)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 12:06:21 -07:00
oxoxDevandGitHub 7b0eff2d14 feat(tools/computer): humanize MouseTool cursor motion (#682) (#1309) 2026-05-07 12:05:56 -07:00