Skip to content

fix: prove presentation runtime smoke - #1067

Merged
kang-heewon merged 1 commit into
trunkfrom
fix/941-presentation-runtime-smoke
Jun 21, 2026
Merged

fix: prove presentation runtime smoke#1067
kang-heewon merged 1 commit into
trunkfrom
fix/941-presentation-runtime-smoke

Conversation

@kang-heewon

@kang-heewon kang-heewon commented Jun 21, 2026

Copy link
Copy Markdown
Member

Fixes #941.

Summary

  • Expands generated-app smoke coverage so the GraphQL Vite SPA and both Meta Vite profiles prove browser/client build output instead of stopping at template generation.
  • Adds generated Meta Vite React hydration entrypoints and smoke assertions for hydration root markup, page data/meta propagation, Worker SSR, API service bindings, ASSETS fallback, runtime env evidence, and streaming response preservation.
  • Promotes @croco/frontend-react, @croco/frontend-vite, @croco/frontend-cloudflare, and @croco/transports-cloudflare-workers with generated API docs, catalog/runtime support evidence, README runtime evidence, and a patch changeset.
  • Publishes @croco/frontend-cloudflare with a CJS worker entrypoint so packed package consumers can resolve the Worker surface through the package entrypoint smoke.

Verification

  • pnpm --filter @croco/frontend-react test - passed, 5 files / 27 tests.
  • pnpm --filter @croco/frontend-vite test - passed, 2 files / 10 tests.
  • pnpm --filter @croco/frontend-cloudflare test - passed, 1 file / 7 tests.
  • pnpm --filter @croco/transports-cloudflare-workers test - passed, 3 files / 12 tests.
  • pnpm create-croco-app:smoke graphql-vite-spa-docker meta-vite-web meta-vite-fullstack-workers - passed, including strict contract typecheck, static misuse check, generated template lint, forced 60-package build, frontend-cloudflare tarball CJS/ESM/type entry evidence, Vite config load checks, browser build output checks, Meta Vite build output checks, and presentation runtime smoke.
  • pnpm --filter @croco/docs docs:build - passed; existing TypeDoc unknown-tag warnings and sitemap site warning remain.
  • pnpm docs:catalog:write - passed.
  • pnpm docs:catalog:check - passed.
  • pnpm package-manifests:check - passed.
  • pnpm --filter create-croco-app exec vitest run src/tests/e2e-generation.spec.ts - passed, 14 tests.
  • pnpm public-api:check - passed, 109 snapshots match.
  • pnpm changeset-required:check -- --base origin/trunk --head HEAD - passed.
  • pnpm build - passed, 112 tasks.
  • pnpm package-entrypoints:smoke - passed, 108 checked packages.
  • pnpm typecheck - passed, 222 Turbo tasks.
  • pnpm check - passed.
  • git diff --check and staged diff check - passed.
  • Pre-commit hook passed: staged oxlint and oxfmt.
  • Pre-push hook passed: existing changeset, full Turbo test 223/223 tasks, and full Turbo typecheck 222/222 tasks.

Self-review gates

  • Correctness/regression: PASS. Issue [presentation] Promote frontend and Workers packages with generated-app runtime smoke #941 acceptance criteria are covered by generated-app smoke for requested hydration, page-data/meta propagation, build output, Worker SSR/API/assets/env behavior, and streaming paths, with package tests and repo checks passing.
  • API/security/compatibility/release: PASS. The Cloudflare CJS export is backed by build output and package entrypoint smoke; API docs exist for all four promoted packages; public API snapshots pass; a patch changeset and lockfile updates are included; no Cloudflare credentials are required by default CI.
  • Maintainability/minimality: PASS. The change stays scoped to generated templates, smoke harness evidence, docs/catalog evidence, Cloudflare export packaging, and one frontend-react test rename needed to run the existing page-data coverage under the package Vitest include rules.

Risk

Low-medium. The promoted packages now have generated runtime smoke and API reference evidence for the documented beta claim, but broader custom app/bootstrap combinations remain outside this issue and should stay covered by follow-up production-readiness work.

Summary by CodeRabbit

릴리스 노트

  • 새로운 기능

    • 프론트엔드 및 Cloudflare Workers 전송 패키지가 베타 상태로 승격되었습니다.
    • 생성된 앱의 빌드 산출물 디렉토리 구조가 명시적으로 설정되었습니다.
  • 문서

    • 프론트엔드 React, Cloudflare, Vite 및 Cloudflare Workers 패키지에 대한 포괄적인 API 레퍼런스가 추가되었습니다.
    • 각 패키지의 베타 런타임 증거 및 검증 범위가 문서화되었습니다.
  • 개선

    • 빌드 성공 검증 항목이 강화되었습니다.

@coderabbitai

coderabbitai Bot commented Jun 21, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@kang-heewon, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 34 minutes and 39 seconds. Learn how PR review limits work.

Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file).

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits.

