Skip to content

CmuxConversation iOS: the reply thread drops from under the quote's tail - #24208

Merged
azooz2003-bit merged 2 commits into
feat-imsg-parity-guifrom
feat-imsg-parity-gui-reply-thread
Oct 22, 2026
Merged

azooz2003-bit merged 2 commits into
feat-imsg-parity-guifrom
feat-imsg-parity-gui-reply-thread

Conversation

@azooz2003-bit

@azooz2003-bit azooz2003-bit commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator

Upstream copy of the CmuxConversation part of #24202 (feat-cmux-next), so Packages/iOS/CmuxConversation stays byte-identical on both branches (the TestFlight builder checks for drift).

Cause. MessageCellLayout started the thread line beside the quote at its middle, which drew a hook out of the quote's leading side through its tail (user report in Chief, 2026-10-21).

Fix. The line comes from ConversationReplyThread (CmuxConversationGeometry). It drops from under the quoted bubble's tail (or, in a group, the avatar column beside an incoming quote), turns toward a reply on the other side level with the reply's middle, and ends in a short level run before the reply. A same-side reply gets a straight line that stops above it. The row keeps room for the quote's tail. Before/after against Messages, in both directions and light and dark: see #24202.

Tests. swift test --filter ConversationReplyThreadTests on a fleet mini: 6 tests with 13 issues on the old geometry, all pass now. All 255 CmuxConversationGeometryTests pass.

The macOS UI (MacConversationRows) has its own thread layout and is unchanged.

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.


Summary by cubic

Fixes the inline reply thread line in CmuxConversation iOS so it no longer draws a hook out of the quote's leading side through its tail.

  • The ConversationReplyThread geometry drops the line from under the quote's tail (or a group's avatar column), turns it toward a reply on the other side level with the reply's middle, and ends in a short level run short of the reply; same-side replies get a straight line that stops above them.
  • The line meets the reply's first piece of content, so a photo or file above the caption is never crossed.
  • Rows now keep room for the quote's tail and for a same-side reply's straight line.
  • Keeps Packages/iOS/CmuxConversation byte-identical with the feat-cmux-next branch's cmux-next iPhone: reply thread line, single Chief push, swipe actions close before the sidebar #24202, so the TestFlight drift check passes.
  • Adds ConversationReplyThreadTests (6 tests, all failing on the old geometry) plus a new geometry suite (255 tests).

Written for commit 9d4ba66. Summary will update on new commits.

View guided diff Turn on auto-fix

The inline reply's thread line started beside the quote at its middle: a
hook stuck out of the quote's leading side and crossed the quote's tail.
Messages drops the line from under the quoted bubble (its tail, or a
group's avatar column) and turns it toward a reply on the other side,
ending in a short level run short of it; a same-side reply gets a straight
line that stops above it. The geometry lives in ConversationReplyThread
(CmuxConversationGeometry) with tests. The row keeps room for the quote's
tail. Same commits as #24202 on feat-cmux-next; the
package stays byte-identical on both branches.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@cursor

cursor Bot commented Oct 22, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

Bugbot uses usage-based billing for this team and requires on-demand usage to be enabled.

A team admin can enable on-demand usage in the Cursor dashboard.

@coderabbitai

coderabbitai Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: Repository: manaflow-ai/cmux/.coderabbit.yaml
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 74644da4-b8bd-403a-8729-f974e806ed93

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

❤️ Share

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

@blacksmith-sh

blacksmith-sh Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Found 1 test failure on Blacksmith runners:

Failure

Test View Logs
test_macos_ios_package_closure_matches_current_desktop_graph/
test_macos_ios_package_closure_matches_current_desktop_graph
View Logs

Fix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

@github-actions

github-actions Bot commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

cmux status (one comment, edited in place; each line is updated by the job that owns it)

Probably yours: Fast static checks failed: a static check failed, FAILED feature-flags (1.12s).

CI failed on 9d4ba666ad (run 39729413782 attempt 1): 1 code, 3 unknown.
macOS jobs did not run: compile and app tests were skipped: Fast static checks failure.

Job Verdict Why
Fast static checks code a static check failed
guards / workflow-guard-tests / quality-determinism unknown no known signature; failed step: Validate test determinism gate
guards / workflow-guard-tests / ci unknown no known signature; failed step: Propagate failed independent fast guard
tests unknown no known signature; failed step: Check platform workflow routing
Matched log lines
Fast static checks: FAILED feature-flags (1.12s)

Not re-run automatically: Fast static checks, guards / workflow-guard-tests / quality-determinism, guards / workflow-guard-tests / ci, tests are not machine failures.

Written by scripts/ci/classify_failures.py (ci-failure-attribution.yml); signatures are its SIGNATURES table. A machine verdict is the runner's fault, not this PR's; yours means the failing file is one this PR changes, also red on main that main's latest full suite fails the same way, seen on other PRs that it failed on another pull request's run lately.

CI fast guards failed on 9d4ba666ad (https://github.com/manaflow-ai/cmux/actions/runs/39729413782). It does not block the merge; a red guard merged into main breaks it for every open PR.
The log named no failed step; see the run.

Agents: python3 scripts/ci/guard_attribution.py fix applies the mechanical fixes locally.

…ame-side reply keeps room for its line

The line ends in a short level run toward a reply on the other side. A
reply on the quote's own side keeps room for a visible straight line, and
the line meets the reply's first piece of content (a photo or file above
the caption). Same commits as #24202.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@cursor

cursor Bot commented Oct 22, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

Bugbot uses usage-based billing for this team and requires on-demand usage to be enabled.

A team admin can enable on-demand usage in the Cursor dashboard.

@azooz2003-bit

Copy link
Copy Markdown
Collaborator Author

Review: the same correctness-first subagent review as #24202 (findings and fixes posted there: #24202 (comment)). This branch's package is byte-identical to #24202's head 3145bc8.

CI: the reds are base findings, not from this change (it only touches Packages/iOS/CmuxConversation). Fast static checks fails lint-feature-flags on two expired reviewBy dates in Sources/FeatureFlags.swift (agent-inbox-quick-view, conversation-sidebar), and the guards, ci-status, linux-preflight and tests follow it. The package's own tests passed on a fleet mini: swift test CmuxConversationGeometryTests 255/255.

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