Skip to content

fix: review conversation reply UI + always-centered layout#150

Merged
tomasz-tomczyk merged 1 commit intomainfrom
feat/review-conversation-fixes
Apr 30, 2026
Merged

fix: review conversation reply UI + always-centered layout#150
tomasz-tomczyk merged 1 commit intomainfrom
feat/review-conversation-fixes

Conversation

@tomasz-tomczyk
Copy link
Copy Markdown
Owner

Summary

  • Adds the missing reply input + reply list to review-level comment cards on crit-web. Line-anchored cards already had it; review-level didn't, even though the LiveView `add_reply` handler is generic.
  • crit-web is always doc-centered (no git side-by-side mode), so the Review conversation block always uses `data-doc-layout="centered"` instead of branching on `ctx.multiFile`.
  • Adds a LiveView test (`add_reply works on review-scope comments`) so this parity gap can't regress silently.

Why we missed it

The share integration tests in crit/ pass replies through the API directly (`POST /api/reviews/{token}/seed-reply`) — they verify the round-trip data path, not the UI affordance. The reply API worked; the button to trigger it from the web UI didn't exist.

Crit-side follow-up: a `TestShareSyncFetchRepliesOnReviewLevelComment` that exercises the full review→reply→fetch loop will land in a separate crit/ PR.

Review

  • Manual smoke: reply on a review-level comment from web UI, see it broadcast back via PubSub.
  • LiveView test: 516 tests pass (was 515).

Test plan

  • `DB_PORT=5433 mix precommit` — green
  • Open a shared review → review conversation → "Write a reply..." appears → expand, type, submit, see the reply land

Refs:

🤖 Generated with Claude Code

Two parity gaps from #147 (closes crit/#374):

1. Review-level comment cards on crit-web didn't expose a reply input,
   only line-anchored cards did. Round-trip tests passed because they
   exercised the API directly. Adds renderReplyList + createReplyInput
   to the inline review-conversation card, matching the line-anchored
   render path.

2. crit-web has no git-mode equivalent — every review is doc-style.
   Drop the multi-file branch in renderReviewConversation and always
   set data-doc-layout="centered" so the Review conversation block
   centers consistently with the rest of the document.

Adds a LiveView test that exercises the add_reply event end-to-end
on a review-scope comment to lock the parity.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 30, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 77.37%. Comparing base (570475a) to head (5e32de2).
⚠️ Report is 2 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #150   +/-   ##
=======================================
  Coverage   77.37%   77.37%           
=======================================
  Files          55       55           
  Lines        1653     1653           
=======================================
  Hits         1279     1279           
  Misses        374      374           
Flag Coverage Δ
unit 77.37% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@tomasz-tomczyk tomasz-tomczyk merged commit bc1813f into main Apr 30, 2026
4 checks passed
@tomasz-tomczyk tomasz-tomczyk deleted the feat/review-conversation-fixes branch April 30, 2026 21:09
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