🚦 How do rate limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan refill rate.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, the refill rate gradually slows as usage increases. The highest same-day bursts are limited more strictly.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 2f40181e-939a-4cc9-8979-0bd2ebdd80f6

📥 Commits

Reviewing files that changed from the base of the PR and between 48d9a72 and f401e6f.

📒 Files selected for processing (128)
  • .changeset/presentation-runtime-smoke.md
  • .github/workflows/ci.yml
  • README.md
  • docs/package-catalog.json
  • docs/package-docs-baseline.json
  • docs/package-docs-report.md
  • docs/problem-code-registry.json
  • packages/create-croco-app/src/tests/e2e-generation.spec.ts
  • packages/create-croco-app/templates/addons/web-meta-vite-fullstack/ssr-worker/index.html.hbs
  • packages/create-croco-app/templates/addons/web-meta-vite-fullstack/ssr-worker/package.json.hbs
  • packages/create-croco-app/templates/addons/web-meta-vite-fullstack/ssr-worker/src/client.tsx
  • packages/create-croco-app/templates/addons/web-meta-vite-fullstack/ssr-worker/src/smoke/presentationSmoke.ts
  • packages/create-croco-app/templates/addons/web-meta-vite-fullstack/ssr-worker/tsconfig.json.hbs
  • packages/create-croco-app/templates/addons/web-meta-vite/index.html.hbs
  • packages/create-croco-app/templates/addons/web-meta-vite/package.json.hbs
  • packages/create-croco-app/templates/addons/web-meta-vite/src/client.tsx
  • packages/create-croco-app/templates/addons/web-meta-vite/src/smoke/presentationSmoke.ts
  • packages/create-croco-app/templates/addons/web-meta-vite/tsconfig.json.hbs
  • packages/docs/astro.config.mjs
  • packages/docs/package.json
  • packages/docs/scripts/sanitize-typedoc-index.mjs
  • packages/docs/src/content/docs/api/frontend-cloudflare/src/functions/createSsrHandler.md
  • packages/docs/src/content/docs/api/frontend-cloudflare/src/type-aliases/SsrHandlerOptions.md
  • packages/docs/src/content/docs/api/frontend-cloudflare/src/type-aliases/SsrWorkerEnv.md
  • packages/docs/src/content/docs/api/frontend-cloudflare/src/variables/default.md
  • packages/docs/src/content/docs/api/frontend-react/src/classes/ProblemBoundary.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/AuthBridgeGateStatus.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/AuthBridgeProblemNotice.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/AuthBridgeRecoveryActions.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/CrocoAuthBridgeProvider.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/ProblemPanel.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/ProblemRecoveryActions.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/ProblemToastAdapter.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/RequireEntitlement.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/RequirePermission.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/RequireSession.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/createAuthBridgeMissingProviderProblemDetails.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/createCrocoPageConfig.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/createFrontendAuthBridgeState.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/createFrontendEntitlementDeniedProblemDetails.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/createFrontendPermissionDeniedProblemDetails.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/createFrontendProblemDetails.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/createFrontendTenantUnavailableProblemDetails.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/createFrontendUnauthenticatedProblemDetails.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/createMissingProviderAuthBridgeState.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/createProblemToastPayload.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/evaluateSessionGateState.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/normalizeProblemDetails.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/useAuthBridgeState.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/useEntitlements.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/usePageData.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/usePageMeta.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/usePermissionGate.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/useSessionGate.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/useTenant.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/AuthBridgeGateStatusProps.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/CrocoAuthBridgeProviderProps.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/CrocoDataFn.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/CrocoPageConfig.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/CrocoPageContext.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/CrocoPageOptions.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendAuthBridgeSource.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendAuthBridgeState.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendAuthBridgeStateInput.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendAuthGateAllowedState.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendAuthGateBlockedState.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendAuthGateDeniedState.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendAuthGateFallback.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendAuthGateLoadingState.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendAuthGateRequirements.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendAuthGateState.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendAuthGateUnauthenticatedState.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendAuthGateUnavailableState.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendEntitlementCheck.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendEntitlementState.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendPermissionCheck.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendPermissionState.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendRecoveryAction.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendSession.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendSessionPrincipal.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendSessionState.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendTenant.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendTenantState.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/ProblemBoundaryFallback.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/ProblemBoundaryFallbackState.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/ProblemBoundaryProps.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/ProblemBoundaryState.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/ProblemPanelProps.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/ProblemRecoveryAction.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/ProblemRecoveryActionKind.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/ProblemRecoveryActionsProps.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/ProblemToastAdapterProps.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/ProblemToastPayload.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/RequireEntitlementProps.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/RequirePermissionProps.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/RequireSessionProps.md
  • packages/docs/src/content/docs/api/frontend-react/src/variables/AuthBridgeContext.md
  • packages/docs/src/content/docs/api/frontend-react/src/variables/PageDataContext.md
  • packages/docs/src/content/docs/api/frontend-react/src/variables/PageDataProvider.md
  • packages/docs/src/content/docs/api/frontend-vite/src/classes/MissingCloudflareVitePluginProblem.md
  • packages/docs/src/content/docs/api/frontend-vite/src/functions/createCrocoSpaViteConfig.md
  • packages/docs/src/content/docs/api/frontend-vite/src/functions/crocoSpaViteConfig.md
  • packages/docs/src/content/docs/api/frontend-vite/src/functions/crocoVitePlugin.md
  • packages/docs/src/content/docs/api/frontend-vite/src/type-aliases/CrocoSpaOptions.md
  • packages/docs/src/content/docs/api/frontend-vite/src/type-aliases/CrocoViteConfig.md
  • packages/docs/src/content/docs/api/frontend-vite/src/type-aliases/CrocoViteOptions.md
  • packages/docs/src/content/docs/api/problems-core/src/classes/Problem.md
  • packages/docs/src/content/docs/api/protocols-rest/src/interfaces/ArgumentMetadata.md
  • packages/docs/src/content/docs/api/transports-cloudflare-workers/src/functions/toWorkersHandler.md
  • packages/docs/src/content/docs/api/transports-cloudflare-workers/src/type-aliases/CloudflareEnv.md
  • packages/docs/src/content/docs/api/transports-cloudflare-workers/src/type-aliases/WorkersFetchHandler.md
  • packages/docs/src/content/docs/api/transports-cloudflare-workers/src/type-aliases/WorkersHandlerOptions.md
  • packages/docs/src/content/docs/en/reference/extension-matrix.md
  • packages/docs/src/content/docs/en/reference/presentation-runtime-support.md
  • packages/docs/src/content/docs/en/reference/problem-recovery-cookbook.md
  • packages/docs/tsconfig.typedoc.json
  • packages/frontend-cloudflare/README.md
  • packages/frontend-cloudflare/package.json
  • packages/frontend-cloudflare/tsup.config.ts
  • packages/frontend-react/README.md
  • packages/frontend-react/src/libs/hooks/usePageData.ts
  • packages/frontend-react/src/tests/usePageData.spec.ts
  • packages/frontend-react/src/tests/usePageData.spec.tsx
  • packages/frontend-vite/README.md
  • packages/frontend-vite/src/index.ts
  • packages/frontend-vite/src/libs/crocoSpaViteConfig.ts
  • packages/frontend-vite/src/libs/problems/MissingCloudflareVitePluginProblem.ts
  • packages/migration-runner/src/tests/PublishedCli.spec.ts
