방금 떠난 토픽의 게시글이 앱 내 탐색 후 다음 토픽에서 계속 표시됨

모든 주제에서 중첩 답변을 활성화했습니다(호라이즌 테마). 이제 재현할 수 있는 상태 버그를 발견했는데, 모바일과 데스크톱 모두에서 발생합니다.

주제를 열고 내용을 읽은 후, 추천/관련 주제 블록을 통해 다른 주제로 이동하면(즉, 클라이언트 사이드 네비게이션, 리로드 없음), 방금 떠난 주제의 답변이 화면에 남아 있는 경우가 있습니다. 새 주제의 첫 번째 분기 아래에 중첩으로 렌더링되는 것이죠. 심지어 새 주제에서 삭제된 게시물 아래에도 연결됩니다. 더 많은 주제로 계속 이동해도 사라지지 않으며, 전체 페이지 리로드를 해야만 제거됩니다.

중요한 세부 사항: 이 문제는 간헐적으로 발생합니다. 관련 블록을 통해 첫 번째 이동은 보통 문제없고, 여러 번 클릭해도 문제가 없습니다. 관련 주제 블록을 통해 두 번 이상 연속으로 이동한 후에만 나타나는 것 같습니다.

재현 방법:

  1. 중첩 답변이 있는 주제를 엽니다.
  2. 추천/관련 블록을 통해 다른 주제로 이동합니다(리로드 없음). 이 과정을 몇 번 연속으로 반복합니다.
  3. 블록을 통해 두 번 이상 연속으로 이동한 후, 이전 주제의 답변이 현재 주제의 첫 번째 분기 아래에 중첩되어 나타납니다. 때로는 해당 주제에서 삭제된 게시물 아래에도 나타납니다.
  4. 하드 리로드를 할 때까지 추가적인 앱 내 네비게이션에서도 계속 유지됩니다.

콘솔에 JS 오류가 없으므로 네트워크 탭으로 들어가 확인해 보니, 이전 주제가 단순히 해제되지 않는 것 같습니다:

  • 검사 중인 페이지는 주제 724입니다(/n/vibriruet-pri-troganii…/724?sort=old).
  • 724에 있는 동안, 이전 주제의 데이터 요청이 여전히 로그에 남아 있습니다: 509.json?sort=old&track_visit=true.
  • 라이브 메시지 버스 폴링의 Referer는 여전히 …/n/pinki-tolchki-…-na-nissane-kube/509입니다. 즉, 주제 509의 메시지 버스 구독이 724로 다시 지정되지 않았습니다.

따라서 클라이언트 사이드 네비게이션 시 중첩 라우트가 사용자가 온 주제의 게시물 스트림/메시지 버스 구독을 리셋하지 않는 것 같습니다. 처음에는 모바일에서 발견했지만, 데스크톱에서도 동일한 동작을 보입니다.

Discourse 버전: 2026.6.0-latest (27f76aa897)
도움이 된다면 스크린 녹화 파일을 첨부하거나 더 깊이 파볼 수 있습니다.

3개의 좋아요

@Andry_Osminin 이건 Horizon 테마에서만 발생하는 건가요, 아니면 Foundation에서도 같은가요?

아직 재현 방법을 제대로 찾지 못했지만, 시각화 관련해서 @markvanlan 님에게 알림을 보냅니다.

2개의 좋아요

이 문제는 Horizon에서만 재현됩니다. Foundation에서는 토픽 간에 답변 분기가 이어지는 현상을 확인하지 못했습니다.

단순히 Foundation에서 해당 기능이 없는 것은 아닌 것 같습니다. 오히려 Foundation의 내비게이션 작동 방식과 관련이 있어 보입니다. 제가 관찰한 차이는 다음과 같습니다:

  • Horizon: 관련 토픽을 클릭하거나 목록에서 어떤 토픽이든 열면 로딩 표시 없이 토픽이 즉시 표시됩니다. 이 즉시 내비게이션이 바로 다음에, 연속으로 2회 이상 클릭한 후 분기 이어짐 현상이 나타나는 시점입니다.
  • Foundation: 처음에는 Horizon과 동일하게 토픽이 즉시 표시됩니다. 그러나 약 200~400ms 후에 점점이 움직이는 로딩 화면이 나타나고 토픽이 다시 로드됩니다. 즉, 빠른 열림 직후 자동으로 두 번째 로딩이 발생합니다.

즉, 이 버그는 이전 토픽의 상태가 초기화되지 않는 “즉시” 내비게이션 때문에 특히 발생하는 것으로 보입니다. Foundation에서는 그 후속 로딩이 상태를 초기화하여 문제를 가려주는 것입니다. 다시 말해, Horizon에서는 즉시 중첩 토픽 내비게이션이 이전 토픽의 게시물 스트림/메시지 버스 구독을 초기화하지 않는 반면, Foundation은 그 두 번째 로딩을 통해 이를 수행합니다.

