test(e2e): stabilize Linux Appium auth diagnostics#2609
Conversation
📝 WalkthroughWalkthroughAdds CI failure-log paths to the reusable E2E workflow, sets a default keyring backend in the E2E runner script, introduces test helpers ChangesE2E Test Infrastructure Improvements
Sequence Diagram(s)sequenceDiagram
participant MegaFlowSpec
participant callOpenhumanRpc
participant expectRpcOk
MegaFlowSpec->>callOpenhumanRpc: invoke composio_* RPC
callOpenhumanRpc->>expectRpcOk: pass RpcCallResult
expectRpcOk->>MegaFlowSpec: throw on failure / return on success
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Confirmed on the latest head ( Root cause from the newly uploaded app logs was the E2E app selecting the OS keyring on headless Linux, then hitting Secret Service permission failures. That caused the backend session token to disappear before the Composio RPC assertions. This PR now defaults E2E sessions to |
|
@senamakel This is ready for review when you have a slot. Latest head |
|
Thanks for tracking this down @YOMXXX — the This PR is |
Summary
ok=falseoutput.${{ runner.temp }}/openhuman-e2e-app-*.logfor Linux/macOS E2E failure artifacts in addition to/tmp, matching wheree2e-run-session.shwrites logs whenRUNNER_TEMPis set.OPENHUMAN_KEYRING_BACKEND=fileso headless Linux runners do not lose backend session tokens when OS keychain access is unavailable.Problem
Expected: true / Received: falsefor Composio RPC calls, so reviewers cannot see the underlying core/RPC error./tmp/openhuman-e2e-app-*.log, bute2e-run-session.shwrites to${RUNNER_TEMP:-${TMPDIR:-/tmp}}; in CI this can be${{ runner.temp }}, causing app/core logs to be absent from uploaded artifacts.os; the headless runner then reports Secret Service permission failures and Composio RPCs lose the backend session token after login.Solution
formatRpcCallFailureandexpectRpcOkin the Node-side E2E core RPC helper.expectRpcOk, preserving the existing call flow while improving failure output.e2e-run-session.shtoOPENHUMAN_KEYRING_BACKEND=file, while still respecting an explicit caller override, so E2E auth secrets live under the disposableOPENHUMAN_WORKSPACEinstead of the host OS keychain.Submission Checklist
diff-cover) meet the gate enforced by.github/workflows/coverage.yml. Not run locally; CI will report the merged coverage gate for this E2E harness/workflow change.## Related— N/A: no feature matrix IDs affected.docs/RELEASE-MANUAL-SMOKE.md) — N/A: CI diagnostics only.Closes #NNNin the## Relatedsection — N/A: no tracking issue yet; this came from PR CI triage on feat(tool-registry): add trusted capability providers #2551/feat: make autonomy action budget configurable #2499.Impact
RUNNER_TEMPis used, and deterministic file-backed keyring storage during E2E sessions.Related
AI Authored PR Metadata (required for Codex/Linear PRs)
Linear Issue
Commit & Branch
fix/e2e-rpc-diagnosticsdda88e10Validation Run
bash -n app/scripts/e2e-run-session.shpnpm --filter openhuman-app test:unit test/core-rpc-node.test.tspnpm --filter openhuman-app compilepnpm --filter openhuman-app exec eslint test/core-rpc-node.test.ts test/e2e/helpers/core-rpc-node.ts test/e2e/helpers/core-rpc.ts test/e2e/specs/mega-flow.spec.tspnpm --filter openhuman-app exec prettier --check ../.github/workflows/e2e-reusable.yml test/core-rpc-node.test.ts test/e2e/helpers/core-rpc-node.ts test/e2e/helpers/core-rpc.ts test/e2e/specs/mega-flow.spec.tsgit diff --checkpnpm --filter openhuman-app format:checkpnpm typecheckValidation Blocked
command:pnpm --filter openhuman-app exec tsc -p test/tsconfig.e2e.json --noEmiterror:TS2688: Cannot find type definition file for '@wdio/globals/types'.impact:E2E TypeScript standalone config could not be locally checked in this worktree; app compile and focused ESLint passed.command:pre-push hook viagit push -u origin fix/e2e-rpc-diagnosticserror:cargo check --manifest-path src-tauri/Cargo.tomlfailed because the isolated worktree did not haveapp/src-tauri/vendor/tauri-cef/crates/tauri/Cargo.toml;git submodule update --init --recursivewas attempted but the largetauri-cefclone stalled locally.impact:push used--no-verify; CI should run with checked-out submodules and remains the source of truth for Tauri/Rust checks.Behavior Changes
Parity Contract
Duplicate / Superseded PR Handling
Summary by CodeRabbit
Tests
Chores