📝 Walkthrough

Walkthrough

frontend-react, frontend-vite, frontend-cloudflare, transports-cloudflare-workers 4개 패키지를 alpha에서 beta로 승격한다. 생성 앱 스모크 강화(PageDataProvider 기반 렌더, Worker 바인딩/스트리밍 테스트), 템플릿 클라이언트 하이드레이션 엔트리 추가, 빌드 출력 경로 고정(dist/client), frontend-cloudflare CJS 빌드 추가, 4개 패키지의 생성 API 문서 일괄 추가, 카탈로그·README·매트릭스 베타 승급을 포함한다.

Changes

프레젠테이션 런타임 패키지 베타 승격

Layer / File(s) Summary
web-meta-vite 스모크 핵심 로직 강화
packages/create-croco-app/templates/addons/web-meta-vite/src/smoke/presentationSmoke.ts
PageDataProvider/usePageData/usePageMeta 기반의 page-data: 출력 포맷으로 전환. readRuntimeEnvValueSMOKE_FLAG 환경값을 읽고, 라우트 컴포넌트가 SmokePagePageDataProvider로 래핑하도록 재구성. 테스트 단언을 hydration root·data-croco-page-title·page-data: 문자열 검증으로 업데이트.
ssr-worker 스모크 강화 및 Worker 바인딩 테스트
packages/create-croco-app/templates/addons/web-meta-vite-fullstack/ssr-worker/src/smoke/presentationSmoke.ts
createSsrHandlerAPI_WORKER/ASSETS 바인딩과 stub executionContext를 주입하는 Worker 통합 테스트 추가. createStream 헬퍼를 이용한 스트리밍 SSR 테스트 추가. 라우트 컴포넌트를 PageDataProvider로 래핑하고 page-data: 포맷으로 전환.
generated-app 템플릿 클라이언트 하이드레이션 및 빌드 출력 경로
packages/create-croco-app/templates/addons/web-meta-vite/..., packages/create-croco-app/templates/addons/web-meta-vite-fullstack/ssr-worker/...
index.html.hbs(data-croco-hydration-root, /src/client.tsx 로드)·client.tsx(pageData 구성 및 hydrateRoot 호출) 신규 추가. build 스크립트를 vite build --outDir dist/client로 변경. tsconfig.json.hbsjsx:react-jsx, types:vite/client, module:esnext 추가.
e2e 생성 테스트 및 스모크 스크립트 빌드 출력 검증
packages/create-croco-app/src/tests/e2e-generation.spec.ts, scripts/create-croco-app-generated-smoke.mts
scripts.buildvite build --outDir dist/client인지 확인하는 단언 추가. 생성 스모크에서 dist/index.html·dist/client 존재 여부 검증 추가.
frontend-cloudflare CJS 빌드 지원 추가
packages/frontend-cloudflare/tsup.config.ts, packages/frontend-cloudflare/package.json
tsup format을 ESM+CJS로 확장하고 outExtension을 포맷별 .js/.cjs로 분기. exportsrequire: ./dist/worker.cjs 엔트리 추가.
frontend-react usePageData/usePageMeta 단위 테스트
packages/frontend-react/src/tests/usePageData.spec.ts
PageDataProvider로부터 usePageData·usePageMeta가 값을 올바르게 읽는지 renderToStaticMarkup 기반으로 검증하는 신규 테스트 추가. 기존 .spec.tsx 파일 내용 제거.
패키지 카탈로그·문서 참조 베타 승급
docs/package-catalog.json, docs/package-docs-baseline.json, docs/package-docs-report.md, README.md, packages/docs/src/content/docs/en/reference/..., .changeset/presentation-runtime-smoke.md
4개 패키지를 beta 목록으로 이동하고 allowedMissingApiDocs에서 삭제. extension-matrix·presentation-runtime-support 문서의 maturity 표기를 beta로 갱신. patch 릴리즈 changeset 선언.
패키지 README 런타임 증거 섹션
packages/frontend-cloudflare/README.md, packages/frontend-react/README.md, packages/frontend-vite/README.md, packages/transports-cloudflare-workers/README.md
각 패키지 README에 beta runtime claim 검증 방법, 확인 범위, API reference 생성 경로를 담은 "런타임 증거" 섹션 추가.
문서 생성 진입점 및 의존성 연결
packages/docs/astro.config.mjs, packages/docs/package.json, packages/docs/tsconfig.typedoc.json
starlightTypeDoc entryPoints와 devDependencies, TypeDoc files 배열에 4개 패키지의 src/index.ts 경로 추가.
frontend-cloudflare / transports-cloudflare-workers / frontend-vite API 참조 문서
packages/docs/src/content/docs/api/frontend-cloudflare/..., packages/docs/src/content/docs/api/transports-cloudflare-workers/..., packages/docs/src/content/docs/api/frontend-vite/...
createSsrHandler, SsrWorkerEnv, SsrHandlerOptions, toWorkersHandler, WorkersFetchHandler, WorkersHandlerOptions, CloudflareEnv, MissingCloudflareVitePluginProblem, Vite 함수·타입 등 API 문서 마크다운 신규 추가.
frontend-react API 참조 문서
packages/docs/src/content/docs/api/frontend-react/src/...
ProblemBoundary 클래스, AuthBridge 계열·Problem 계열·Require 계열·usePageData·usePageMeta 등 훅·함수, FrontendAuth*·Frontend*State·Problem*·Croco* 등 타입 알리아스, PageDataContext·PageDataProvider 변수 API 문서 일괄 신규 추가.

Sequence Diagram(s)

sequenceDiagram
  participant CISmoke as CI 스모크
  participant createSsrHandler as createSsrHandler
  participant ASSETS as ASSETS Fetcher
  participant API_WORKER as API_WORKER Fetcher
  participant PageDataProvider
  participant SmokePage

  rect rgba(30, 100, 200, 0.5)
    Note over CISmoke,SmokePage: Worker SSR 스모크 흐름
    CISmoke->>createSsrHandler: GET /assets/app.js
    createSsrHandler->>ASSETS: fetch(/assets/app.js)
    ASSETS-->>CISmoke: 200 asset 응답

    CISmoke->>createSsrHandler: GET /api/ping
    createSsrHandler->>API_WORKER: fetch(/api/ping)
    API_WORKER-->>CISmoke: {pong:true}

    CISmoke->>createSsrHandler: GET / (SMOKE_FLAG=smoke-flag)
    createSsrHandler->>PageDataProvider: {envValue, message:hydrated, platform}
    PageDataProvider->>SmokePage: usePageData / usePageMeta 제공
    SmokePage-->>CISmoke: page-data:hydrated:cloudflare:smoke-flag:/
  end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

  • croco-dev/framework#838: presentationSmoke.ts의 SSR/ISR/API/action 라우팅 및 응답 내용 단언 강화를 공통으로 다루며, 이번 PR의 page-data: 포맷 전환과 Worker 통합 테스트 추가의 직접적인 선행 작업에 해당함.
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed PR 제목 'fix: prove presentation runtime smoke'는 변경 사항의 주요 내용인 프레젠테이션 런타임 스모크 증거 추가를 명확하게 요약하고 있습니다.
Linked Issues check ✅ Passed 이 PR은 #941 이슈의 모든 목표를 충족합니다: 생성된 앱 스모크 추가, 런타임 증거 문서화, 4개 패키지 프로모션, API 문서 생성, 네 패키지 모두 베타로 승격.
Out of Scope Changes check ✅ Passed 모든 변경 사항이 #941 이슈 범위 내에 있습니다: 스모크 테스트, 문서화, API 문서 생성, 패키지 성숙도 업데이트, CJS 워커 엔트리포인트 추가 등 모두 이슈 목표와 직접 관련됩니다.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/941-presentation-runtime-smoke

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions

