[codex] Fix mobile device builds and Android UI#3575
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (4)
✅ Files skipped from review due to trivial changes (1)
📝 WalkthroughWalkthroughThe mobile app adds a personal-team iOS build path with bundle validation, conditional Expo plugin wiring, a release script, and updated build docs. It also introduces agent-awareness capability gating, a cross-platform symbol wrapper, platform-specific home header behavior, and updated home screen layout. ChangesiOS personal-team build mode
Home screen and header UI
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
|
@coderabbitai review |
✅ Action performedReview finished.
|
ApprovabilityVerdict: Needs human review This PR introduces new Android UI components and iOS Personal Team build support that changes push notification behavior. New platform features and configuration changes affecting runtime behavior warrant human review. You can customize Macroscope's approvability policy. Learn more. |
|
@coderabbitai review |
✅ Action performedReview finished.
|
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
apps/mobile/src/features/home/HomeHeader.tsx (1)
364-374: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winBind the iOS search bar to the current query state.
headerSearchBarOptionsdoesn’t expose a controlled text prop, so the iOS bar only reflects user input here. IfsearchQueryis cleared or prefills from route state, the native search text can stay stale unless it’s updated imperatively through the search bar ref.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@apps/mobile/src/features/home/HomeHeader.tsx` around lines 364 - 374, The iOS search bar is currently only updated from user input, so its native text can drift from the current searchQuery state when the query is cleared or prefilled. Update the HomeHeader search bar setup to sync the native value imperatively through the existing search bar ref whenever searchQuery changes, using the headerSearchBarOptions configuration and the onChangeText/onCancelButtonPress handlers as the hook points.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@apps/mobile/app.config.ts`:
- Around line 13-19: The Personal Team bundle identifier guard in app.config.ts
only checks for presence, so invalid values can still reach ios.bundleIdentifier
and fail later. Update the validation around personalTeamBundleIdentifier and
isIosPersonalTeamBuild to also reject non–reverse-DNS values such as single
labels, double dots, or whitespace, and throw an actionable error before the
config is used. Keep the check close to the existing
T3CODE_IOS_PERSONAL_TEAM_BUNDLE_ID validation so the failure happens in the same
place.
---
Outside diff comments:
In `@apps/mobile/src/features/home/HomeHeader.tsx`:
- Around line 364-374: The iOS search bar is currently only updated from user
input, so its native text can drift from the current searchQuery state when the
query is cleared or prefilled. Update the HomeHeader search bar setup to sync
the native value imperatively through the existing search bar ref whenever
searchQuery changes, using the headerSearchBarOptions configuration and the
onChangeText/onCancelButtonPress handlers as the hook points.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: 3625b076-e6e6-41bb-9d02-58a6e7383c12
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (10)
apps/mobile/README.mdapps/mobile/app.config.tsapps/mobile/package.jsonapps/mobile/plugins/withoutIosPersonalTeamCapabilities.cjsapps/mobile/src/app/_layout.tsxapps/mobile/src/app/index.tsxapps/mobile/src/components/AppSymbol.tsxapps/mobile/src/components/ControlPill.tsxapps/mobile/src/features/home/HomeHeader.tsxapps/mobile/src/features/home/HomeScreen.tsx
|
@coderabbitai review |
✅ Action performedReview finished.
|
|
@coderabbitai review |
✅ Action performedReview finished.
|
What Changed
Why
The existing mobile UI relies on iOS SF Symbols and iOS navigation-bar behavior, leaving Android controls and the home header incomplete. Local iOS builds also assume capabilities that Apple Personal Teams cannot sign. This change provides platform-specific fallbacks while keeping the default production capability set unchanged.
UI Changes
Android now gets a dedicated home header with search, filter/sort, settings, and new-task controls. Personal Team iOS builds show notification and Live Activity controls as unavailable because those builds intentionally omit the required capabilities.
Screenshots/video were not captured because this pass did not run a dev server or native build. UI behavior is covered here by source review, type checking, static analysis, tests, and release smoke CI.
Validation
pnpm install --frozen-lockfileCI=1 pnpm --dir apps/mobile exec expo install --checkvp checkvp run typecheckvp run lint:mobilevp test— 536 files passed, 2 skipped; 4,099 tests passed, 7 skippedvp checkpassed with existing lint warnings. The mobile native lint task passed its static checks and reported that optional local SwiftLint, ktlint, and detekt binaries are not installed.Checklist
Summary by CodeRabbit
New Features
Bug Fixes