별개로, Horizon에서 테스트 중 중첩 뷰에서 가끔 아주 작은 레이아웃 시프트가 발생합니다. 토픽을 열고 아래로 스크롤을 시작하면 화면이 답변 부분에 도달할 때 빠른 미세한 시프트가 생길 수 있습니다. 매번 발생하는 것은 아니지만 꽤 자주 발생합니다. 관련이 있을 수도 있고, 별개의 사소한 문제일 수도 있으니 혹시 모르니 보고합니다.

2개의 좋아요

우연히 발견한 별개의 사소한 문제 하나를 공유합니다. 이게 중첩 모드(nested mode)나 Horizon 테마에 특화된 것인지 확실하지 않지만, 플랫 모드(flat mode)에서는 발생하지 않았습니다. 특정 경계 조건에서 토픽 통계 행이 잘못 배치됩니다. 토픽의 사용자가 “사용자” 수를 표시하기에 너무 적고, 읽기 시간도 표시되지 않으면, 조회 수 카운터가 단일 줄로 떨어지고, 숫자가 포함된 정상적인 스타일의 통계 블록 대신 다른 색상으로 렌더링됩니다. 스크린샷 1 - 정상 상태. 스크린샷 2 - 경계 조건. 버그를 따로 관리하는 편이 좋으시다면 이 내용을 별도의 토픽으로 나누어 드릴 수도 있습니다.

1개의 좋아요

호라이즌 관련 문제 해결책을 찾은 것 같습니다. 모바일에서 중첩된 토픽 뷰에 상당한 영향을 미치는 예정된 PR에 포함할 예정입니다. 오늘 안에 배포할 수 있도록 하겠습니다.

3개의 좋아요

이렇게 빠르게 대응해 주셔서 감사합니다! #40548(“fix nested post registration teardown”)에서 수정 사항을 찾았고, PR이 아직 초안 상태이므로 서두를 필요는 전혀 없습니다.

혹시 대략적인 반영 시기가 정해졌는지 확인하고 싶었습니다. 준비가 되면 제 인스턴스에서 테스트해 볼 수 있으니, 도움이 되실 거라면 말씀해 주세요.

1개의 좋아요

안드레이, 안녕하세요.

제가 진행 중인 모바일 UX 리팩토링에 해당 수정 사항을 포함시켰습니다. 의도치 않은 문제가 발생하지 않는지 최종 QA를 진행 중입니다. 오늘 또는 내일까지 머지되길 희망합니다.

1개의 좋아요

PR을 병합했습니다 :+1: 업데이트 후 상태가 좋은지 알려주세요. views 라벨의 이상한 서식은 잊지 않았습니다. 곧 처리하겠습니다.

2개의 좋아요

#40652를 반영해 주셔서 감사합니다. 현재 #40652가 트리에 포함된 2f2676180 버전으로, ./launcher rebuild app을 전체로 실행하고 인코그니토 모드로 확인해 보았으니 캐시 문제는 아닙니다. 그런데도 이어서 오는(carry-over) 현상은 여전히 발생하고 있습니다.

제 환경에서 재현되는 방법(정렬을 '가장 오래된 순’으로 설정): 토픽을 새로고침 없이 이동할 경우, 첫 번째 브랜치와 그 아래 있는 2개의 답글이 항상 다음 토픽으로 이어져 그곳의 첫 번째 브랜치 아래에 표시됩니다. 페이지를 완전히 새로고침하면 해결됩니다.

별개의 아이디어(버그가 아님): 누군가 자신의 게시물에 답글을 달 때, 추가적인 중첩 레벨을 만들지 않고 같은 레벨 아래에 배치하면 어떨까요? 일부 앱에서는 이렇게 처리하여 스레드가 너무 깊어지는 것을 방지합니다. 그저 제 생각입니다.

다시 시도해 봤습니다: FIX: prevent nested reply children leaking between topics on Horizon - Pull Request #40687 - discourse/discourse - GitHub

동작하는지 알려주세요. 보고해 주셔서 감사합니다!

3개의 좋아요

업데이트하고 테스트해 봤는데 완벽하게 작동하고, 더 이상 토픽 간 누수가 발생하지 않아요 :tada: . 정말 감사합니다! 이제 포럼 전체에 중첩 답변 기능을 배포할 수 있습니다.

2개의 좋아요

이 문제는 이 커밋에서 처리되었습니다: FIX: Avoid single stat layout for nested topic maps (#40744) · discourse/discourse@fc64d05 · GitHub

리포트해 주셔서 다시 한번 감사드립니다!

3개의 좋아요

최신 수정 사항을 적용해 봤는데 아주 잘 작동합니다. 정말 감사합니다!

2개의 좋아요