Repository navigation
feat(docs): run /play on PlaygroundRender from @vite-hub/ui - #394
Conversation
Codex Review Summary: ❌ FailedThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
There was a problem hiding this comment.
Important
The preview no longer follows a system color-scheme change until another playground edit triggers a render.
Reviewed changes in 71ed52b, covering the migration of /play to PlaygroundRender and the surrounding generated data, theme, sharing, preview, and font-serving integration.
- Shared playground runtime — delegates editors, presets, URL state, reset, download, issues, and the sandboxed preview to
@vite-hub/ui/playground-render. - Comark rendering and theme pane — retains Comark parsing/rendering and introduces a Vue Theme pane backed by
theme.jsonand a hidden preview probe. - Preset and link data — emits complete template files plus rendered stills in
presets.json, and includes default config in standalone docs links. - Sandboxed font loading — adds CORS headers for
/play/fonts/**in Nuxt development and the Cloudflare asset middleware.
gpt-5.6-sol | 𝕏
comark-annotate
comark-badge
comark-cards
comark-carousel
comark-cast
comark-charts
comark-chat
comark-chips
comark-cjk
comark-code
comark-code-notes
comark-colors
comark-comments
comark-critic
comark-deflist
comark-details
comark-diagrams
comark-diff
comark-embed
comark-fields
comark-figure
comark-file-tree
comark-footnotes
comark-github
comark-icon
comark-include
comark-keys
comark-links
comark-linter
comark-magic-move
comark-mark
markdown-it-to-comark
marked-to-comark
comark-mathml
comark-media
comark-metrics
migrate-to-comark
comark-outline
comark-properties
comark-qr
comark-quiz
comark-reading-time
remark-to-comark
comark-sources
comark-steps
comark-table
comark-tabs
comark-tests
comark-time
comark-ui
comark-xref
comark-zoom
commit: |
Latest result Pull request merged. Final answersSession Pull request merged. Session Waiting for GitHub merge request c47c213e-4e3c-4016-8803-3ea28df864bb. Ready; no repair needed. Pullfrog: no current findings; historical P1 system-theme synchronization and iframe preference propagation fixes remain intact, with resolved threads. All supplied checks pass. Direct Playwright CLI verification passed all five preview tests after installing Chromium; pnpm exec initially failed because its automatic prepare attempted protected Git metadata. git diff --check passes and the checkout is clean. No commit or push. Session Merge on green: bot feedback below P1 and failed pullfrog, pullfrog-approval checks do not start a pass; the PR merges when its required checks pass. A person's comment or review, a failing required check, a merge conflict or a head pushed by someone else resumes it. Session Merge on green: bot feedback below P1 and failed pullfrog, pullfrog-approval checks do not start a pass; the PR merges when its required checks pass. A person's comment or review, a failing required check, a merge conflict or a head pushed by someone else resumes it. Session Waiting for open parent PR #393 to merge; this child has nothing left to repair. No repair needed. Pullfrog: none; historical P1 theme findings remain fixed. playwright test e2e/play-preview.e2e.ts --workers=1 passed all five cases; focused vp lint and git diff --check passed. All supplied hosted checks are green, and the working tree is clean. This stacked PR awaits open parent #393. Resolved three base-merge conflicts in 3a27dd2, preserving font CORS and the renderer alias. Frozen installation, 17 focused tests, five Playwright cases, six Nitro request probes, codec round-trip, focused typechecking, lint and formatting passed. Pullfrog: none; historical P1 theme findings remain fixed. Pushed once; awaiting hosted checks. |
|
No configured credential can serve this run. Your ChatGPT subscription has hit its usage limit, which resets at 2026-11-13 17:11 UTC. Re-trigger after it resets, or add an API key for this provider, which Pullfrog falls back to automatically. The providers' responses
|
|
No configured credential can serve this run. Your ChatGPT subscription has hit its usage limit, which resets at 2026-11-13 17:11 UTC. Re-trigger after it resets, or add an API key for this provider, which Pullfrog falls back to automatically. The providers' responses
|
There was a problem hiding this comment.
Important
The newly loaded renderer stylesheet forces implicit previews to light, overriding the system scheme.
Reviewed changes since the previous Pullfrog review, covering the system-theme repair, its browser tests, and integration with the updated design-system base.
- Added in-frame theme following — moved
playDocument()intodocs/preview.tsand added a media listener and responsive fallback colors without changing shared files. - Added browser regression coverage — tested implicit and explicit schemes and custom colors, then corrected the test types.
- Separated playground dependencies — switched playground imports to
@vite-hub/ui-playground, upgraded that alias, and loaded its stylesheet before the current UI styles.
Verification passed: production docs build, workspace and docs typechecks, 44 link tests, five focused preview tests, and built checks covering 413 pages and 472 playground states. An additional browser check using native iframe scheme propagation reproduced the issue inline.
gpt-6.1-sol(xhigh) | 𝕏
There was a problem hiding this comment.
✅ No new issues found. No P0 or P1 findings remain.
Reviewed changes since c381a60, focused on the native preview color-scheme fix and its regression coverage.
- Allowed native scheme propagation — scoped the preview iframe override to permit light and dark preferences while preserving explicit preview themes.
- Strengthened browser regression coverage — loaded the shipped stylesheets and replaced global media emulation with native iframe preference propagation, covering implicit transitions, explicit schemes, and custom colors.
Verification passed: all five focused Chromium tests, lint, formatting, and strict focused typechecking.
gpt-6.1-sol(xhigh) | 𝕏
There was a problem hiding this comment.
✅ No new issues found. No P0 or P1 findings remain.
Reviewed changes since 114740c, focused on the playground integration's reconciliation with the updated stacked base.
- Reconciled asset handling — Preserved sandboxed-font CORS with Nitro's native handler and request URL handling, without consuming downstream POST bodies.
- Reconciled dependencies — Retained the renderer-capable playground alias alongside the updated shared ViteHub dependencies and refreshed pin documentation.
Verification passed: frozen dependency installation, five asset-routing unit tests, five Chromium preview tests against the updated stylesheets, middleware lint, and Nitro H3 integration checks for font CORS, response preservation, badge bypass, POST-body preservation, and missing-asset fallthrough.
gpt-6.1-sol(xhigh) | 𝕏
There was a problem hiding this comment.
✅ No new issues found. No P0 or P1 findings remain.
Reviewed changes since 3a27dd2, focused on dependency reconciliation with the updated stacked base.
- Preserved the playground renderer — Retained the renderer-capable
af71f9dalias and reconciled its lockfile peer graph with the updated shared ViteHub build. - Updated shared dependency pins — Incorporated the base's
bc43707build and refreshed the dependency-pin documentation without changing playground application code.
Verification passed: frozen dependency installation, all five Chromium preview tests with both installed stylesheets, renderer and codec imports, shared Vue instance resolution, and standalone/preset share-link round trips across both codec builds.
gpt-6.1-sol(xhigh) | 𝕏

docs/play.tsis a 550-line playground engine that only comark-ui can use: a textarea over Shiki paint, panes, debounce, stale-run drop, the iframe, issues, the preset column, hash sync, and the reset dialog, all wired by hand to markup inplay/index.vue.This moves
/playontoPlaygroundRenderfrom@vite-hub/ui/playground-render(vite-hub/vitehub#3750). The component owns the editor, the panes, the presets, the link, Download, Reset, and the preview. comark-ui keeps only what is Comark:render()runs Comark with thecomarkUi()plugins and the Config pane,playDocument()adds comark-ui's styles and the theme, the Theme form stays in comark-ui (PlayTheme.vue, in thethemeslot, writestheme.json), and the stills go in the#presetslot.Evidence: https://drop.vitehub.dev/d/kvp7gy2qrs89/comark-ui-play-render
What changes for users:
content.md,config.json,theme.json) and a Gallery link. The per-pane Copy button and the "Playground" title above the presets are gone. Group headings lose their icons.allow-scripts allow-popups), so it has no origin. The Theme form reads its colors from a hidden copy of the preview page, and/play/fonts/*sendsaccess-control-allow-origin: *(Worker middleware androuteRules) so Geist still loads.presets.jsonloads, so there is no server-rendered first paint of the editor.presets.jsonnow holds each preset's files and still (900 KB), andpresets.htmlandplay.jsonare gone.config.json, so the Config pane is not empty when a link has no template (about 440 characters per link).@vite-hub/uiis pinned to the pkg.pr.new build of vite-hub/vitehub#3750 (af71f9d). Move it to a release once #3750 merges. The lockfile diff is the pin alone, andpnpm install --frozen-lockfilepasses.Stacked on #393.
Checks:
pnpm docs:build: passes, links checked on 413 pages.node docs/play-links.ts: opened 472 playground states from 493 links.vp test run test/links.test.ts: 3 files, 45 tests pass.pnpm --filter comark-ui-docs typecheck: passes.vp lintandvp fmt --checkon the changed files: clean.#code=garbageshows the notice, and a docs example link opens with no issues.Not checked: the CORS header on the deployed Worker (I checked the generated
_headersand injected the header locally), mobile layout on a real device, and the system dark mode switching while the page is open.