fix(cli,admin): runtime robots.txt + sitemap.xml, no sync meta when realtime is off, api index edit, /_x locale - #530
Merged
Conversation
…ealtime is off, api index edit, /_x locale
- cli: the web role (x dev, runRole) serves GET /robots.txt and GET /sitemap.xml from the new
siteSeo() — public site/ routes, meta noindex excluded, prerender() expanded, absolute against
APP_URL, else SITE_ORIGIN, else the request origin; production allows, anything else disallows.
The scaffolded prerender.ts writes the same siteSeo() answer, so export and process agree.
- cli: realtime.enabled false -> no ultimate-sync meta, no sync-worker/page-boot routes or scripts.
- cli: x g job/task no longer nests a second `jobs: [` into a list already one entry per line
(reproduced on examples/dummy after the list wraps); lists are searched inside defineApi({ only.
- admin: /_x renders its tabs and questions in the framework locale, not the app's ambient one
(an es-co app read ⟦dev.panel.mail.title⟧).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. Note Currently processing new changes in this PR. This may take a few minutes, please wait... ⚙️ Run configurationConfiguration used: Repository: developerz-ai/ultimate/.coderabbit.yml Review profile: ASSERTIVE Plan: Essentials Run ID: 📒 Files selected for processing (18)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
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.
Four bugs reported by an app team, for 22.2.2. Each has tests that were written first and failed before the fix.
1.
robots.txtandsitemap.xmlfrom a running web roleOnly the static export wrote these files. A
ROLE=webcontainer answered 404 for both, and an app cannot add a non-page GET route.siteSeo()(packages/cli/src/site-seo.ts, exported from@ultimat3/cli) builds both from the route table:site/routes only (nopolicy)metahasrobots: { index: false }is left outprerender()(the static export passes the pages it emitted instead)buildRobotsstays fail-closed: production allows the crawl and names the absolute sitemap, anything else isDisallow: /seoRoutes()mountsGET /robots.txtandGET /sitemap.xmlinx devandrunRole. URLs are absolute againstAPP_URL(the origin the runtime already names for OAuth and sync), elseSITE_ORIGIN, else the request's own origin. Responses arepublic, max-age=3600.apps/web/prerender.tsnow writessiteSeo()'s files, so the export and the process serve the same bytes.wiki/SEO.md: past 50,000 URLs the web role serves the index but not the/sitemap-N.xmlparts.2. No
ultimate-syncmeta when realtime is offpageSync(..., realtime)returns no head, routes or scripts whenrealtime.enabledis false. With no meta the page runtime never dials. Split deployments where web and sync run separately are unchanged: the node is still reachable through the ingress.3.
x g taskcorruptedapps/web/api/index.tslistOffound the key line by searching backwards from the character after[. When a list is already one entry per line, that character is the newline, so the search landed on the first item's line. The rewrite then nested a secondjobs: [and left the old]behind. Reproduced with the real generator on a copy ofexamples/dummy: fourx g taskruns are enough for the list to wrap. After the fix the same run produces one clean list. Lists are also now searched only insidedefineApi({.4.
/_xshowed⟦dev.panel.*⟧The framework catalog is registered under
enonly, on purpose. The dev shell (<html lang="en">) translated through the app's ambient locale, so an app defaulting toes-cogot raw keys. The shell now reads the catalog underFRAMEWORK_CATALOG_LOCALE.bun run verify: 14/20 passed, 6 skipped.coverage-gate --package cli|adminpasses.🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.Summary by CodeRabbit
robots.txtandsitemap.xmlgeneration for static exports and web deployments. Sitemaps include eligible public pages and prerendered dynamic pages; larger sitemaps use an index. Robots rules vary by environment.