github-actions Bot commented Jun 21, 2026

Copy link
Copy Markdown

📊 Benchmark Results

❌ Some benchmarks failed

Gate failures

  • CrocoApp constructor: p75 4.1μs exceeds baseline 3.4μs by more than 20%
  • CrocoApp lambdaHandler (10 controllers): p75 109.3μs exceeds baseline 33.3μs by more than 20%
  • Lambda cold-start simulation: p75 190.2μs exceeds baseline 70.2μs by more than 20%
  • Lambda cold-start with headers: p75 133.5μs exceeds baseline 66.7μs by more than 20%
  • Lambda cold-start with binary body: p75 127.4μs exceeds baseline 63.2μs by more than 20%
  • Lambda cold-start with query params: p75 125.7μs exceeds baseline 63.9μs by more than 20%
  • Lambda cold-start with authorizer context: p75 125.2μs exceeds baseline 59.8μs by more than 20%
  • Lambda cold-start realistic scenario: p75 126.0μs exceeds baseline 60.2μs by more than 20%
  • Container.get singleton (cold): p75 32.6μs exceeds baseline 0.6μs by more than 20%
  • Container.register × 50 components: p75 1.5ms exceeds baseline 12.1μs by more than 20%
  • Container.validate (50 components): p75 1.8ms exceeds baseline 29.7μs by more than 20%
  • Container.get singleton (warm): p75 0.9μs exceeds baseline 0.3μs by more than 20%
Benchmark p75 Threshold Baseline vs Baseline Status Notes
CrocoApp constructor 4.1μs 30.0ms 3.4μs +20.2% -
CrocoApp lambdaHandler (10 controllers) 109.3μs 50.0ms 33.3μs +228.3% -
Lambda cold-start simulation 190.2μs 80.0ms 70.2μs +171.1% -
Lambda cold-start with headers 133.5μs 80.0ms 66.7μs +100.1% -
Lambda cold-start with binary body 127.4μs 80.0ms 63.2μs +101.8% -
Lambda cold-start with query params 125.7μs 80.0ms 63.9μs +96.8% -
Lambda cold-start with authorizer context 125.2μs 80.0ms 59.8μs +109.4% -
Lambda cold-start realistic scenario 126.0μs 80.0ms 60.2μs +109.5% -
EventBusConfig.start (10 handlers) 0.9μs 10.0ms 0.9μs +7.5% -
EventPublisher.publishNow single event 1.2μs 2.0ms 1.1μs +6.4% -
DefaultHandlerResolver.resolve × 10 0.1μs 5.0ms 0.0μs +19.0% -
Container.get singleton (cold) 32.6μs 5.0ms 0.6μs +5122.2% -
Container.register × 50 components 1.5ms 10.0ms 12.1μs +12159.4% -
Container.validate (50 components) 1.8ms 20.0ms 29.7μs +5868.1% -
Container.get singleton (warm) 0.9μs 500.0μs 0.3μs +215.4% -
TelemetryRuntime.init (lambda preset) 612.9μs 200.0ms 69.3ms -99.1% -
lambdaPreset config creation 0.7μs 2.0ms 1.0μs -31.9% -

Updated: 2026-06-21T17:46:59.733Z · Commit: 3dbe1c5

@kang-heewon
kang-heewon force-pushed the fix/941-presentation-runtime-smoke branch 2 times, most recently from 48d9a72 to 0afa6e2 Compare June 21, 2026 15:12

@coderabbitai coderabbitai 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.

