orca/mobile/src
Jinjing d67ede1594
Implement confirm-only PR panel composer with classified error blocking (#9428)
* Clarify PR panel guidance: classify errors and confirm-only composer

Replace the ambiguous GitHub hosted-review boolean with a four-state evidence
model (found/positive_unresolved/not_found/unknown) so "No PR found" never
appears without an accepted lookup result. Classify GitHub refresh failures
into types (rate_limited, auth, network, permission, repo_unavailable,
gh_unavailable, unknown) for stable, honest copy. Confirmed-only composer:
preserve drafts across transient failures; hide Create during hard errors and
positive-unresolved evidence. Hard errors clear only when an eligibility
request starts after the error and returns an accepted outcome. Propagate
error types and unified retry schedule through the store. Sync mobile parity
with shouldOpenChecksPanelCreateComposer gating. Localize all new copy.

* Clarify PR panel guidance: classify errors and confirm-only composer

Add reviewLookupOutcome to hosted-review eligibility and thread it through
the panel so it never claims "No PR found" without accepted evidence. A
failed lookup is unavailable, not a settled no-PR. Fail closed on positive
unresolved evidence, hard refresh errors, and unavailable lookups. Add
structured GitHub refresh-error classification with Retry-After parsing.
Implement confirmed-only composer gating based on fresh, matching-context
eligibility with hard-error clearing. Mobile gates on reviewLookupOutcome
to prevent false Create claims. Surface throwOnFailure variants for each
provider so transport failures cross the RPC boundary instead of collapsing
to null. (Design success criteria 1–4; invariant 8.)

* Add exec-error helpers for subprocess error classification

Extracts stderr/stdout parsing and Retry-After detection into a
lightweight module that can be imported without pulling in the heavier
runner machinery. Supports PR-refresh error classification and proper
rate-limit handling for gh commands.

* test(mobile): include reviewLookupOutcome in create eligibility fixtures

Create / Push & Create now fails closed unless the lookup is not_found.
Update mobile test fixtures so accepted-no-PR cases can still proceed.

* Add OrThrow mock variants to forge-provider test mocks

forge-provider resolves branch reviews via the OrThrow variant so
lookup failures surface as unavailable instead of "no PR found".
2026-07-19 16:32:36 -07:00
..
agent-history Show agent session history on mobile (#6786) 2026-07-10 13:48:10 -07:00
browser fix(mobile): import Buffer from 'buffer', not 'node:buffer' 2026-06-30 01:15:56 -07:00
cache fix(mobile): resync worktree list + idempotent notification replay on reconnect (#8498 #8129) 2026-07-14 00:23:53 -07:00
components fix(mobile): survive connection-migration cutovers during worktree create (#9234) 2026-07-17 15:56:43 -07:00
constants
diagnostics mobile: per-host connection log screen with copy-diagnostics (#7984) 2026-07-09 16:20:07 -07:00
dictation Add Orca Relay desktop and mobile transport (#8536) 2026-07-14 11:47:05 -07:00
files Render png on mobile (#9087) 2026-07-16 18:21:08 -07:00
hooks Prevent mobile screen locking during voice dictation. (#7746) 2026-07-10 23:31:56 -07:00
layout
mobile-release fix(mobile): keep Android release versionCode committed (#7271) 2026-07-03 15:26:11 -07:00
notifications fix(mobile): harden notification opt-in onboarding (#8792) 2026-07-14 19:20:36 -07:00
platform
session feat(native-chat): add mobile default-view toggle for native chat (#9084) 2026-07-17 00:34:46 -07:00
source-control Implement confirm-only PR panel composer with classified error blocking (#9428) 2026-07-19 16:32:36 -07:00
storage feat(native-chat): add mobile default-view toggle for native chat (#9084) 2026-07-17 00:34:46 -07:00
tasks fix(mobile): survive connection-migration cutovers during worktree create (#9234) 2026-07-17 15:56:43 -07:00
terminal Fix restored mobile terminals and workspace visibility parity (#8789) 2026-07-14 19:36:47 -07:00
theme feat(native-chat): native chat view across mobile, desktop, and web (#5824) 2026-07-16 13:26:15 -07:00
transport feat(native-chat): native chat view across mobile, desktop, and web (#5824) 2026-07-16 13:26:15 -07:00
worktree Show agent session history on mobile (#6786) 2026-07-10 13:48:10 -07:00
host-edit-route-accessibility.test.ts feat(mobile): edit saved host endpoints (#8294) 2026-07-15 16:49:21 -07:00
host-edit-save-flow.test.ts feat(mobile): edit saved host endpoints (#8294) 2026-07-15 16:49:21 -07:00
host-route-action-state.test.ts
host-route-action-state.ts
host-route-exit.test.ts
host-route-exit.ts