diff --git a/README.md b/README.md
index 548bc09..c5060be 100644
--- a/README.md
+++ b/README.md
@@ -41,6 +41,10 @@ Supabase가 연결된 환경에서는 로그인한 active member만 문서를
Owner/editor members can upload `png`, `jpeg`, `webp`, and `gif` images from the document editor. Uploaded files are stored in the private `devwiki-assets` Supabase Storage bucket and inserted into the document as Markdown image syntax.
+## Release notes
+
+- [v0.5.0](docs/releases/v0.5.0.md): threaded discussions, learning-route cleanup, search and navigation polish
+
## Member management
Users can sign up from `/signup`. Signup creates a confirmed Supabase Auth user on the server and an inactive `members` row with an automatically generated nickname, so no signup confirmation email is sent. Owner members can open `/admin/members`, choose a role for pending users, and activate them. Members can update their nickname and password from `/me`. The first owner account still has to be created in Supabase once before the in-app admin screen can be used.
diff --git a/docs/releases/v0.5.0.md b/docs/releases/v0.5.0.md
new file mode 100644
index 0000000..8638a86
--- /dev/null
+++ b/docs/releases/v0.5.0.md
@@ -0,0 +1,40 @@
+# DevWiki v0.5.0 Release Notes
+
+Release date: 2026-06-02
+
+## Highlights
+
+- 문서 토론을 해결 체크리스트가 아니라 일반 대화 공간으로 정리했습니다.
+- 댓글에 1단계 대댓글을 추가해 문서별 논의를 맥락별로 이어갈 수 있습니다.
+- 추천 학습 루트와 숙지 완료 상태를 제거하고, 개인 문서 상태는 즐겨찾기 중심으로 단순화했습니다.
+- 검색 결과와 탐색 화면의 필터 흐름, 태그 검색 링크, 즐겨찾기 카운트를 정리했습니다.
+
+## User-Facing Changes
+
+- 문서 상세의 토론 영역이 본문 아래로 이동해 긴 대화를 더 넓게 읽을 수 있습니다.
+- 토론 카운트는 댓글과 답글을 함께 반영합니다.
+- 태그를 누르면 홈이 아니라 통합 검색 화면으로 이동합니다.
+- 검색 첫 화면에서 추천 검색어를 바로 실행할 수 있습니다.
+- 홈의 즐겨찾기 요약은 미리보기 개수가 아니라 전체 즐겨찾기 수를 보여줍니다.
+
+## Database Changes
+
+Apply the new migrations in filename order:
+
+1. `20260602104500_remove_comment_resolution.sql`
+2. `20260602110000_add_comment_replies.sql`
+3. `20260602134005_remove_completed_document_state.sql`
+
+These migrations remove comment resolution fields, add first-level comment replies, and drop the completed-document member state.
+
+## Verification
+
+Recommended release checks:
+
+```bash
+npm run lint
+npm run test
+npm run build
+```
+
+Run `npm run verify:mvp` when Supabase service-role and E2E credentials are available.
diff --git a/src/app/(protected)/page.tsx b/src/app/(protected)/page.tsx
index a307e23..4f55e70 100644
--- a/src/app/(protected)/page.tsx
+++ b/src/app/(protected)/page.tsx
@@ -138,9 +138,11 @@ export default async function Home() {
canReadPrivate,
viewerId: user?.id,
});
- const favoriteDocuments = allDocuments
- .filter((document) => document.isFavorite)
- .slice(0, 4);
+ const allFavoriteDocuments = allDocuments.filter(
+ (document) => document.isFavorite,
+ );
+ const favoriteDocuments = allFavoriteDocuments.slice(0, 4);
+ const favoriteDocumentCount = allFavoriteDocuments.length;
const recentDocuments = allDocuments.slice(0, 6);
const counts = getDocumentCounts(allDocuments);
const documentsByContentType = getDocumentsByContentType(allDocuments);
@@ -199,7 +201,7 @@ export default async function Home() {
저장한 문서
- {favoriteDocuments.length}
+ {favoriteDocumentCount}
diff --git a/src/components/document-collection-client.tsx b/src/components/document-collection-client.tsx
index 60e4106..bbb5b15 100644
--- a/src/components/document-collection-client.tsx
+++ b/src/components/document-collection-client.tsx
@@ -3,7 +3,7 @@
import { keepPreviousData, useQuery } from "@tanstack/react-query";
import { Plus } from "lucide-react";
import Link from "next/link";
-import { useSearchParams } from "next/navigation";
+import { useRouter, useSearchParams } from "next/navigation";
import { useMemo } from "react";
import { DocumentDiscoveryBoard } from "@/components/document-discovery-board";
@@ -86,6 +86,7 @@ export function DocumentCollectionClient({
initialFilters: DocumentQueryFilters;
routePath: string;
}) {
+ const router = useRouter();
const searchParams = useSearchParams();
const currentFilters = readDocumentQueryFilters(searchParams, contentType);
const initialData = isInitialFilters(currentFilters, initialFilters)
@@ -119,6 +120,7 @@ export function DocumentCollectionClient({
currentFilters.interviewCategory,
);
const showSkeleton = documentsQuery.isPending && !documents.length;
+ const navigate = (href: string) => router.push(href, { scroll: false });
return (