부모 포스트(들)에 연결하는 몇 가지 다른 방식이 있으며, 이 연관관계는 PostReply 테이블을 통해 저장됩니다. 여기서 reply_post_id는 답변을 하는 포스트를 나타내고, post_id는 부모 포스트를 참조합니다. 수신된 이메일은 In-Reply-To 헤더를 사용하여 이러한 연결을 수행하며, Discourse UI에서 여러 포스트를 인용하면 여러 개의 PostReply 레코드가 생성됩니다. 단일 포스트의 “답변” 버튼을 사용하면 해당 포스트에 대한 PostReply 레코드가 생성됩니다.
네, 죄송합니다. 그 점을 언급했어야 했는데, add_identification_field_headers는 더 이상 사용되지 않으며, 새로운 코드는 모두 add_experimental_identification_field_headers에 있습니다. 코드 자체에 주석을 달아주셔서 감사합니다. 예상하지 못했습니다! 오늘 그 내용을 확인해 보겠습니다.
@cameron-simpson 죄송합니다. 해당 PR에서 이전 커밋을 검토하셨을 것 같습니다. 이제 코드를 리베이스하여 다시 푸시했습니다. 테스트 사이트에서 테스트해 온 최신 코드가 모두 포함된 단일 커밋으로 변경했습니다. 해당 커밋 메시지가 도움이 되고 논리적일 것으로 기대합니다.
References의 경우, 사용자가 게시물에 답글을 작성하면 OP(원본 게시물)부터 부모 게시물까지의 Message-ID 전체 체인을 순서대로 사용합니다. 예를 들어, 다음 게시물들이 모두 직접적인 답글 체인이라면:
위 게시물에 직접 답글이 아닌 새로운 게시물이 생성되는 경우, 예를 들어 Post 6 – discourse/post/505@test.site라면, 그 In-Reply-To Message-ID는 <discourse/post/500@test.site>(OP)가 되고, References도 OP인 <discourse/post/500@test.site>가 됩니다.
Martin Brennan, Discourse Meta, 2022년 8월 23일 23:59:
@cameron-simpson 죄송합니다. 해당 PR에서 이전 커밋을 검토하신 것 같습니다. 이제 코드를 리베이스하여 다시 푸시했습니다. 이제 테스트 사이트에서 테스트해 온 최신 코드가 모두 포함된 단일 커밋으로 되어 있습니다. 해당 커밋 메시지가 유용하고 논리적이라는 것을 바랍니다.
한 번 더 확인해 보겠습니다. 감사합니다.
References의 경우, 사용자가 게시물에 답글을 작성하면 OP(최초 게시물)부터 부모 게시물까지의 Message-ID 전체 체인을 순서대로 사용합니다. 예를 들어, 이 모든 게시물이 직접적인 답글 체인이라면:
게시물 1 – discourse/post/500@test.site
게시물 2 – discourse/post/501@test.site
게시물 3 – discourse/post/502@test.site
게시물 4 – discourse/post/503@test.site
게시물 5 – discourse/post/504@test.site
올바르게 보입니다.
그렇다면 마지막 게시물의 In-Reply-To 헤더는 다음과 같습니다:
In-Reply-To: <discourse/post/503@test.site>
그리고 References는 다음과 같습니다.
위 게시물에 직접 답글을 작성하지 않고 새 게시물이 생성되는 경우, 예를 들어 게시물 6 – discourse/post/505@test.site라면, 그 In-Reply-To Message-ID는 <discourse/post/500@test.site>(OP)가 되고, References도 OP인 <discourse/post/500@test.site>가 됩니다.
@cameron-simpson 다음 주에 이 코드에 대한 내부 검토 프로세스를 시작하고 싶습니다(지금까지 작성한 부분의 전반적인 마무리 작업도 포함해서요). 3일에 휴가를 가거든요. 그렇게 하면 검토가 완료되면 복귀 후 바로 병합하고 배포할 수 있습니다. 추가 피드백이 있으시면 그때까지 알려주세요. 그렇지 않으면 모든 것이 문제없다고 가정하겠습니다(어제 테스트 중에 그렇게 보였으니까요 ).
이것이 필수라고 생각하지 못했습니다. 웹을 통해 N개의 게시물에 답글을 보낼 경우, 해당 모든 게시물의 Message-ID가 In-Reply-To 헤더에 표시되어야 하며, References는 현재 논스레드 로직을 따릅니다. 즉, OP(최초 게시물)에서 단일 부모 게시물까지 이어지는 구조입니다(우리의 경우 가장 최근에 생성된 게시물을 단일 부모로 선택했습니다)?
네, 이는 사용자가 이미 "확인"한 내용을 다시 보내지 않기 위한 의도된 동작입니다. 더 많은 사용자들이 이 기능을 원할지 확인하기 위해 별도의 TODO 항목으로 분리해 볼 수 있습니다.
topic ID의 문제는 너무 취약하고 특정/고유성이 부족하다는 점이며, 게시물이 주제 사이로 이동할 때 다소 혼란스러워 보일 수 있습니다. 이메일에 X-Discourse-Topic-ID 또는 유사한 사용자 정의 헤더를 포함하여(허용된다면) 시각적 추적을 쉽게 할 수 있을까요?
여기서 [0]만 제거하면 됩니다. 그러면 클라이언트는 하나의 message-id만 사용하거나, 원하는 대로 매우 기발한 일을 할 수 있으며, 모두 유효할 것입니다.
'Should(해야 한다)'는 강한 표현입니다. 쉽게 구할 수 있다면 모든 message-id를 포함할 수 있습니다. 의무는 아니며, 현재 코드는 유효합니다.
네. 저도 제 게시물이 목록/포럼에 잘 도달했는지 알 수 있어서 이 기능이 좋습니다. 이메일은 매우 큐 기반이며, 일부(하아, 대형 호주 통신사, 하아) ISP 메일 처리기가 매우… 불안정하고 느리거나 하는 등의 문제가 있기 때문입니다. 가끔 다른 사람들이 이 기능을 원하는 것을 본 적도 있습니다(목록에서, 하지만 여기서는 사실상 그 모드를 이야기하고 있는 것이죠). 이러한 옵션의 기본값은 false여야 할 것입니다.
너드(기술 마니아)로서, 나는 최소한 필터링되지 않은 피드를 받아서 나만의 정책 결정을 내릴 수 있는 것을 좋아합니다.
Message-ID가 사실상 불투명하고 한 번만 설정된다는 점을 고려할 때, 같은 message-id를 _재발급_할 여지가 없는 한 이를 문제로 보지 않습니다. 모든 카운터가 엄격히 단조 증가한다면 그런 일이 일어나지 않을 것으로 예상합니다. 저는 post.id(예: 98)를 토픽/게시물(예: 59/1)과 매칭하는 것이 매우 번거롭게 느껴졌습니다. 98 대신 category.id/topic.id/post-in-topic.id와 같은 것이 있으면 편리했을 것입니다.
Martin Brennan님이 Discourse Meta를 통해 2022년 9월 20일 00:17에:
Hi Cameron, I’ve been at our company meetup then on vacation for the
last 2 weeks, just getting back into the swing of things today. If it’s
not merged this week then it will definitely be merged next week.
Apologies for the delays!
사과하실 필요 없습니다. 부재중이셨다는 점은 알고 있었고, 정확한 시기나 귀환 일정이 어떻게 될지 확신이 없었습니다. 그리고 현재 계신 곳에서는 아직 월요일일 수도 있겠네요