Skip to content

promote: data를 main으로 올린다 - #3040

Merged
twoimo merged 13 commits into
mainfrom
data
Sep 24, 2026
Merged

twoimo merged 13 commits into
mainfrom
data

Conversation

@twoimo

@twoimo twoimo commented Sep 24, 2026

Copy link
Copy Markdown
Owner

Summary

  • data promote: develop를 data로 올린다 #3038 5943eb3455dc3269bb306965d77fb0a2e607a0cf 를 main으로 올립니다.
  • 홈 첫 화면 정적 스켈레톤, 스타일 정리, 관리자 배너 조회, 로컬 포트 3000이 포함됩니다.
  • 롤백 기준은 현재 프로덕션 febbc76fd78ff4cbe9fe3aa29df16e8199088953 입니다.

Test plan

  • develop → data 승격 완료
  • Release와 Promotion Path 통과 후 main 머지
  • 승인 SHA를 맞춘 뒤 www.tzudong.app /api/health가 main 커밋과 같은지 확인

Made with Cursor

twoimo and others added 13 commits September 24, 2026 17:13
홈은 뷰포트가 정해지기 전에 같은 크기의 스켈레톤을 그리고, 테두리·글자 스케일·관리자 배너 조회와 로컬 3000 포트를 맞춘다.

Co-authored-by: Cursor <cursoragent@cursor.com>
fix: 첫 화면 정적 스켈레톤과 스타일·관리자 지표
develop가 data보다 뒤처져 다음 승격이 막혀 있어, 이미 data에 있는 머지 커밋만 포함한다.
…-20260924

sync: data 승격 머지를 develop에 포함한다
접힌 패널이 지도를 가리지 않게 하고, 서비스 롤 설정 실패도 banner_read_failed로 막는다.

Co-authored-by: Cursor <cursoragent@cursor.com>
fix: 스켈레톤 해제와 배너 실패 코드
promote: develop를 data로 올린다
data에서 main으로 올리기 전에, main에만 있는 머지 커밋을 develop 경유로 포함한다.
…-20260924

sync: main 승격 머지를 develop에 포함한다
…-20260924b

sync: data의 최신 승격 머지를 develop에 포함한다
promote: develop를 data로 올린다
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 24, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-24T08:46:37.946272Z 5943eb3 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@twoimo
twoimo merged commit 95e598e into main Sep 24, 2026
31 of 33 checks passed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5943eb3455

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +6464 to +6465
if (cohortVideos.length > 0) return cohortVideos;
return growthInsightQuery.data?.videos ?? [];

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Preserve an empty period cohort

When the selected period legitimately has no uploaded videos, the successful cohort response contains videos: [], but this condition treats that valid result as unavailable and substitutes growthInsightQuery, whose channel-growth scope is explicitly unfiltered by period. Consequently the dashboard shows all channel videos, totals, and top-content rows for a period that should show none; only fall back when the cohort request has no usable response, not when its array is empty.

Useful? React with 👍 / 👎.

Comment on lines +6517 to +6521
const videoPeriodDeltasAreFlat =
videoSnapshotComparisonAvailable &&
periodViewValue === 0 &&
periodLikeValue === 0 &&
periodCommentValue === 0;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Preserve legitimate zero-growth snapshot results

When valid comparison snapshots exist but views, likes, and comments genuinely did not change, this predicate classifies the real zero deltas as a fallback condition. The downstream period*DisplayValue calculations then replace those zeros with current cohort totals, disable delta ranking, and can display nonzero likes/comments for a zero-growth period. Snapshot availability is already represented separately, so an all-zero comparison must remain a valid measured result rather than being treated as missing data.

Useful? React with 👍 / 👎.

Comment on lines +157 to +159
return () => {
delete document.documentElement.dataset.homeChromeReady;
};

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep the loading skeleton dismissed in mobile fullscreen

When a mobile or tablet user enters map fullscreen, home-client.tsx intentionally unmounts HomeControlPanel; this cleanup then removes data-home-chrome-ready. Because HomeStaticSkeleton remains mounted and its CSS visibility depends solely on that attribute, the placeholder search and bottom bars reappear over the already-loaded fullscreen map until the user exits fullscreen. The readiness flag should not be reset when chrome is temporarily suppressed.

Useful? React with 👍 / 👎.

Comment on lines +330 to +333
<div className="h-11 animate-pulse rounded-full bg-muted" />
<div className="mt-4 space-y-3">
{Array.from({ length: 6 }, (_, index) => (
<div key={index} className="h-16 animate-pulse rounded-xl bg-muted" />

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Disable skeleton pulsing for reduced-motion users

The new initial-home skeleton applies animate-pulse to every placeholder without a motion-reduce:animate-none override, while the home-specific stylesheet's blanket reduced-motion rule is commented out. Users who request reduced motion therefore still receive several continuously pulsing elements during startup; add the reduced-motion utility or an equivalent active media rule to these placeholders.

Useful? React with 👍 / 👎.

Comment thread apps/web/package.json
Comment on lines +11 to +12
"dev": "node scripts/run-local-dev.mjs --port 3000",
"dev:local": "node scripts/run-local-dev.mjs --port 3000",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Align the local Supabase site URL with port 3000

Changing the default development server to port 3000 leaves the generated local Supabase stack's SITE_URL at http://127.0.0.1:8080. The password-account creation path calls auth.signUp without an emailRedirectTo, so GoTrue-generated confirmation links continue redirecting to the now-unused 8080 origin and local users cannot complete email confirmation through the default npm run dev flow. Update the local Auth site URL alongside the default app port.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant