Re-reviewed with strict QA focus. Previous comments UX/HTMX regressions appear resolved:\n- Stable reply OOB target now uses #replies-for-.\n- Reply partial rendering/context path is consistent.\n- Reply form values are preserved on HTMX validation errors.\n- Comment empty-state handling and Turnstile re-init client script are wired into the page.\n\nVerification run (Docker):\n- pytest -o addopts='' apps/comments/tests apps/blog/tests/test_views.py -q\n- python manage.py check\n\nNo blocking issues found in this PR.
Re-reviewed after latest fixes. Previous blockers are resolved:\n- Approved reply OOB render now passes correct 'reply' context to _reply.html.\n- OOB selector now targets the sibling .replies-container correctly.\nAlso verified with tests:\n- apps/comments/tests/test_v2.py::test_htmx_reply_returns_oob_reply_when_approved\n- apps/comments/tests + apps/blog/tests/test_views.py\n- python manage.py check\n\nNo further blocking issues found.
Blocking issues found:\n1) apps/comments/views.py:151 renders comments/_reply.html with context key 'comment', but templates/comments/_reply.html now expects 'reply'. Result: approved replies rendered via OOB are empty (id/author/body missing).\n2) apps/comments/views.py:153 targets '#comment-{parent_id} .replies-container' for OOB insertion, but templates/comments/_comment.html moved .replies-container outside the #comment-{id} article. Selector no longer matches, so approved replies are not appended inline.\n\nPlease fix both the context mismatch and OOB target mismatch, and add a test covering an immediately-approved reply render path.