Skip to content

fix(mobile): restore assistant message bottom padding - #10491

Merged
juliusmarminge merged 1 commit into
mainfrom
t3code/fix-assistant-message-bottom-padding
Sep 7, 2026
Merged

fix(mobile): restore assistant message bottom padding#10491
juliusmarminge merged 1 commit into
mainfrom
t3code/fix-assistant-message-bottom-padding

Conversation

@juliusmarminge

@juliusmarminge juliusmarminge commented Sep 7, 2026

Copy link
Copy Markdown
Member

What Changed

  • Restored assistant message footer and bottom spacing updates when the latest turn settles.
  • Simplified thread swipe dismissal so actions commit from the row and restore correctly on failure.
  • Removed the shared thread-dismissal coordination layer and updated swipe reset behavior.

Why

Assistant messages could render without their expected bottom padding when the final message update arrived before the turn completed. The swipe dismissal coordination also added complexity and could leave rows in inconsistent states across recycled or duplicated thread lists. The updated row-local flow keeps dismissal and recovery tied to the action that initiated them.

UI Changes

Mobile thread feed spacing and thread swipe interactions changed. No before/after screenshots or video were included.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Fix assistant message bottom padding in ThreadFeed by adding unsettledTurnId to list extra data

Moves the unsettled-turn calculation before listAppearanceData is created and adds unsettledTurnId to the extra-data object and its memo dependencies. This makes the list invalidate unchanged message rows when the latest turn transitions between unsettled and settled states, so footers and spacing reflect turn completion. Risk: ThreadFeed.tsx now repaints affected rows on every turn-state change; verify no unintended scroll or performance regressions.

Macroscope summarized c778682.

Summary by CodeRabbit

  • Bug Fixes
    • Thread feed rows now refresh correctly when the latest turn completes or changes state.

- Repaint feed rows when the latest turn settles so footer spacing appears
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:S 10-29 changed lines (additions + deletions). labels Sep 7, 2026
@macroscopeapp

macroscopeapp Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at c778682

Macroscope's review found this PR approvable — This is a focused one-file mobile rendering fix that refreshes existing message rows when a turn settles, restoring the already-defined assistant footer and bottom spacing. Its runtime impact is limited to a bounded list repaint on turn-state transitions, with no schema, infrastructure, security, billing, or configuration changes.

You can add or adjust custom eligibility rules. Learn more.

@juliusmarminge
juliusmarminge merged commit b717537 into main Sep 7, 2026
21 of 22 checks passed
@coderabbitai

coderabbitai Bot commented Sep 7, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Team

Run ID: 9b56ef65-4109-43c6-808f-2c0b64b5c1dd

📥 Commits

Reviewing files that changed from the base of the PR and between e32dd42 and c778682.

📒 Files selected for processing (1)
  • apps/mobile/src/features/threads/ThreadFeed.tsx

Included review availability: 5 reviews are currently available. Your included PR review attempts over the past 7 days set your current allowance at 10 reviews per hour.


📝 Walkthrough

Walkthrough

ThreadFeed now includes the latest unsettled turn identifier in list appearance data. The list memo updates when that identifier changes, so visible rows refresh after turn settlement. The duplicate identifier calculation was removed.

Changes

Thread feed refresh

Layer / File(s) Summary
Propagate unsettled turn state
apps/mobile/src/features/threads/ThreadFeed.tsx
ThreadFeed derives unsettledTurnId, passes it through list appearance data, adds it to memo dependencies, and removes the duplicate calculation.

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

Merge Risk: ⚪ Minimal · up to c7786

This change refreshes visible thread-feed rows when the latest turn settles, restoring final-message spacing without identified merge-readiness risk.

Suggested reviewers: sunkenintime, t3dotgg

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the primary change: restoring assistant message bottom padding on mobile.
Description check ✅ Passed The description explains the changes and reasons, identifies the UI impact, and completes the relevant checklist items. It does not include the requested before/after screenshots or video for UI and i…
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 1…
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.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch t3code/fix-assistant-message-bottom-padding

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

