beta.25 docs#160
Conversation
…de for 0.1.0-beta.25 - Removed "NEW" badge from the 0.1.0-beta.24 upgrade guide. - Updated subproject commit reference in the studiocms repository. - Modified typedoc.config.ts to include new and updated file paths, removing obsolete ones. - Added new upgrade guide for version 0.1.0-beta.25, detailing features and bug fixes.
✅ Deploy Preview for studiocms-dev-docs ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
📝 WalkthroughWalkthroughAdds a cSpell word, appends twoslash error 2305, bumps several StudioCMS dependencies, adds an upgrade guide for 0.1.0-beta.25 and tweaks MDX badges, updates the studiocms submodule pointer, and radically reorganizes TypeDoc entryPoints to match a new module layout. Changes
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
Tip 🔌 Remote MCP (Model Context Protocol) integration is now available!Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats. 📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 💡 Knowledge Base configuration:
You can enable these sources in your CodeRabbit configuration. ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (2)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
✨ Finishing Touches🧪 Generate unit tests
🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
CodeRabbit Configuration File (
|
Lunaria Status Overview🌕 This pull request will trigger status changes. Learn moreBy default, every PR changing files present in the Lunaria configuration's You can change this by adding one of the keywords present in the Tracked Files
Warnings reference
|
There was a problem hiding this comment.
Actionable comments posted: 2
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
src/content/docs/en/how-it-works/effect.mdx (1)
31-36: StaleconvertToVanillareference & missingrunEffectexportWe found two critical issues:
- src/content/docs/fr/how-it-works/effect.mdx (around line 29) still imports
convertToVanilla, which needs to be renamed torunEffect.- The
studiocms/effectpackage does not exportrunEffect(no named export found inpackages/studiocms/src/effect.ts).Please address both before merging:
• Update the French docs import:
--- a/src/content/docs/fr/how-it-works/effect.mdx +++ b/src/content/docs/fr/how-it-works/effect.mdx @@ -27,5 +27,5 @@ import { - convertToVanilla, errorTap, + runEffect, errorTap, genLogger, pipeLogger, runtimeLogger }• Expose
runEffectfrom the effect package entrypoint—e.g., inpackages/studiocms/src/effect.ts(or the package’sindex.ts):--- a/packages/studiocms/src/effect.ts +++ b/packages/studiocms/src/effect.ts @@ -export { /* …other exports… */ } +export { runEffect, /* …other exports… */ }Once
runEffectis correctly exported and allconvertToVanillareferences are removed or updated, this doc change can be approved.typedoc.config.ts (1)
84-110: Fix missing entry point path for webVitals in TypeDoc configThe TypeDoc configuration still references a file that no longer exists—
studiocms/packages/studiocms/src/integrations/webVitals/webVitals.ts—so CI will fail unless it’s updated. Please adjust the entryPoints intypedoc.config.ts(around lines 84–110, and any similar entries up through 129–244) to point at the correct filenames or switch to a glob pattern:• In
typedoc.config.ts, replace:- getFilePathToPackage('studiocms', 'src/integrations/webVitals/webVitals.ts'), + getFilePathToPackage('studiocms', 'src/integrations/webVitals/webVital.ts'),(or, if you intend to include every file in the directory, use a glob:)
..., ...getFilePathToPackage('studiocms', 'src/integrations/webVitals/**/*.ts'),• Scan the remainder of your
entryPointsblock (lines 129–244) for any other outdated paths and update them similarly.These changes are required to prevent TypeDoc from erroring out on missing files during CI.
🧹 Nitpick comments (9)
.vscode/settings.json (1)
1-31: Add or update project-level cSpell configuration to include “virtuals”The editor-only
.vscode/settings.jsonnow lists “virtuals” incSpell.words, but we didn’t find any repository-level cSpell config. To keep CI and local spelling checks in sync, please add “virtuals” to your shared config.• No
cspell*.jsonfiles were detected outside of.vscode/
• No"cspell"block was found inpackage.jsonTo remedy, either:
- Create or update a top-level
cspell.json(or.cspellrc.json) with:{ "cSpell.words": [ "virtuals", // …other custom words ] }- Or add a
"cspell"section topackage.json:{ // … "cspell": { "words": ["virtuals", /* … */] } }This will ensure “virtuals” isn’t flagged in CI or automation runs, matching the VS Code settings.
studiocms (2)
1-1: Block merge until release tasks are done (per PR TODO).The PR objectives call out: “Release packages, and update package.json versions.” Make sure to:
- Publish the beta.25 packages.
- Replace private commit-pinned URLs with the released semver (e.g., 0.1.0-beta.25) and remove temporary overrides.
I can help generate a focused diff once the release tag is known.
1-1: Plan i18n follow-ups triggered by Lunaria.Localized pages for the updated sources will be marked outdated. Ensure translation update tasks are queued so the site doesn’t show stale strings post-merge.
ec.config.mjs (1)
15-16: TS2305 addition is correct; optionally sort error codes for readabilityAdding 2305 (“module has no exported member”) aligns with the renamed exports in docs. Consider sorting the list to make future diffs cleaner.
- errors: [2353, 2339, 2307, 2379, 2305], + errors: [2305, 2307, 2339, 2353, 2379],src/content/docs/en/guides/upgrade/version-guides/0-1-0-beta-25.mdx (3)
15-15: Unused import: AsideAside is imported but not used. Safe to remove.
-import { Aside } from '@astrojs/starlight/components'
21-27: Tighten wording in Features bulletsMinor phrasing tweaks for clarity and consistency (capitalize Effect; avoid “new … new”).
- Refactor dashboard content management components to eliminate inline scripts and improve code reusability. - - Refactor usage of effect to utilize new enhanced utilities from new `@withstudiocms/effect` package. - - Updates to utilize new `@withstudiocms/component-registry` package. - - Migrate API routes to new createEffectAPIRoutes utility from `@withstudiocms/effect`. - - Optimize login page preview on Config page and first-time setup. - - Optimize `threejs` login page, ensuring fast page load. + - Refactor Effect usage to adopt enhanced utilities from the new `@withstudiocms/effect` package. + - Adopt the new `@withstudiocms/component-registry` package. + - Migrate API routes to the new `createEffectAPIRoutes` utility in `@withstudiocms/effect`. + - Optimize the login page preview on the Config page and during first‑time setup. + - Optimize the `threejs` login page for faster load times.
31-31: Capitalize OAuth and hyphenate “first‑time”Small copy edit for correctness.
- - Cleanup code, fix first time setup oauth, and cleanup old utils. + - Code cleanup; fix first‑time setup OAuth; clean up legacy utilities.typedoc.config.ts (1)
92-245: Optional: guard against future duplicates in entryPointsWrap the array in a Set when assigning to entryPoints to de‑dupe automatically. This is optional but future‑proofs the list.
- entryPoints: [ + entryPoints: Array.from(new Set([ /* … existing entries … */ - ], + ])),package.json (1)
90-92: Vite override compatibility verified
- A clean install and build completed successfully with the override pinned to
"vite": "^6.3.4", which resolves to vite 6.3.5 in your Astro/Starlight toolchain with no peer-dependency or plugin-API errors.- Likewise, the build output shows no regressions, and
pnpm why viteconfirms that all Astro integrations are using the expected 6.3.x series.Optional refactor:
• In yourpackage.json’s PNPM overrides section (the same area that currently annotates the Vite override), please expand the accompanying note to also reference the newly added
"@withstudiocms/component-registry": "https://pkg.pr.new/…@551a46e"
so future maintainers understand why this override is present.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (9)
.vscode/settings.json(1 hunks)ec.config.mjs(1 hunks)package.json(2 hunks)src/content/docs/en/guides/upgrade/version-guides/0-1-0-beta-24.mdx(0 hunks)src/content/docs/en/guides/upgrade/version-guides/0-1-0-beta-25.mdx(1 hunks)src/content/docs/en/how-it-works/effect.mdx(2 hunks)src/content/docs/en/how-it-works/sdk.mdx(0 hunks)studiocms(1 hunks)typedoc.config.ts(2 hunks)
💤 Files with no reviewable changes (2)
- src/content/docs/en/guides/upgrade/version-guides/0-1-0-beta-24.mdx
- src/content/docs/en/how-it-works/sdk.mdx
🧰 Additional context used
🪛 LanguageTool
src/content/docs/en/guides/upgrade/version-guides/0-1-0-beta-25.mdx
[grammar] 13-/components/Qu...13: There might be a mistake here./components/ReadMore.astro' import QuickUpdate from '
Context: ...dMore from '
(QB_NEW_EN)
[grammar] ~14-14: There might be a mistake here./components/QuickUpdate.astro' import { Aside } from '@astrojs/starligh...
Context: ...te from '
(QB_NEW_EN)
[grammar] ~22-~22: There might be a mistake here.
Context: ...ffect to utilize new enhanced utilities from new @withstudiocms/effect package. - ...
(QB_NEW_EN)
[grammar] ~22-~22: There might be a mistake here.
Context: ...rom new @withstudiocms/effect package. - Updates to utilize new `@withstudiocms/c...
(QB_NEW_EN)
[grammar] ~23-~23: There might be a mistake here.
Context: ...studiocms/effectpackage. - Updates to utilize new@withstudiocms/component-registry`...
(QB_NEW_EN)
[grammar] ~23-~23: There might be a mistake here.
Context: ...thstudiocms/component-registry` package. - Migrate API routes to new createEffectAP...
(QB_NEW_EN)
[grammar] ~24-~24: There might be a mistake here.
Context: ...registry` package. - Migrate API routes to new createEffectAPIRoutes utility from ...
(QB_NEW_EN)
[grammar] ~24-~24: There might be a mistake here.
Context: ...es utility from @withstudiocms/effect. - Optimize login page preview on Config pa...
(QB_NEW_EN)
[grammar] ~25-~25: There might be a mistake here.
Context: .../effect`. - Optimize login page preview on Config page and first-time setup. - Opt...
(QB_NEW_EN)
[grammar] ~31-~31: There might be a mistake here.
Context: ...time setup oauth, and cleanup old utils. - Consolidate table definitions into confi...
(QB_NEW_EN)
[grammar] ~32-~32: There might be a mistake here.
Context: ...idate table definitions into config and remove legacy tables file.
(QB_NEW_EN)
🔇 Additional comments (6)
.vscode/settings.json (1)
28-28: LGTM: adding "virtuals" to cSpell.words aligns with the new Virtuals namespace.Spelling noise reduced and placement keeps the list alphabetized. No further action needed here.
studiocms (3)
1-1: LGTM: submodule pointer updated cleanly to 551a46e.No structural issues in the superproject for this change alone.
1-1: Verify submodule-pinned dependency hashesThe path
studiocmsis a Git submodule directory, so you can’t read its commit viasedon a file. Instead, extract the SHA using Git and then ensure every#<hash>in yourpackage.jsonandpnpm.overridesstarts with that SHA prefix.From the repo root, you can run:
#!/usr/bin/env bash set -euo pipefail # 1) Read the submodule SHA for studiocms # - `git submodule status` outputs something like: " 551a46e301b5... studiocms" raw="$(git submodule status studiocms)" SUB_SHA="${raw##[ +]*}" # strip leading whitespace/+ then take the SHA SUB_SHA="${SUB_SHA%% *}" # drop everything after the SHA SUB_PREFIX="${SUB_SHA:0:7}" echo "Submodule SHA: $SUB_SHA (prefix $SUB_PREFIX)" # 2) Find your pin files files=() for f in package.json pnpm.overrides; do [[ -f "$f" ]] && files+=("$f") done if [[ ${#files[@]} -eq 0 ]]; then echo "No package pin files found (package.json or pnpm.overrides)."; exit 0 fi # 3) List all commit-hash pins and highlight mismatches echo "Pins referencing a commit hash:" rg -nP '#[0-9a-f]{7,40}' "${files[@]}" || true echo -e "\nMismatches (pins not starting with $SUB_PREFIX):" rg -nP '#([0-9a-f]{7,40})' "${files[@]}" \ | awk -v pfx="$SUB_PREFIX" -F'#' '$2 !~ "^"pfx' \ && exit 1 || echo "All pins match $SUB_PREFIX"• Make sure every
#<hash>in your overrides or package.json is prefixed by the first seven characters of the submodule’s SHA.
• Once you’ve confirmed no mismatches, you can safely merge knowing there’s no cross-SHA drift.
1-1: Ensure the docs submodule is initialized and references updatedIt appears our CI sandbox didn’t pull in the docs submodule, so the grep scan returned no matches. Please locally initialize or update the docs and then verify:
- Clone/init the docs submodule:
git submodule update --init --recursive path/to/docs- Search the populated docs for any remaining
convertToVanilla(references:rg -F 'convertToVanilla(' path/to/docs || echo "No lingering references"- Confirm that
runEffect(is used throughout:rg -F 'runEffect(' path/to/docs || echo "runEffect not found"- If you find any
convertToVanilla(occurrences, replace them withrunEffect(to match the beta.25 API.src/content/docs/en/how-it-works/effect.mdx (1)
7-9: Sidebar “Updated” badge — LGTMNice touch to surface recency in the UI.
src/content/docs/en/guides/upgrade/version-guides/0-1-0-beta-25.mdx (1)
17-17: QuickUpdate usage — LGTMThe callout fits upgrade pages and keeps the page skimmable.
There was a problem hiding this comment.
Actionable comments posted: 0
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
typedoc.config.ts (1)
107-129: Remove stalesrc/cli/index.tsentry from Typedoc configurationThe file
src/cli/index.tsno longer exists (verified viatest -f studiocms/packages/studiocms/src/cli/index.ts→ “cli/index.ts not found”), so its entry intypedoc.config.tsshould be removed to prevent broken documentation builds.• Location:
typedoc.config.ts, within the array at lines 107–129
• Action: delete the line referencingsrc/cli/index.tsSuggested diff:
--- a/typedoc.config.ts +++ b/typedoc.config.ts @@ Lines 107-129 - getFilePathToPackage('studiocms', 'src/cli/index.ts'),
♻️ Duplicate comments (1)
typedoc.config.ts (1)
99-99: Resolved: duplicate src/plugins.ts is no longer presentThe previous duplicate entryPoint for
src/plugins.tsappears fixed in this revision. Thanks for addressing it.
🧹 Nitpick comments (4)
typedoc.config.ts (4)
134-137: Route/script handlers: confirm they belong in the public docs
src/handlers/routeHandler.tsandsrc/handlers/scriptHandler.tsare listed. If these are internal glue layers and not part of the intended public API, consider removing them from entryPoints to keep docs focused and avoid churn when internals change.Proposed removal (only if they aren’t meant to be public):
- getFilePathToPackage('studiocms', 'src/handlers/routeHandler.ts'), - getFilePathToPackage('studiocms', 'src/handlers/scriptHandler.ts'),
100-100: types.ts still included as a public entry point — confirm intentIf
src/types.tsonly contains types re-exported elsewhere (e.g., fromsrc/index.ts) or is meant to be internal, documenting it directly can expose implementation details and duplicate pages. If it’s intentionally public, all good; otherwise remove it.Optional diff to remove:
- getFilePathToPackage('studiocms', 'src/types.ts'),
177-181: Avoid documenting data-heavy internals (passwords/usernames lists)Publishing docs for
virtuals/auth/utils/lists/passwords.tsand.../usernames.tsis likely noise for users and can bloat output. These look like internal data assets, not API. Recommend excluding them from TypeDoc entryPoints.Apply this diff:
- getFilePathToPackage('studiocms', 'src/virtuals/auth/utils/lists/passwords.ts'), - getFilePathToPackage('studiocms', 'src/virtuals/auth/utils/lists/usernames.ts'),
29-33: Make source links deterministic across versions
gitRevision: 'main'can cause source links to drift whenmainmoves. Consider parameterizing this with an env var (e.g., the studiocms submodule commit or a release tag) so beta.25 docs link to the exact sources used to generate them.Example change:
- gitRevision: 'main', + gitRevision: process.env.STUDIOCMS_GIT_REVISION ?? 'main',And set
STUDIOCMS_GIT_REVISIONin the build environment to the submodule SHA or release tag.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (1)
typedoc.config.ts(2 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
- GitHub Check: Redirect rules - studiocms-dev-docs
- GitHub Check: Header rules - studiocms-dev-docs
- GitHub Check: Pages changed - studiocms-dev-docs
- GitHub Check: Run Starlight Link Check
🔇 Additional comments (1)
typedoc.config.ts (1)
98-101: Please verify the exact filename casing for the new oAuthUtils entry pointOn case-sensitive filesystems (e.g., Linux CI), any mismatch in casing will break the TypeDoc build. Since the submodule contents aren’t available in this environment, please run the following locally to confirm—or adjust—the filename:
- Expected path:
studiocms/packages/studiocms/src/oAuthUtils.ts- If the file is actually named
oauthUtils.ts,OAuthUtils.ts, or similar, update the import here:getFilePathToPackage('studiocms', 'src/oAuthUtils.ts'),- Once confirmed, ensure all CI jobs and documentation refer to the exact same casing.
Updates docs for beta.25
TODO before merge
Summary by CodeRabbit
Documentation
Chores