Repository navigation
[DONE] 지워졌거나 비공개인 패턴, 덱, 프로필 링크가 커뮤니티 안에서 까닭을 말한다 - #284
Merged
Merged
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0144197Fr8EzfnY6hHMpFpaU
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0144197Fr8EzfnY6hHMpFpaU
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0144197Fr8EzfnY6hHMpFpaU
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0144197Fr8EzfnY6hHMpFpaU
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0144197Fr8EzfnY6hHMpFpaU
patternflow-bot
marked this pull request as ready for review
October 26, 2026 15:39
This was referenced Oct 26, 2026
engmung
pushed a commit
to engmung/Patternflow
that referenced
this pull request
Oct 27, 2026
engmung
pushed a commit
to engmung/Patternflow
that referenced
this pull request
Oct 27, 2026
Patternflow-lab#268 Patternflow-lab#271 Patternflow-lab#275 Patternflow-lab#276 Patternflow-lab#277 Patternflow-lab#279 Patternflow-lab#280 Patternflow-lab#281 Patternflow-lab#283 Patternflow-lab#284 Patternflow-lab#285 Patternflow-lab#286 Patternflow-lab#287 Patternflow-lab#288 Patternflow-lab#289 Patternflow-lab#290 Patternflow-lab#291 Patternflow-lab#292 Patternflow-lab#293 Patternflow-lab#294 Patternflow-lab#295 Patternflow-lab#296 Patternflow-lab#297 Patternflow-lab#298 Patternflow-lab#299 Patternflow-lab#300 Patternflow-lab#301 Patternflow-lab#302 Patternflow-lab#303
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
lsh / https://claude.ai/code/session_0144197Fr8EzfnY6hHMpFpaU
커뮤니티에 404 쪽을 따로 두고, 패턴 · 덱 · 프로필 쪽의 메타데이터도 없는 줄에서 404 를 내게 했어요. 머지하면 지워졌거나 남이 비공개로 돌린 패턴 · 덱, 없는 프로필 주소가 크림색 「404」 와 첫 화면 링크 대신 커뮤니티 머리와 탭 바 안에서 까닭을 말하고 「Browse patterns →」 로 벽에 돌아가요. 없는 줄의 탭 제목도 「Not found / Patternflow Community」 가 돼요.
좋아지는 것: 지워진 패턴 링크가 커뮤니티 안에서 까닭을 말한다 — 첫 화면으로 튕기지 않고 벽으로 돌아간다
app/community/not-found.tsxgenerateMetadata가 없는 줄에서notFound()not-found.test.tsx시험 일곱 (dev 에서 셋 빨갛고 파일이 없으면 통째로 빨강, 고친 뒤 일곱 다 초록)927995e그대로라 가져올 것 없음)9e0fd85) · 겹치는 [DONE] PR 없음한 일
web/src/app/community/not-found.tsx를 새로 뒀어요. 커뮤니티의 빈 상태 판(emptyPanel)을 그대로 써서 「404 · not here」, h1 「Nothing at this address.」, 「Whatever was here has been deleted, or its owner made it private. A mistyped link lands here too.」,/community/patterns로 가는 「Browse patterns →」 하나를 그려요. 커뮤니티 레이아웃 안에서 그려져서 머리, 메뉴, 탭 바, 바닥 줄이 남아요.metadata로 탭 제목을 「Not found / Patternflow Community」 로 둬요.app/community/p/[id]/page.tsx,d/[id]/page.tsx,u/[username]/page.tsx의generateMetadata가 줄이 없으면{}대신notFound()를 불러요. 쪽 본문만 404 를 내면 브라우저 탭은 레이아웃의 「Community / Patternflow」 를 그대로 읽어요(아래 「가정」 첫 줄). 비공개 줄은 지금처럼{}예요.web/src/app/community/not-found.test.tsx는 렌더 시험 둘과 메타데이터 시험 다섯이에요. 렌더 시험은 h1 글, 링크가/community/patterns하나뿐인지, 탭 제목을 봐요. 메타데이터 시험은 빈 스크래치 DB 에 ada 와 비공개 패턴 · 덱을 넣고 세 쪽의 진짜generateMetadata를 돌려요. 없는 패턴 · 덱 · 프로필은 404 로 던지고, 비공개 패턴 · 덱은{}, 있는 프로필은 「@ada / Patternflow Community」 예요.증거
Pi 와 같은
NEXT_PUBLIC_COMMUNITY_URL,NEXT_PUBLIC_BUILD_ENABLED로 빌드하고, 스크래치 DB 에 ada 와 eve, ada 의 비공개 패턴 「Night bus window」 와 비공개 덱 「Late set」, 공개로 올렸다 지운 「Grid」 를 HTTP 로 넣었어요. playwright-core 1.56.1 로 손님이 연 뒤의document.title과 h1 이에요. 390(isMobile,hasTouch)과 1440 이 같았고, 가로 넘침은 다 390/390, 1440/1440 이에요. 고치기 전은 같은 DB 에 dev 를 다시 빌드해서 쟀어요.dev 는 「RETURN TO MAIN」(
/)만 보였고, 이 PR 은 커뮤니티 머리, 탭 바, 바닥 줄과 「Browse patterns →」(/community/patterns)를 보여요. 주인 쪽은 그대로예요.curl 로 받은 네 주소(없는 패턴, 프로필, 덱, 운영자가 아닌 eve 의
/community/reports)는 다 404 에<title>Not found / Patternflow Community</title>였고, RSC 데이터에"href":"/community/patterns","className":"…emptyCta"가 있었어요. HTML 본문은 비어 있어요. Next 16 은 쪽이 껍데기 안에서notFound()를 던지면<html id="__next_error__">껍데기를 보내고 브라우저가 RSC 데이터로 그려서예요. dev 의 뿌리 404 도 같은 길이에요.새 시험을 dev 의 세 쪽으로 돌렸을 때:
not-found.tsx까지 없는 dev 에선Failed to resolve import "./not-found"로 파일째 빨개요. 고친 뒤:다섯 검사(
web/에서,9e0fd85):실행법
가입은
/api/auth/sign-up/email, 패턴과 덱은/api/community/patterns,/api/community/decks에visibility: "private"로, 지우기는DELETE /api/community/patterns/<id>로 했어요. playwright-core 는 스크래치 폴더에 깔았고package.json은 그대로예요.가정
not-found.tsx하나였어요. 그 파일만 두고 빌드하니 curl 이 받은 HTML 머리는 「Not found / Patternflow Community」 였는데 브라우저 탭은 다섯 주소 모두 「Community / Patternflow」 였어요. 브라우저가 그리는 RSC 데이터의 머리는 쪽의generateMetadata가 정하고, 그 함수가 없는 줄에{}를 돌려줘서예요. 까닭 칸이 탭 제목을 꼽아서 세 쪽의generateMetadata한 줄씩을 이 바퀴에 넣었어요./community/reports,/community/featured도 이 판을 그려요. 대기열이 있다는 말은 이 판에 없어요./community/reports를 열면 판은 이 404 인데 탭은 「Reports / Patternflow Community」,/community/featured는 「Marquee / Patternflow Community」 예요. 두 쪽의 고정metadata때문이에요.reports/page.tsx:29~:30주석은 대기열이 있다는 걸 손님에게 알리지 않으려고 404 를 낸다고 해요./community/nothing-here처럼 커뮤니티 안의 모르는 주소는 맞는 길이 없어서 여전히 뿌리 404(탭 「Patternflow — An LED synthesizer」, 「404」)예요.not-found.tsx는notFound()를 부른 쪽만 받아요.Changelog
Web
경험
언제: Next 16 에서 동적 쪽이
notFound()를 부를 때 탭 제목을 잴 때교훈: curl 로 받은 HTML 머리의
<title>은 오류 껍데기 몫이라 브라우저 탭과 다를 수 있으니, 탭 제목은 Playwright 로 연 뒤document.title로 재요근거: #284 에서
not-found.tsx의metadata만 두니 curl 은 「Not found / Patternflow Community」, 브라우저 탭은 「Community / Patternflow」 였고, 쪽의generateMetadata가notFound()를 부르자 탭도 바뀌었어요바퀴
바퀴 113 · 후보 8 「지워졌거나 비공개인 패턴, 덱, 프로필 링크가 커뮤니티 안에서 까닭을 말한다」
다음 바퀴
/pattern-labLink 가 Lab 덩이 여덟을 미리 받아요.{patterns:[null]}이 CORS 없는 500,?file=__proto__가 빈 200 이에요.https://claude.ai/code/session_0144197Fr8EzfnY6hHMpFpaU
Generated by Claude Code