Repository navigation
feat(mobile): native step-by-step Bot creation and Environment adding - #2930
Conversation
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WJJ4DsjGgNLb7bmSikF2Mr
…nned step bar Rows on the Tobs Connect list now select as whole rows with one native checkmark instead of an embedded checkbox. Added Environments say so and cannot be toggled. A new StepBar primitive pins the add action at the bottom with the native busy indicator, and the row being paired shows its own progress while the list stays visible; the verification page appears only when a fingerprint needs comparing. Issue: #2923 Agent-Task: claude/cloud/session_01WJJ4DsjGgNLb7bmSikF2Mr Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WJJ4DsjGgNLb7bmSikF2Mr
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 29 minutes. View limit details
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 |
Issue: #2923 Agent-Task: claude/cloud/session_01WJJ4DsjGgNLb7bmSikF2Mr Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WJJ4DsjGgNLb7bmSikF2Mr
Blank creation and every import now run as real stack pages, one question each, ordered by one pure function of the source. The Environment page is a single-select list that preselects the only, entered-from or last-used Environment, disables offline ones and offers adding one when there is none. The pinned step bar carries Next · k/n, the round back button and native loading, with a slow-Environment line after five seconds, the error above the bar and Retry on the last page. The header close button leaves the flow and keeps the draft; opening the new Bot closes the step pages. Issue: #2924 Agent-Task: claude/cloud/session_01WJJ4DsjGgNLb7bmSikF2Mr Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WJJ4DsjGgNLb7bmSikF2Mr
The Name step shows a large round avatar with Shuffle and Choose from Photos. The choice is kept in the creation draft and the submitted record, then applied after creation with the existing botAppearanceSet and botAvatarSet operations. A failed apply keeps the created Bot, clears the choice and raises a native notice. Issue: #2925 Agent-Task: claude/cloud/session_01WJJ4DsjGgNLb7bmSikF2Mr Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WJJ4DsjGgNLb7bmSikF2Mr
Git import runs Environment, Git link, name and avatar, then bio and tags. Leaving the link step previews it on the chosen Environment and keeps any failure there; an empty name now defaults to the repository's name. Issue: #2926 Agent-Task: claude/cloud/session_01WJJ4DsjGgNLb7bmSikF2Mr Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WJJ4DsjGgNLb7bmSikF2Mr
The Zip file step and the Marketplace confirm step shipped with the shared step flow; this records them for the release notes. Issue: #2928 Agent-Task: claude/cloud/session_01WJJ4DsjGgNLb7bmSikF2Mr Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WJJ4DsjGgNLb7bmSikF2Mr
Native QA handoff: step-by-step Bot creation and Environment addingYou are testing PR #2930 on the physical machines: the Mac (iOS Simulator, iPhone optional) and BEAR-PC (Android emulator). All the code is written and the automated checks pass. Your job is the native checks and the light/dark screenshots, which the cloud session could not do. Follow What to check out
Step 0: make sure both queues have the entryThe cloud session asked for the Mac entry to be added. Check both queues anyway, and add an entry that's missing, word for word from below. Don't cut a batch unless you are that queue's owner. #2850 and #2857 were ahead on the Mac.
Mac queue entry (paste under "Next batch")Windows queue entry (paste under "Next batch")Screenshots
A. Add Environments from a Tobs Connect account (#2923)Dev builds have a fixture route, so this needs no real account:
B. Create a blank Bot (#2924 + avatar #2925)Start from the Chats plus menu → "Create a blank Bot" (「创建空白 Bot」). Repeat once from inside a specific Environment and once from "All".
C. Import from Git (#2926)Plus menu → Import from Git link.
D. Import from Zip (#2928)Plus menu → Import Zip. Use a Bot Zip exported from the Host, under 100 MB.
E. Marketplace import (#2928)Browse Marketplace → open a listing → Import.
Also look at (both platforms)
Known limits (not bugs)
When you're donePost the results comment on PR #2930. If everything passes, say so there and in the queue results. Leave the PR in draft: the cloud session will mark it ready once the screenshots are attached. Report any failure with the step id, platform, theme and what you saw. Generated by Claude Code |
Issue: #2925 Agent-Task: claude/cloud/session_01WJJ4DsjGgNLb7bmSikF2Mr Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WJJ4DsjGgNLb7bmSikF2Mr
…-q6839h # Conflicts: # apps/mobile/src/ui/design/tokens.ts
Android (Windows) physical-device QA resultsTask: Not an all-pass sign-off. Original
38 redacted physical-device screenshots retained; incomplete/mismatched theme pairs explicitly listed in the report. TalkBack speech, iOS, live models, real Connect account and optional stale-listing/retained-file cases are not claimed. Dedicated Host ended with six canonical Bots and no recovery duplicate. Only this QA pairing was revoked/unpaired. Original phone settings/input method and original APK restored with data preserved; test files removed, dedicated Host/Metro/proxy stopped, task ADB mappings removed and phone lease released. |
iOS native acceptance — #2930Overall: FAIL. Evidence-only follow-up: PR #2974, with 57 redacted native PNGs, capture hashes and the full report. All57 images were expanded in GitHub and verified loaded; pinned raw PNG spot-check returned200image/png.
Also retained: newly created DM avatar/name stack and clip in the header; the correct hit target opens a normal profile. This adjacent observation is not fixed in the evidence branch. Canonical isolated-Host counts: A Native/CLI screenshots and receipts are separate proof. SpokenVoiceOver, middle font size, English, ReduceTransparency/pre-iOS26 fallback and performance benchmarks remain untested. Images preserve original aspect ratios; only privacy masks are applied. Early theme-transition frames were replaced with settled captures. Cleanup complete for active resources: ownA/B pairings removed and exact device keys verified revoked;3 prior pairings preserved; ownMetro/Hosts/downloadserver/driver stopped, owned ports free, protected shared listeners unchanged; SimulatorShutdown and light/large restored. Closed QA Profiles/raw evidence retained. Simulator-only differences retained: Toolsbutton hidden and first-use Dev-app/Photos notifications declined (not reset to notDetermined); owned test photo is recoverable in RecentlyDeleted. Details in report. Task: |
Requested by Vain · project thread
Why the change
Adding Environments mixed list rows with embedded checkboxes, and creating a Bot was one long form with a dropdown destination / 添加环境时列表里套复选框;创建 Bot 是一整页长表单加下拉选择环境,都不像原生应用。This PR delivers every slice of #2922, one commit per slice.
Closes #2923 · Closes #2924 · Closes #2925 · Closes #2926 · Closes #2928 · Parent #2922 · Agent task
claude/cloud/session_01WJJ4DsjGgNLb7bmSikF2MrSpecial things to note
botAppearanceSet/botAvatarSet. The creation draft file gains an optionalavatarfield (old files still parse). Revert is a plain revert./create-bot= step 1,/create-bot-step?flow=…&step=n). The header ✕ pops the whole flow (router.dismiss(n+1)); opening the created Bot pops the step pages first. Zip entry no longer opens the picker immediately; the file is picked on step 2.pnpm --filter @botharness/mobile typecheck✅ ·vitest runinapps/mobile✅ 278 files / 2130+ tests ·pnpm lint✅ ·pnpm changelog:check✅. New:bot-creation-steps.test.ts(step order, default Environment, step readiness), step-page screen tests (back/close, slow line, offline rows, empty state, avatar apply and failure, Git preflight, Zip progress), transport avatar test.Change outline
StepBarprimitive (iOS SwiftUI Liquid Glass / Android M3 Expressive / RN fallback): round Back + same-height capsule, "Next · k/n", native busy indicator, note and error lines.creationSteps(flow)orders blank ①Environment ②Name ③Persona+bio; Git ①②Link③④; Zip ①②File③④; Marketplace ①Environment ②Name ③Confirm. Single-select Environment list with preselect (only / entered-from / last-used), offline rows disabled, empty state → Add Environment and return with it selected. Creating shows native loading, a slow-Environment line after 5 s, error + Retry on the last page, then opens the Bot.DESIGN.md: step bar, step flow, default Environment and avatar rules; superseded the single-form import rules.Screenshots: pending native capture (iOS / Android × light / dark).
🤖 Generated with Claude Code
https://claude.ai/code/session_01WJJ4DsjGgNLb7bmSikF2Mr