Skip to content

fix(android): finish onboarding after permission reapproval#100959

Merged
steipete merged 2 commits into
mainfrom
codex/android-onboarding-approval-flow
Jul 6, 2026
Merged

fix(android): finish onboarding after permission reapproval#100959
steipete merged 2 commits into
mainfrom
codex/android-onboarding-approval-flow

Conversation

@steipete

@steipete steipete commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Closes #100949

What Problem This Solves

Fixes an issue where Android users who enabled node capabilities during onboarding could be sent back to Permissions after approving the resulting node capability request. The independently mutable Permissions and approval back targets could then point at each other, trapping users in a navigation cycle instead of completing onboarding.

Why This Change Was Made

The post-pairing flow now uses one closed access stage for direct permissions, initial approval, and permission reapproval. Each stage owns its Back destinations and approval-success action: initial approval still advances to Permissions, while permission reapproval completes onboarding because those permission choices were already applied.

User Impact

Android QR/setup-code onboarding now finishes immediately after successful permission-triggered node approval. Before approval completes, users can still go back to review Permissions, then back again to gateway recovery without cycling.

Evidence

  • Blacksmith Testbox through Crabbox tbx_01kwvxxt0fp3qq399nw143hsb9: cd apps/android && ./gradlew :app:testPlayDebugUnitTest --tests ai.openclaw.app.ui.OnboardingFlowLogicTest --no-daemon — passed; Play debug Kotlin compilation included.
  • Regression tests cover reapproval Back as Approval → Permissions → Recovery and reapproval success as CompleteOnboarding.
  • .agents/skills/autoreview/scripts/autoreview --mode local --stream-engine-output — clean, no accepted/actionable findings; patch correct at 0.95 confidence.
  • git diff --check — passed.
  • The broader :app:ktlintCheck reached and passed the touched main source, then stopped on pre-existing violations in CronJobDetailTest.kt, InvokeErrorParserTest.kt, and NodeUtilsTest.kt; none are changed here.
  • No visual layout or copy changed; screenshots are not applicable.

AI-assisted: yes. The implementation and regression contract were reviewed before commit.

@openclaw-barnacle openclaw-barnacle Bot added app: android App: android size: S maintainer Maintainer-authored PR labels Jul 6, 2026
@steipete steipete self-assigned this Jul 6, 2026
@steipete
steipete force-pushed the codex/android-onboarding-approval-flow branch from 7cac852 to f1353db Compare July 6, 2026 15:00
@steipete

steipete commented Jul 6, 2026

Copy link
Copy Markdown
Contributor Author

Land-ready proof for head f1353dbef612a96538e1ffd6ebaa01c7019af8d9:

  • Replaced parallel Permissions/approval back targets with one closed access-stage state; permission reapproval success completes onboarding, while Back unwinds Approval → Permissions → Recovery.
  • Blacksmith Testbox through Crabbox tbx_01kwvxxt0fp3qq399nw143hsb9: focused OnboardingFlowLogicTest plus Play debug Kotlin compile passed.
  • Same Testbox: pnpm native:i18n:check passed with entries=2698 changed=false.
  • Exact-head CI run 28801207781 passed, including Android Play/third-party tests, Play APK build, native i18n, lint, types, guards, and shared shards.
  • Final branch autoreview: no accepted/actionable findings; patch correct, confidence 0.93.
  • OPENCLAW_TESTBOX=1 scripts/pr prepare-run 100959 passed hosted exact-head gates; prepared head equals PR head.

Known gap: no physical-device QR/approval automation. The transition contract is covered directly and both Android CI flavors are green.

@steipete
steipete merged commit 8582895 into main Jul 6, 2026
74 checks passed
@steipete
steipete deleted the codex/android-onboarding-approval-flow branch July 6, 2026 15:13
@steipete

steipete commented Jul 6, 2026

Copy link
Copy Markdown
Contributor Author

Merged via squash.

github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request Jul 7, 2026
…#100959)

* fix(android): finish onboarding after permission reapproval

* chore(android): sync onboarding i18n inventory
giodl73-repo pushed a commit to giodl73-repo/openclaw that referenced this pull request Jul 8, 2026
…#100959)

* fix(android): finish onboarding after permission reapproval

* chore(android): sync onboarding i18n inventory
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

app: android App: android maintainer Maintainer-authored PR size: M

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Android onboarding can loop after permission reapproval

1 participant