Commit Graph
79 Commits
Author SHA1 Message Date
Mega MindandGitHub 99ad66364c feat(composio): add tags query param to GitHub tool list API (#2714) 2026-05-27 04:42:57 +05:30
Mega MindandGitHub 730017e2ef test(loopback-oauth): extract classify_request and add routing unit tests (#2646) 2026-05-26 15:08:19 +05:30
Mega MindandGitHub 099570cddc fix(channels): thread workspace identity through channel events to prevent cross-workspace persistence (#2633) 2026-05-26 15:07:41 +05:30
Steven EnamakelandGitHub e7e7e8a951 Migrate E2E coverage to Playwright (#2610) 2026-05-25 23:38:34 -07:00
Mega MindandGitHub 0d62e8489f fix(inference): preserve connected-app tools when BYOK provider is configured (#2632) 2026-05-25 22:58:57 +05:30
sanil-23andGitHub f756893153 test(e2e): default file keyring + RPC diagnostics to unblock Linux Appium (re-delivers #2609) (#2645) 2026-05-25 21:29:55 +05:30
Mega MindandGitHub cdee8f73fb fix(startup): recover from core port 7788 conflict automatically (#2626) 2026-05-25 20:09:08 +05:30
Steven EnamakelandGitHub 45a1502629 fix(e2e): stabilize appium docker harness (#2589) 2026-05-24 19:48:13 -07:00
Steven EnamakelandGitHub b62409a0cf perf(e2e): full-suite hardening — sharded build/test, loopback auth, +23 specs (#2578) 2026-05-24 13:21:33 -07:00
Steven EnamakelandGitHub a47740d4c9 test(memory): extend memory coverage across retrieval and tooling (#2574) 2026-05-24 13:21:12 -07:00
48548a223b feat(app): UI control for max_actions_per_hour (#2486) (#2500)
Co-authored-by: Chen Qian <cq@Chens-MacBook-Pro.local>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-23 00:52:54 -07:00
Steven EnamakelandGitHub 25da30f6b6 test(e2e): expand agent-harness coverage for channels + prompt flows (#2518) 2026-05-23 00:29:14 -07:00
Steven EnamakelandGitHub e53204c7ec test(e2e): expand e2e coverage for 12 missing high-priority flows (#2512) 2026-05-22 22:15:12 -07:00
03d1e2512e feat(e2e): complete E2E v2 suite — 66 specs, orchestrator, bug fixes (#2353)
Co-authored-by: Steven Enamakel <31011319+senamakel@users.noreply.github.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-22 17:23:01 -07:00
Mega MindandGitHub 2a935d35b1 test(e2e): add E2E coverage for 15 Composio connector flows (#2351) 2026-05-22 00:08:11 +05:30
0f5e91421b test(e2e): use stable cron test ids
## Summary

- Adds shared `waitForTestId` and `clickTestId` E2E helpers for stable DOM hooks.
- Adds missing `cron-jobs-panel` and `cron-refresh` hooks to the Cron Jobs settings panel.
- Migrates the reference cron E2E flow away from Tailwind class/DOM walking to cron row/action test IDs.
- Documents the E2E `data-testid` naming taxonomy in the E2E guide.

## Problem

- #1861 calls out `cron-jobs-flow.spec.ts` as the concrete example of brittle selectors: it found `morning_briefing` via Tailwind class strings and `closest('div.p-4')`.
- That breaks on harmless class/layout refactors and makes the reference spec a weak template for future E2E work.

## Solution

- Use existing `CoreJobList` cron row/action hooks directly from the spec.
- Add the missing panel/refresh hooks so the whole cron flow can avoid text/button discovery for row actions.
- Centralize test ID waiting/clicking in `element-helpers.ts` instead of keeping local DOM snippets in specs.

## Submission Checklist

- [x] Tests added or updated (happy path + at least one failure / edge case) per [Testing Strategy](../gitbooks/developing/testing-strategy.md#failure-path-requirement) - updated the reference cron E2E spec and helper path.
- [x] **Diff coverage >= 80%** - N/A locally: E2E helper/spec/doc change; CI diff coverage is authoritative.
- [x] Coverage matrix updated - N/A: E2E selector-hardening change, no feature row added/removed/renamed.
- [x] All affected feature IDs from the matrix are listed in the PR description under `## Related` - N/A: no matrix feature ID applies.
- [x] No new external network dependencies introduced (mock backend used per [Testing Strategy](../gitbooks/developing/testing-strategy.md#mock-policy))
- [x] Manual smoke checklist updated if this touches release-cut surfaces ([`docs/RELEASE-MANUAL-SMOKE.md`](../docs/RELEASE-MANUAL-SMOKE.md)) - N/A: no release-cut surface.
- [x] Linked issue closed via `Closes #NNN` in the `## Related` section - N/A: this is a scoped slice that references #1861 without closing the broader audit issue.

## Impact

- Runtime impact: none outside stable `data-testid` attributes on the Cron Jobs panel.
- Test impact: cron E2E is less coupled to Tailwind classes and container structure.
- Compatibility: `waitForTestId` is documented as tauri-driver/DOM-backed; Mac2 specs should keep accessibility/text helpers unless IDs are mirrored into accessible labels.

## Related

- Refs #1861
- Follow-up PR(s)/TODOs: add stable hooks/migrations for the remaining settings, skills, conversation, onboarding, and notification E2E surfaces tracked by #1861.

---

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

### Linear Issue
- Key: N/A
- URL: N/A

### Commit & Branch
- Branch: `codex/1861-cron-e2e-testids`
- Commit SHA: `28eca40a3d2e3a75b61105887e4faf58d4c0866e`

### Validation Run
- [x] `pnpm --filter openhuman-app exec prettier --check src/components/settings/panels/CronJobsPanel.tsx test/e2e/helpers/element-helpers.ts test/e2e/specs/cron-jobs-flow.spec.ts` - passed
- [x] `pnpm typecheck` - passed
- [x] Focused tests: N/A, E2E spec migration not run locally
- [x] Rust fmt/check (if changed): `cargo fmt --all --check` - passed; `git diff --check` - passed
- [x] Tauri fmt/check (if changed): N/A

### Validation Blocked
- `command:` `pnpm --filter openhuman-app exec tsc -p test/tsconfig.e2e.json --noEmit`
- `error:` local command could not find `tsc` / `@wdio/globals/types` via that invocation
- `impact:` app-wide `pnpm typecheck` passes; remote E2E/TS jobs remain authoritative for the E2E tsconfig

### Behavior Changes
- Intended behavior change: none for users; E2E selectors now target stable hooks.
- User-visible effect: none.

### Parity Contract
- Legacy behavior preserved: cron load, refresh, pause/resume, run-history, and remove behavior unchanged.
- Guard/fallback/dispatch parity checks: spec still asserts the same UI and sidecar persistence behavior.

### Duplicate / Superseded PR Handling
- Duplicate PR(s): N/A
- Canonical PR: this PR
- Resolution (closed/superseded/updated): N/A


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

* **Tests**
  * Added E2E helpers and updated cron-jobs flow to use stable test identifiers for more reliable UI interactions and polling.

* **Documentation**
  * Added guidance on stable test ID naming and how to use the new E2E helpers in the testing guide.

* **Maintenance**
  * Cron Jobs panel and controls now expose stable identifiers for testing (no user-facing behavior changes).

<!-- 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/2301?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: aqilaziz <gonzes7@gmail.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-20 16:51:38 -07:00
15df9855c3 fix(orchestrator): route live facts to research
## Summary

- Routes live/current factual requests (weather, forecasts, recent web facts, "use Grok/live data") to the available `research` tool.
- Replaces the stale `delegate_researcher` prompt reference with the synthesized tool name `research`.
- Updates the chat harness subagent fixture to emit `research` so the forced tool call matches the current delegation surface.
- Adds a prompt-builder regression test that locks the live-data rule and rejects the stale tool name.

## Problem

- The orchestrator could acknowledge live weather/research requests with "on it" without actually calling the research tool.
- The prompt named `delegate_researcher`, but the current researcher tool is exposed as `research` via `delegate_name = "research"`.
- Users who named an unwired provider like Grok could stall the agent instead of falling back to the available live research path.

## Solution

- Teach the orchestrator to call `research` for live/current/time-sensitive facts that direct tools cannot answer.
- Explicitly tell it not to stop at "on it" and not to wait for the exact named provider when that provider is not wired in.
- Align the E2E harness fixture with the real `research` tool name.

## Submission Checklist

- [x] Tests added or updated (happy path + at least one failure / edge case) per [Testing Strategy](../gitbooks/developing/testing-strategy.md#failure-path-requirement) - added prompt regression assertion and updated E2E forced tool fixture.
- [x] **Diff coverage >= 80%** - N/A locally: tiny prompt/test fixture change; CI diff coverage will be authoritative.
- [x] Coverage matrix updated - N/A: prompt routing change, no feature row added/removed/renamed.
- [x] All affected feature IDs from the matrix are listed in the PR description under `## Related` - N/A: no matrix feature ID applies.
- [x] No new external network dependencies introduced (mock backend used per [Testing Strategy](../gitbooks/developing/testing-strategy.md#mock-policy))
- [x] Manual smoke checklist updated if this touches release-cut surfaces ([`docs/RELEASE-MANUAL-SMOKE.md`](../docs/RELEASE-MANUAL-SMOKE.md)) - N/A: no release-cut surface.
- [x] Linked issue closed via `Closes #NNN` in the `## Related` section

## Impact

- Runtime: orchestrator prompt only, plus E2E harness fixture alignment.
- User-visible effect: live weather/current fact requests should call research instead of ending with an acknowledgement.
- No migration, security, or dependency impact.

## Related

- Closes #2164
- Follow-up PR(s)/TODOs: N/A

---

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

### Linear Issue
- Key: N/A
- URL: N/A

### Commit & Branch
- Branch: `codex/2164-live-data-research`
- Commit SHA: `dc63d1d3e1ea531a1609594debd1e0ca95329b27`

### Validation Run
- [x] `pnpm --filter openhuman-app exec prettier --check test/e2e/specs/chat-harness-subagent.spec.ts` - passed
- [x] `pnpm typecheck` - N/A: comments/string fixture plus Rust prompt text only
- [x] Focused tests: `cargo test --lib build_routes_live_facts_to_research_tool` attempted; blocked before test execution by local `libclang` setup
- [x] Rust fmt/check (if changed): `cargo fmt --all --check` - passed; `git diff --check` - passed
- [x] Tauri fmt/check (if changed): N/A

### Validation Blocked
- `command:` `cargo test --lib build_routes_live_facts_to_research_tool`
- `error:` `whisper-rs-sys` build could not find `clang.dll` / `libclang.dll`; `LIBCLANG_PATH` is unset in this Windows environment
- `impact:` Rust prompt unit test did not execute locally; remote CI environment should validate it

### Behavior Changes
- Intended behavior change: live/current factual requests route to `research` when no direct tool can answer.
- User-visible effect: requests like "forecast for Bremerhaven today" should produce a researched answer instead of a bare "on it" acknowledgement.

### Parity Contract
- Legacy behavior preserved: direct answers, connected integration routing, crypto/code/planner/critic/archive routing remain unchanged.
- Guard/fallback/dispatch parity checks: prompt test asserts live facts mention weather/forecast/Grok fallback and rejects stale `delegate_researcher` naming.

### Duplicate / Superseded PR Handling
- Duplicate PR(s): N/A
- Canonical PR: this PR
- Resolution (closed/superseded/updated): N/A


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

## Summary by CodeRabbit

## Release Notes

* **Tests**
  * Enhanced test coverage for research request handling and subagent communication.

* **Chores**
  * Improved internal routing and terminology for research operations to support live, time-sensitive fact queries more effectively.

<!-- 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/2299?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: aqilaziz <gonzes7@gmail.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-20 15:21:23 -07:00
9ec2ae765f fix(e2e): sync E2E specs with current codebase (#2220)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-19 22:46:56 -07:00
Aqil AzizandGitHub b0fe42b0af fix(composio): request Gmail read scope for triggers (#2191) 2026-05-19 20:02:23 -07:00
Steven EnamakelandGitHub 4d28b1bc00 fix(e2e): resolve 30+ failing E2E specs — i18n, assertion, and import fixes (#2092) 2026-05-19 16:22:56 -07:00
b2ecdba4a8 test(cron): add stable job row selectors (#2062)
Co-authored-by: honor2030 <9779460+honor2030@users.noreply.github.com>
2026-05-19 14:34:54 -07:00
Steven EnamakelandGitHub 288aae12a9 test(e2e): hard-fail mega-flow and fix 6 hidden failures (#2028) 2026-05-17 19:37:48 -07:00
Steven EnamakelandGitHub b43bba7dac test: expand and stabilize settings e2e coverage (#2024) 2026-05-17 15:15:21 -07:00
Steven EnamakelandGitHub 95f1f5f063 Refactor inference around external Ollama routing (#1975) 2026-05-17 02:37:42 -07:00
Steven EnamakelandGitHub 2e58438aa9 test(e2e): onboarding simple vs advanced mode spec (#1989) 2026-05-17 02:02:25 -07:00
Steven EnamakelandGitHub 5f15fc1f71 test(e2e): cover runtime picker → login → onboarding → logout (#1982) 2026-05-16 20:29:12 -07:00
Steven EnamakelandGitHub 0354a6c9e7 feat(audio): add podcast generation and delivery toolkit (#1970) 2026-05-16 16:08:56 -07:00
Steven EnamakelandGitHub 40a384ed65 feat(wallet): add default rpc and EVM execution tools (#1964) 2026-05-16 15:12:09 -07:00
Steven EnamakelandGitHub dbbd33ea2c test(e2e): deep chat-harness coverage + streaming mock LLM + rust-e2e Linux lane (#1892) 2026-05-15 23:28:56 -07:00
f90a337bc0 Add agent task orchestration (#1768)
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-05-15 21:36:08 -07:00
Steven EnamakelandGitHub bbc5504691 test(e2e): convert ~22 stub specs to resetApp() UI-driven pattern (#1889) 2026-05-15 20:51:34 -07:00
Steven EnamakelandGitHub 2d54e46296 test(e2e): make the harness actually exercise the UI past login (#1859) 2026-05-15 15:52:51 -07:00
Steven EnamakelandGitHub aa57a338ff fix(e2e): dismiss BootCheckGate picker before every spec (mega-flow root cause) (#1779) 2026-05-15 03:02:11 -07:00
Steven EnamakelandGitHub 609b6b702b test: expand unit + e2e coverage from test-map (batch 3) (#1778) 2026-05-14 21:51:32 -07:00
Steven EnamakelandGitHub 7d8826f303 test: expand unit + e2e coverage from test-map (batch 2) (#1752) 2026-05-14 12:39:23 -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
Steven EnamakelandGitHub 9694dbee3c refactor(mock-api): domain split + OAuth + Composio + e2e workflow + macOS mega-spec scaffold (#1532) 2026-05-13 08:43:03 -07:00
Steven EnamakelandGitHub 6b044a9456 docs: rewrite README + gitbooks around current product, add Developing section (#1384) 2026-05-08 21:18:20 -07:00
oxoxDevGitHubgoogle-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>Claude Opus 4.7
d0dc31c53f test(settings): dev-options + data-management E2E coverage (#969) (#1220)
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-06 13:17:50 -07:00
28b35f48b1 fix(composio): address trigger toggle review feedback (#1111)
Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
Co-authored-by: Jwalin Shah <jshah1331@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-05 11:22:37 -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
Steven EnamakelandGitHub 195c9c51a6 feat(composio): client-side trigger enable/disable toggles (#1110) 2026-05-02 16:50:28 -07:00
f7f9fa2044 test: rewards & progression coverage (#970) (#1003)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-28 19:33:02 -07:00
Mega MindandGitHub 23a18c9c3f fix(notifications): request OS permission at startup and fix socketService listener leak (#998) 2026-04-28 18:56:44 -07:00
dcbcf7cc4e test(e2e): system tool coverage — fs/shell/git/browser (#967) (#1002)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-28 18:56:10 -07:00
4f9da9eb8d test(foundation): coverage matrix + strategy + gap-fill batch (#773) (#980)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-28 16:13:48 +05:30
Steven EnamakelandGitHub 7bd8f9d4c1 ci: parallelize rust tests, dedupe typecheck/clippy/sentry across workflows (#895) 2026-04-24 11:10:27 -07:00
VectorJetandGitHub a96d9da3a4 chore: migrate from yarn to pnpm (#886) 2026-04-24 10:52:16 -07:00
478c92e533 feat(commands): ⌘K palette + keyboard system + chat UX polish (#745)
- Implement command palette (⌘K) using cmdk and Radix Dialog with a global action registry.
- Add a keyboard shortcut system with a capture-phase hotkey manager and scope stack.
- Integrate seed navigation actions for Home, Chat, Intelligence, Skills, and Settings.
- Improve chat UX with a `useStickToBottom` hook for auto-scroll and fixed hydration errors.
- Refactor command UI to display shortcuts inline and remove the redundant help overlay.
- Fix Vite HMR connection issues within the Tauri/CEF environment.

Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-04-23 22:52:54 -07:00
e4c02ba1a6 test(e2e): channels smoke spec (Telegram + Discord) (#859)
- Add E2E smoke test for the /channels page to verify Telegram and Discord tile rendering.
- Validate that Telegram and Discord panels correctly display using fallback definitions.
- Ensure "Connect" affordances are accessible for both Telegram and Discord integrations.
- Apply Prettier formatting to the new channels smoke spec file.

Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
2026-04-23 22:15:28 -07:00