Actionable comments posted: 13

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@packages/create-croco-app/templates/addons/web-meta-vite-fullstack/ssr-worker/src/smoke/presentationSmoke.ts`:
- Around line 1-2: Reorganize the imports in the presentationSmoke.ts file to
follow the guideline order: external packages (like React) should be imported
first, followed by internal `@croco/*` packages. Additionally, any type imports
(such as ReactElement) must be separated into their own `import type` statements
instead of being mixed with regular imports. Ensure all
`@croco/frontend-cloudflare` and `@croco/frontend-react` imports are grouped
together after external package imports, with type-only imports properly
declared using the `import type` syntax.

In `@packages/create-croco-app/templates/addons/web-meta-vite/package.json.hbs`:
- Around line 7-8: The build script outputs to dist/client but the preview
script uses the default dist directory, causing a mismatch that will break
preview functionality. Update the preview script to explicitly specify the same
output directory using the --outDir dist/client flag to ensure it references the
correct build artifacts that were created by the build script.

In `@packages/create-croco-app/templates/addons/web-meta-vite/src/client.tsx`:
- Around line 16-18: The throw statement in the hydration root element
validation is using a generic Error class, which violates the coding guideline
to only throw Problem subclasses. Replace the generic Error instantiation with
an appropriate Problem subclass that conveys the same error message about the
missing Croco hydration root element. Ensure the Problem subclass is imported
and used consistently with the rest of the codebase standards.

In
`@packages/create-croco-app/templates/addons/web-meta-vite/src/smoke/presentationSmoke.ts`:
- Line 1: The import statements do not follow the correct import order and type
import conventions. Reorder the imports so that external packages (like React)
come first, followed by internal `@croco/`* packages. Additionally, separate any
type-only imports by using the `type` keyword in a dedicated import statement
rather than mixing them with value imports. Apply this reorganization to the
imports in the presentationSmoke.ts file to ensure consistency with the project
guidelines.

In
`@packages/docs/src/content/docs/api/frontend-react/src/classes/ProblemBoundary.md`:
- Around line 14-55: The ProblemBoundary documentation has duplicate "###
Constructor" headings at the same markdown level (lines 14 and 32 area), which
violates the MD024 markdownlint rule. Modify the second Constructor heading to
be distinct from the first, either by changing it to "### Constructor (with
context)" or adjusting the heading level to #### for the second overload,
ensuring each heading at the same level is unique while maintaining proper
markdown hierarchy.

In
`@packages/docs/src/content/docs/api/frontend-react/src/functions/useEntitlements.md`:
- Around line 8-32: The useEntitlements function documentation contains
duplicate "## Call Signature" headings at lines 8 and 16, which violates the
markdownlint MD024 rule and breaks documentation generation and table of
contents creation. Differentiate these headings to distinguish between the two
function overloads, such as by renaming the second occurrence to "## Call
Signature (with entitlements)" or using a different heading structure that
clearly separates the overload variants without duplicating heading text.

In
`@packages/docs/src/content/docs/api/frontend-react/src/type-aliases/ProblemBoundaryFallback.md`:
- Line 8: The ProblemBoundaryFallback type alias definition is missing a type
annotation for the function parameter. In the union type definition for
ProblemBoundaryFallback, add the type annotation `ProblemBoundaryFallbackState`
to the `state` parameter in the function signature portion of the union,
changing `(state) => ReactNode` to `(state: ProblemBoundaryFallbackState) =>
ReactNode` to provide proper type information for the function parameter.

In
`@packages/docs/src/content/docs/api/frontend-react/src/variables/PageDataContext.md`:
- Around line 1-8: The PageDataContext documentation file currently contains
only frontmatter metadata and a type declaration without any substantive
explanation. Add documentation content to the file that explains the purpose and
role of PageDataContext as an internal Context for the page data pattern,
clarifies its relationship to PageDataProvider, describes how
PageDataContextValue is structured and used, and provides common usage examples
or scenarios where developers would interact with this Context. This will help
API documentation readers understand what PageDataContext is for and when they
should use it in their applications.

In
`@packages/docs/src/content/docs/api/frontend-react/src/variables/PageDataProvider.md`:
- Around line 1-8: The PageDataProvider documentation file is incomplete and
lacks essential information needed for beta-level API documentation. Expand the
documentation for PageDataProvider to include: a clear description explaining
what the Provider does and why it is needed, instructions on how to wrap
application components at the entry point, explanations of its relationship with
the usePageData and usePageMeta hooks, and practical code examples demonstrating
basic usage patterns. This will ensure the documentation provides sufficient
context and guidance for developers adopting PageDataProvider-based rendering.

In
`@packages/docs/src/content/docs/api/frontend-vite/src/classes/MissingCloudflareVitePluginProblem.md`:
- Around line 8-9: The class description for MissingCloudflareVitePluginProblem
in lines 8-9 is currently a generic description of the base Problem class for
RFC 7807 Problem Details. Replace this generic description with a specific one
that accurately describes MissingCloudflareVitePluginProblem as a
ValidationError that represents the specific condition when the Cloudflare Vite
plugin is not installed or missing. Check the original JSDoc comments in the
source code for MissingCloudflareVitePluginProblem to ensure the documentation
matches the actual class purpose and usage scenario.

In
`@packages/docs/src/content/docs/api/frontend-vite/src/functions/createCrocoSpaViteConfig.md`:
- Around line 10-15: Remove the package-level introduction text (lines 10-15)
that describes the `@croco/frontend-vite` package from the function API
documentation for createCrocoSpaViteConfig. This package description text is
inappropriate in function-level API reference documentation and should only
appear in package-level documentation like the README. Keep only documentation
specific to the createCrocoSpaViteConfig function itself, and move the package
introduction content to the appropriate package-level documentation files.

In
`@packages/docs/src/content/docs/api/transports-cloudflare-workers/src/type-aliases/WorkersHandlerOptions.md`:
- Line 16: The WorkersHandlerOptions documentation contains only Korean text
without any English description, which is inconsistent with other API reference
documents. Add an English description alongside or instead of the Korean-only
text "env를 FrameworkContext에 주입할지 여부 (기본: false)" to ensure consistency across
the API documentation. Provide either a bilingual version with both English and
Korean, or replace with an English version that matches the content and style of
other API reference documents.

In `@packages/transports-cloudflare-workers/README.md`:
- Around line 7-16: The README documentation for the smoke test (lines
describing `pnpm create-croco-app:smoke meta-vite-fullstack-workers`)
inaccurately claims validation of `api-worker` service bindings and
zero-credential Worker fullstack scenarios, but the actual implementation in
`scripts/create-croco-app-generated-smoke.mts` only validates `ssr-worker` with
vite config loading, build output, and presentation:smoke tests. Update the
README to accurately reflect what the smoke test actually validates (ssr-worker
only), removing references to `api-worker` service binding calls and
zero-credential fullstack validation, since these features are correctly
validated by the unit tests (`WorkersAdapter.spec.ts` and
`PublishedWorkerTypes.spec.ts`) not the smoke test.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: fb7975a6-ece9-4e64-9a52-4b11bb6e1928

📥 Commits

Reviewing files that changed from the base of the PR and between 9fc5702 and 48d9a72.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (121)
  • .changeset/presentation-runtime-smoke.md
  • README.md
  • docs/package-catalog.json
  • docs/package-docs-baseline.json
  • docs/package-docs-report.md
  • packages/create-croco-app/src/tests/e2e-generation.spec.ts
  • packages/create-croco-app/templates/addons/web-meta-vite-fullstack/ssr-worker/index.html.hbs
  • packages/create-croco-app/templates/addons/web-meta-vite-fullstack/ssr-worker/package.json.hbs
  • packages/create-croco-app/templates/addons/web-meta-vite-fullstack/ssr-worker/src/client.tsx
  • packages/create-croco-app/templates/addons/web-meta-vite-fullstack/ssr-worker/src/smoke/presentationSmoke.ts
  • packages/create-croco-app/templates/addons/web-meta-vite-fullstack/ssr-worker/tsconfig.json.hbs
  • packages/create-croco-app/templates/addons/web-meta-vite/index.html.hbs
  • packages/create-croco-app/templates/addons/web-meta-vite/package.json.hbs
  • packages/create-croco-app/templates/addons/web-meta-vite/src/client.tsx
  • packages/create-croco-app/templates/addons/web-meta-vite/src/smoke/presentationSmoke.ts
  • packages/create-croco-app/templates/addons/web-meta-vite/tsconfig.json.hbs
  • packages/docs/astro.config.mjs
  • packages/docs/package.json
  • packages/docs/src/content/docs/api/frontend-cloudflare/src/functions/createSsrHandler.md
  • packages/docs/src/content/docs/api/frontend-cloudflare/src/type-aliases/SsrHandlerOptions.md
  • packages/docs/src/content/docs/api/frontend-cloudflare/src/type-aliases/SsrWorkerEnv.md
  • packages/docs/src/content/docs/api/frontend-cloudflare/src/variables/default.md
  • packages/docs/src/content/docs/api/frontend-react/src/classes/ProblemBoundary.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/AuthBridgeGateStatus.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/AuthBridgeProblemNotice.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/AuthBridgeRecoveryActions.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/CrocoAuthBridgeProvider.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/ProblemPanel.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/ProblemRecoveryActions.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/ProblemToastAdapter.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/RequireEntitlement.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/RequirePermission.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/RequireSession.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/createAuthBridgeMissingProviderProblemDetails.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/createCrocoPageConfig.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/createFrontendAuthBridgeState.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/createFrontendEntitlementDeniedProblemDetails.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/createFrontendPermissionDeniedProblemDetails.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/createFrontendProblemDetails.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/createFrontendTenantUnavailableProblemDetails.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/createFrontendUnauthenticatedProblemDetails.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/createMissingProviderAuthBridgeState.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/createProblemToastPayload.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/evaluateSessionGateState.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/normalizeProblemDetails.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/useAuthBridgeState.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/useEntitlements.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/usePageData.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/usePageMeta.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/usePermissionGate.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/useSessionGate.md
  • packages/docs/src/content/docs/api/frontend-react/src/functions/useTenant.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/AuthBridgeGateStatusProps.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/CrocoAuthBridgeProviderProps.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/CrocoDataFn.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/CrocoPageConfig.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/CrocoPageContext.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/CrocoPageOptions.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendAuthBridgeSource.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendAuthBridgeState.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendAuthBridgeStateInput.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendAuthGateAllowedState.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendAuthGateBlockedState.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendAuthGateDeniedState.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendAuthGateFallback.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendAuthGateLoadingState.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendAuthGateRequirements.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendAuthGateState.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendAuthGateUnauthenticatedState.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendAuthGateUnavailableState.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendEntitlementCheck.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendEntitlementState.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendPermissionCheck.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendPermissionState.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendRecoveryAction.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendSession.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendSessionPrincipal.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendSessionState.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendTenant.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/FrontendTenantState.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/ProblemBoundaryFallback.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/ProblemBoundaryFallbackState.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/ProblemBoundaryProps.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/ProblemBoundaryState.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/ProblemPanelProps.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/ProblemRecoveryAction.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/ProblemRecoveryActionKind.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/ProblemRecoveryActionsProps.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/ProblemToastAdapterProps.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/ProblemToastPayload.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/RequireEntitlementProps.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/RequirePermissionProps.md
  • packages/docs/src/content/docs/api/frontend-react/src/type-aliases/RequireSessionProps.md
  • packages/docs/src/content/docs/api/frontend-react/src/variables/AuthBridgeContext.md
  • packages/docs/src/content/docs/api/frontend-react/src/variables/PageDataContext.md
  • packages/docs/src/content/docs/api/frontend-react/src/variables/PageDataProvider.md
  • packages/docs/src/content/docs/api/frontend-vite/src/classes/MissingCloudflareVitePluginProblem.md
  • packages/docs/src/content/docs/api/frontend-vite/src/functions/createCrocoSpaViteConfig.md
  • packages/docs/src/content/docs/api/frontend-vite/src/functions/crocoSpaViteConfig.md
  • packages/docs/src/content/docs/api/frontend-vite/src/functions/crocoVitePlugin.md
  • packages/docs/src/content/docs/api/frontend-vite/src/type-aliases/CrocoSpaOptions.md
  • packages/docs/src/content/docs/api/frontend-vite/src/type-aliases/CrocoViteConfig.md
  • packages/docs/src/content/docs/api/frontend-vite/src/type-aliases/CrocoViteOptions.md
  • packages/docs/src/content/docs/api/problems-core/src/classes/Problem.md
  • packages/docs/src/content/docs/api/protocols-rest/src/interfaces/ArgumentMetadata.md
  • packages/docs/src/content/docs/api/transports-cloudflare-workers/src/functions/toWorkersHandler.md
  • packages/docs/src/content/docs/api/transports-cloudflare-workers/src/type-aliases/CloudflareEnv.md
  • packages/docs/src/content/docs/api/transports-cloudflare-workers/src/type-aliases/WorkersFetchHandler.md
  • packages/docs/src/content/docs/api/transports-cloudflare-workers/src/type-aliases/WorkersHandlerOptions.md
  • packages/docs/src/content/docs/en/reference/extension-matrix.md
  • packages/docs/src/content/docs/en/reference/presentation-runtime-support.md
  • packages/docs/tsconfig.typedoc.json
  • packages/frontend-cloudflare/README.md
  • packages/frontend-cloudflare/package.json
  • packages/frontend-cloudflare/tsup.config.ts
  • packages/frontend-react/README.md
  • packages/frontend-react/src/tests/usePageData.spec.ts
  • packages/frontend-react/src/tests/usePageData.spec.tsx
  • packages/frontend-vite/README.md
  • packages/transports-cloudflare-workers/README.md
  • scripts/create-croco-app-generated-smoke.mts
💤 Files with no reviewable changes (2)
  • packages/frontend-react/src/tests/usePageData.spec.tsx
  • docs/package-docs-baseline.json

Comment thread packages/create-croco-app/templates/addons/web-meta-vite/package.json.hbs Outdated
Comment thread packages/transports-cloudflare-workers/README.md
@kang-heewon
kang-heewon force-pushed the fix/941-presentation-runtime-smoke branch 6 times, most recently from c343fbb to 7cd2335 Compare June 21, 2026 16:58
@kang-heewon
kang-heewon force-pushed the fix/941-presentation-runtime-smoke branch from 7cd2335 to f401e6f Compare June 21, 2026 17:42
@kang-heewon
kang-heewon merged commit ea92d63 into trunk Jun 21, 2026
8 checks passed
@kang-heewon
kang-heewon deleted the fix/941-presentation-runtime-smoke branch June 21, 2026 18:13
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.

[presentation] Promote frontend and Workers packages with generated-app runtime smoke

1 participant