Skip to content

fix(mobile): Android new-thread composer no longer opens shifted off-screen - #43

Merged
Andrey170170 merged 1 commit into
dev_vmfrom
fix/android-new-task-header
Oct 21, 2026
Merged

Andrey170170 merged 1 commit into
dev_vmfrom
fix/android-new-task-header

Conversation

@Andrey170170

Copy link
Copy Markdown
Owner

Summary

On Android, the new-thread screen could open shifted down by about one header height, with the composer partly off-screen so you couldn't type. Re-picking the project fixed it.

The new-task routes showed the native header on first layout, and the screens hid it after mount. That's the same race pingdotgg#18963 fixed for detail panes with DETAIL_HEADER_OPTIONS. The fix hides the native header from the first layout on these routes:

 NewTaskSheetStack (apps/mobile/src/Stack.tsx)
   NewTaskDraft
+    headerShown: Platform.OS !== "android"
   NewTaskEnvironment
+    headerShown: Platform.OS !== "android"
   NewTaskBranch
+    headerShown: Platform.OS !== "android"

All three already draw their own AndroidScreenHeader. iOS is unchanged.

Evidence

  • Before: device screenshot with an empty band above "New thread", the composer clipped at the bottom and no text input possible.
    After: not yet checked on a device. The fix will ship in the next Forgejo Android build for a device check. Mobile typecheck and lint pass.

Merge Danger

Door: two-way

Blast Radius: small

Only changes Android header options for three new-task routes.

🤖 Generated with Claude Code

…screen

The new-task draft, environment, and branch routes showed the native header
on first layout and hid it after mount, which can leave Android content
measured with the header. Hide it from the first layout, as DETAIL_HEADER_OPTIONS
already does for detail panes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-21T22:50:46.400317Z c40336a PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@coderabbitai

coderabbitai Bot commented Oct 21, 2026

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Path: .coderabbit.config.ts
  • Review profile: CHILL
  • Plan: Essentials
  • Run ID: e8621cb2-edff-416a-b5ba-6bd293dff07d
📥 Commits

Reviewing files that changed from the base of the PR and between a08aece and c40336a.

📒 Files selected for processing: 1
  • apps/mobile/src/Stack.tsx

Included review availability: This review used your included allowance. 0 included reviews remain after this review. Your included PR review attempts over the past 7 days set your current allowance at 1 review per hour.

📝 Walkthrough

The New Task draft, environment picker, and branch picker hide the native header on Android. On other platforms, these screens continue to show the native header.

Changes: Mobile Header Visibility

Layer / File(s) Summary
Set header visibility by platform
apps/mobile/src/Stack.tsx
The three New Task screens hide the native header on Android and show it on other platforms. The draft screen retains its hidden back button and empty title.

Priority: ➖ Normal

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix

Suggested reviewers: juliusmarminge

Merge Risk: ⚪ Minimal · up to c4033

The scoped Android header change has no established merge-blocking risk.

Pre-merge checks: Passed 3 · Failed 1

Failed Failed checks: 1 warning

Check name Status Explanation Resolution
Description check Warning The description explains the problem and implementation, but it does not use the required Problem, Change, Scope and approval, and Verification sections. It also lacks approval or an exemption rationa… Rewrite the description using all required template sections. Add the triaged issue or maintainer approval, or explain why this obvious focused fix qualifies without one. Complete Android device verification and include before-and-after scr…
Passed Passed checks: 3 passed
Check name Status Explanation
Title check Passed The title clearly identifies the Android new-thread composer layout fix and matches the primary change.
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Description check

Explanation

The description explains the problem and implementation, but it does not use the required Problem, Change, Scope and approval, and Verification sections. It also lacks approval or an exemption rationale and does not provide completed after-device evidence for the UI change.

Resolution

Rewrite the description using all required template sections. Add the triaged issue or maintainer approval, or explain why this obvious focused fix qualifies without one. Complete Android device verification and include before-and-after screenshots, plus a recording if interaction or layout timing requires it.

✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@Andrey170170
Andrey170170 merged commit e209c03 into dev_vm Oct 21, 2026
1 check passed
@Andrey170170
Andrey170170 deleted the fix/android-new-task-header branch October 21, 2026 22:57
Andrey170170 added a commit that referenced this pull request Oct 26, 2026
Merges upstream's latest published nightly, v0.1.3-nightly.20261026.3726
(3f94487), rather than the tip of main.

Adaptations:
- ws.ts: rebuilt from upstream's file. Upstream now splits handlers into two
  groups to stay under TypeScript's instantiation limit; that split is built
  from CoreWsRpcGroup and the side-chat layer stays beside it. Re-applied
  availableUpdateVersion in the server config and its snapshot stream, which
  now passes upstream's workspaceSnapshotsOnDemand option.
- PR watch: the fork's 👍 wake and upstream's no-checks wake are combined.
  The reactor's queued-wake folding passes `now` through to the evaluator, and
  the test helpers wrap the new signature.
- Stack.tsx: upstream removed the new-task sheet stack the Android header fix
  (#43) patched. Its Environment and Branch routes now use
  DETAIL_HEADER_OPTIONS so Android hides the native header from first layout.
- SideChatPanel: upstream replaced onManualNavigation with a viewport
  navigation signal (pingdotgg#25463); the side chat releases live follow through
  onViewportAttach and navigationReleasesFollow. Its two effects carry the
  justification upstream's react-effect-budget rule asks for.
- useComposerStash: the side-chat guard moved into upstream's registered
  Mod+S handler.
- TimelineAssistantRows: the fork button keeps the fork's outer gate, which
  skips the support lookup where forking is unavailable.
- SideChatService and PullRequestWatchReactor helpers use Effect.fn, now that
  upstream makes effectFnOpportunity an error.
- pullRequestWatch.forgejoComments.test.ts: removed with upstream, which
  moved forge tests into their package (pingdotgg#24000).
- Dropped the @types/hast override: upstream resolves one copy without it.
- upstream-sync skill: target the latest published nightly; typecheck with tsc.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant