Repository navigation
Conversation
Zero v2 is now First. Zero 0.8 keeps the name Zero: it is retired, existing Spaces keep serving and publishing it, and Zero 0.9 is its last release apart from security fixes, for moving apps to First. scripts/rename-to-first.mjs applies the rename and is idempotent, so a branch picks it up by merging and running it again. It moves the First page to /first and the CLI page to /cli/first, renames v2 names in authored content, and keeps every Zero 0.8 name and every name production already ships. /zero redirects to /first. Hand edits on top: the Zero 0.8 page says Zero is retired, the glossary defines both, and links that said "an older Zero app" now say Zero 0.8.
|
@indent please review. |
|
3 potential issues found:
↑ Select any checkbox above to have Indent auto-fix the issue
All CI checks passed on
Select any unchecked box below to run or rerun that agent. Full resultsIndent Review Agent
|
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the
|
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. |
| { from: "/runtimes/zero", to: "/zero", status: 301 }, | ||
| { from: "/runtimes/zero", to: "/first", status: 301 }, | ||
| { from: "/sdk", to: "/api/sdk", status: 301 }, | ||
| { from: "/zero", to: "/first", status: 301 }, |
There was a problem hiding this comment.
🟡 Bug · Live /cli/zero URL 404s after the rename, with no redirect
/docs/cli/zero is live on main and this PR moves the page to cli/first.mdx, but only /zero gets a redirect. Old bookmarks, search results and docs-corpus links to /docs/cli/zero/ will 404. Add a /cli/zero to /cli/first 301 (making room in the redirect budget) and a matching verify-routes check.
Found by Indent Review Agent
|
|
||
| ## Publishing a hand-ported app | ||
|
|
||
| Publish the 0.8 project, not a hand-edited candidate. A Space's data moves with the app: publishing a `zero.config.ts` app to a Space that still runs Zero 0.8 is refused with `zero_migration_required`, because it would leave the posts, users, and sessions behind. Once a publish has migrated the Space, edit and publish the current Zero app as usual. | ||
| Publish the 0.8 project, not a hand-edited candidate. A Space's data moves with the app: publishing a `first.config.ts` app to a Space that still runs Zero 0.8 is refused with `zero_migration_required`, because it would leave the posts, users, and sessions behind. Once a publish has migrated the Space, edit and publish the current Zero app as usual. |
There was a problem hiding this comment.
⚪️ Nit · Zero 0.8 page still calls the migrated app "the current Zero app"
After migration the app is a First app, so "the current Zero app" is wrong here. Change to "the First app" and protect the phrase in the script.
Found by Indent Review Agent
|
Review of 8316f41 is done, with two findings in the banner:
I didn't run the script or the build; CI covers that. I didn't find any other problems in the script or the route changes. |
No First app exists in production, so nothing documents First at a published URL today. /docs/zero now documents Zero 0.8 (the page moves from /zero-migrate, which was never published), First is at /first, and the redirect rules are unchanged from the base branch.
|
Reviewing f5e90b7 now. I'm checking that |
|
The review of f5e90b7 is still running. I'll post any new findings in the banner and resolve the two earlier ones if they no longer apply. That covers the |
|
Review of f5e90b7 is done. Two earlier findings are still open and I found one new nit.
|
|
Closing. First's docs are now a separate site, so spacefast.com/docs gets no First section and no rename. #113 marks Zero retired instead. |
Zero v2 is now First. Zero 0.8 keeps the name Zero. It's retired: existing Spaces keep serving and publishing, and Zero 0.9 is its last release apart from security fixes, for moving apps to First.
This is stacked on #107, which introduced the Zero v2 pages. It merges into #107's branch, which ships with the v2 release.
How
scripts/rename-to-first.mjsdoes the rename, and running it again changes nothing. I checked that two ways: a second run on the result reportsmoved 0 file(s), rewrote 0 file(s), and on a fresh checkout of #107 it produced the same tree apart from the hand edits listed below. A branch picks up the rename by merging and running the script again.The script:
content/(dynamic)/zero.mdxtofirst.mdx,content/cli/zero.mdxtocli/first.mdx, thencontent/(dynamic)/zero-migrate.mdxtozero.mdx, each only while its target is free;content/,evals.yaml,redirects.ts), rewrites v2 names: the product name,first.config.ts,from "first",sf first …,--runtime first,/wp-json/first/v1,first-identity,first-signature,.first/,first/client/,first/_generated/migrations/,first.gen.ts,SPACEFAST_FIRST_BIN, and the/firstand/cli/firstlinks;content/cli/reference.md,content/(reference)/errors,changelog,setup,_pricing) andgenerated/. Those come from the exporter, so they change when it re-runs against the renamed CLI and API.Hand edits after the script:
/zero) is now titled "Zero 0.8". It says Zero is retired and First replaces it, that existing Spaces keep working, and that 0.9 is the last release.Routes
No First (Zero v2) app exists in production, so nothing that documents First is published today. The live site still serves the Zero 0.8 docs:
/docs/zero301s to/docs/zero-runtime/("Dynamic sites with Zero",capsule()inserver/index.ts), and/docs/cli/zero/lists the 0.8sf zero abilities|call|types|ls|importcommands./docs/firstand/docs/zero-migrate404 today. So this adds no redirects.redirects.tsandscripts/redirect-rules.mjsmatch the base branch./first: First, the page Teach Zero v2 and move Zero 0.8 to one migration page #107 had at/zero./cli/first: thesf firstcommands./zero: Zero 0.8. The page Teach Zero v2 and move Zero 0.8 to one migration page #107 had at/zero-migrate(never published) moves here, titled "Zero 0.8". It says Zero is retired, existing Spaces keep working, and Zero 0.9 moves apps to First. The existing/runtimes,/runtimes/zero,/apps/zeroand/zero-runtimeredirects already land on/zero, which keeps the published Zero URLs on Zero.Names kept
Zero 0.8 names, or names production already ships:
"runtime": { "kind": "zero" },@spacefast/zero,@spacefast/zero/client,--from zero-0.8;createSpaceZeroToken,listSpaceZeroAbilitiesand/v1/spaces/{id}/zero/token;zero/storage-*and thezero-storagecategory;sfz_table prefix, the refusedZERO_env prefix, andversion.zero.migration.status;zero_mixed_generationandzero_migration_required, whose reference pages are generated;The pricing fixture's "PHP and Zero" labels mirror the API's pricing document, so they change with the API. Usage and billing prose now says "PHP, First and SQL"; Zero 0.8 apps run as PHP.
Hold: check against the shipped names
Don't merge until the zero rename's "Shipped names" table lands. The zero thread confirmed every name below as expected from the rename mapping and checked it against the prod control plane and engine (none of the v2 names ships in prod). The zero
rename-to-firstbranch has no commits yet. When its table lands I diff it against this list, change the script's table where they differ, and re-run the script. The zero thread also expects thezero/storage-*,createSpaceZeroToken,sfz_,@spacefast/zero/client,runtime.kind: "zero"andZERO_names to stay.These names have to match what the monorepo and zero renames ship. I've asked both:
sf first …for every v2 command, and--runtime first;first.config.ts;SPACEFAST_FIRST_BIN;/wp-json/first/v1;firstimport module;first-identityplugin andfirst-signatureheader;.first/andfirst/_generated/migrations/;FIRST_joins the refused env prefixes.If either ships a different name, the script's table changes and a re-run updates the docs.
Checks
Run locally:
bun run check: 0 errors.bun run validate: passes.bun run build: passes. The routing rules are the base branch's.bun run test:docs: 37 pass. "Database gives the First prerequisite" and the glossary test now cover First, and the glossary test also requires a Zero entry.bun run audit: passes.bun run verify:routes: passes.bun run verify:public-safety: passes.Open in [code]smith · Need help on this PR? Tag
@codesmith-botwith what you need.