@juliusmarminge
juliusmarminge deleted the t3code/fix-assistant-message-bottom-padding branch September 7, 2026 10:01
@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 13.6 KiB 13.6 KiB +4 B (+0.0%) 15.1 KiB
Codex Thread snapshot wire 7.0 KiB 7.1 KiB +7 B (+0.1%) 7.3 KiB
Codex Live turn WebSocket wire 6.6 KiB 6.6 KiB −3 B (−0.0%) 7.8 KiB
Codex Live turn WebSocket decoded 57.1 KiB 57.1 KiB 0 B (0.0%) 66.4 KiB
Codex Live turn messages 10 10 0 (0.0%) 21
Claude Total thread wire 13.6 KiB 13.6 KiB +18 B (+0.1%) 15.1 KiB
Claude Thread snapshot wire 7.0 KiB 7.0 KiB +2 B (+0.0%) 7.3 KiB
Claude Live turn WebSocket wire 6.5 KiB 6.5 KiB +16 B (+0.2%) 7.8 KiB
Claude Live turn WebSocket decoded 57.8 KiB 57.8 KiB +44 B (+0.1%) 66.4 KiB
Claude Live turn messages 8 9 +1 (+12.5%) 21

Baseline: e32dd42 · PR result: c778682 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 113.9 KiB
  • Claude decoded thread snapshot: 114.6 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 7, 2026
## What's Changed
* fix(mobile): keep pending messages in the chat timeline by @juliusmarminge in pingdotgg/t3code#10449
* fix(mobile): show connection status in the floating pill instead of a second one by @juliusmarminge in pingdotgg/t3code#10440
* fix: use Pierre icons consistently for attachments by @juliusmarminge in pingdotgg/t3code#10475
* feat(mobile): open the thread screen as soon as a new task is submitted by @juliusmarminge in pingdotgg/t3code#10435
* fix(devcontainer): make repository setup work by @saphid in pingdotgg/t3code#7875
* fix(projects): prevent invalid script IDs from crashing threads by @saphid in pingdotgg/t3code#10019
* fix(mobile): hide changed-files navigator and restore refresh in raw diff fallback by @lnieuwenhuis in pingdotgg/t3code#9828
* fix(ios): scroll short source files from blank space by @juliusmarminge in pingdotgg/t3code#10178
* feat(mobile): start a new thread on an existing branch by @StiensWout in pingdotgg/t3code#10359
* fix(mobile): improve font-size slider performance and prevent maximum update depth errors by @bbernag in pingdotgg/t3code#7138
* fix(web): keep composer toolbar controls anchored during transitions by @juliusmarminge in pingdotgg/t3code#10478
* fix(web): resize the floating preview from any edge by @juliusmarminge in pingdotgg/t3code#10467
* fix(mobile): prevent chat from disappearing when scrolling by @juliusmarminge in pingdotgg/t3code#10479
* fix(mobile): smooth composer status pill resizing by @juliusmarminge in pingdotgg/t3code#10484
* fix(mobile): release initial scroll target after dragging by @juliusmarminge in pingdotgg/t3code#10483
* fix(mobile): animate thread lifecycle transitions consistently by @juliusmarminge in pingdotgg/t3code#10487
* fix(mobile): restore assistant message bottom padding by @juliusmarminge in pingdotgg/t3code#10491
* fix(mobile): preserve chat rows when toggling commands by @juliusmarminge in pingdotgg/t3code#10492

## New Contributors
* @bbernag made their first contribution in pingdotgg/t3code#7138

**Full Changelog**: pingdotgg/t3code@v0.0.39-nightly.20260907.1332...v0.0.40-nightly.20260907.1346

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.40-nightly.20260907.1346
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S 10-29 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant