Releases: bloxy-studios/groot
Releases · bloxy-studios/groot
Release list
create-groot@1.9.0
Minor Changes
- #73
762a77aThanks @bloxy-studios! - The backend slot doubles and the v1.1 wave completes: Supabase joins Convex, via the officialsupabase initrun as a postCommand inside groot's package shell (init has no directory argument — it writessupabase/config.tomlinto its cwd). Every fact verified in the cli monorepo's Go sources and by running the published 2.109.1 binary: init is non-interactive by default in 2.x (the IDE prompts moved behind an opt-in--interactiveflag that also requires a TTY), pins WORKDIR to avoid parent-project walk-up, and shells nothing — the npm wrapper is a 3-file shim over platform binaries shipped as optionalDependencies, so neither the EBADDEVENGINES staging class nor bun's postinstall trust list applies. groot's shell ships@repo/backendwithdev: supabase start/stop/typegenscripts, the CLI pinned as a devDependency, and adatabase.types.tsplaceholder matchinggen typesoutput for an empty schema — apps deep-importing the Database type typecheck before Docker ever runs (the Convex vendored-stubs pattern). The stitch renames config.toml's cwd-derivedproject_idto the workspace name (it names Docker containers — two groot workspaces would collide as "backend"), and backend env plumbing is now per-backend: Supabase frontends get<prefix>SUPABASE_URL=+<prefix>SUPABASE_ANON_KEY=pairs named exactly like the Convex lines, bare React Native unprefixed. Docker, login/link, and real typegen stay deferred to next-steps output. Doctor gains config and types checks; the schema enum growssupabase; manifest stays version 1.
create-groot@1.8.0
Minor Changes
- #71
2b91a3eThanks @bloxy-studios! - The mobile slot doubles: bare React Native joins Expo, via the official@react-native-community/cli@20 init(community template, every flag verified in the published 20.2.0 bundle). With--pm bun --skip-install --install-pods false --skip-git-initthe init is fully non-interactive — the template installs via bun into the CLI's own tempdir,HelloWorldplaceholders become the app name, and_gitignorelands renamed. The generate runs staged: the CLI's registry lookup shellsnpm config get registry, which hard-fails on the workspace's bundevEnginesguard in-tree (EBADDEVENGINES, reproduced) and only survives by a courtesy try/catch that forces the default registry — staging dodges the guard and honors the user's real registry config. The stitch stage rewrites the template's emptymetro.config.jsobject into monorepo wiring (watchFolders: [workspaceRoot]+resolver.nodeModulesPathsfor app and root — bare metro resolves nothing outside the app dir, unlike Expo ≥ SDK 52), marker-gated so hand-rolled configs are never clobbered, with a doctor check watching the wiring persistently. Convex-linked workspaces give bare RN the plainCONVEX_URL=placeholder (no public-env mechanism upstream). Port 8081 stays the Metro default, shared with Expo per the same-slot rule. Schema enum growsreact-native; manifest stays version 1.
create-groot@1.7.0
Minor Changes
- #69
9b4e6c6Thanks @bloxy-studios! - The api slot gets its second generator-backed choice: Fastify, via the officialfastify-cli@8 generate(ESM TypeScript template, every flag verified in the published 8.0.0 bundle). The generator is fully non-interactive but refuses existing directories and derives the package name throughnpm init -y— an npm call that trips the workspace's bundevEnginesguard (EBADDEVENGINES) if run in-tree, so groot stages the generate in a disposable directory under the OS tempdir and moves the result into place (the trunk's temp-sibling pattern, generalized asstagedGeneration). groot then overlays a bun-nativesrc/server.tsmodeled on fastify-cli's own eject template (register the autoload app plugin, listen on :3001). The stitch stage swaps the template's Node-centricfastify start/npm runscript chains for the bun set —dev: bun --watch src/server.ts,build: tsc(dist/ joins turbo's cached outputs),test: bun test— marker-gated so hand-rolled scripts are never clobbered. @fastify/autoload ≥ 6 detects bun and loads the .ts plugins/routes natively; bun's node:test shim runs the template's test suite as-is. Doctor gains port-drift and app-plugin checks; the schema's framework enum growsfastify; manifest stays version 1.
create-groot@1.6.0
Minor Changes
- #66
b82035aThanks @bloxy-studios! - The web wave completes: Nuxt and Vite join the web slot, bringing it to seven choices (Next.js, SvelteKit, TanStack Start, Astro, React Router, Nuxt, Vite). Nuxt rides the officialcreate-nuxt@3with every non-interactive-required arg passed explicitly (the CLI enforces dir + template + packageManager + gitInit in non-TTY shells — verified in source), templateminimal, port 3000,NUXT_PUBLIC_CONVEX_URLenv plumbing, and.output/turbo-cached. Vite ridescreate-vite@9with thereact-tstemplate pinned,--no-interactive --no-immediate(9.x's immediate mode would install and start dev), port 5173, andVITE_CONVEX_URL. Both get doctor config checks. Schema framework enum growsnuxtandvite; manifest stays version 1.
create-groot@1.10.0
Minor Changes
- #75
642165fThanks @bloxy-studios! - Milestone v1.2 opens:groot init --github(+--public) creates and pushes your repository the moment the workspace is planted —gh repo create <name> --private|--public --source=. --remote=origin --pushafter verify's initial commit, with every flag and failure mode verified against the published gh sources and the real 2.96.0 binary. The ordering fix makes the hard preconditions usage errors before anything generates:--githubconflicts with--no-git,--publicrequires--github, and the git identity must exist up front (gh's--pushhard-errors on a commit-less repo, so the identity downgrade plain init applies becomes a refusal here). Everything after generation degrades instead of failing: gh missing from PATH, gh unauthenticated (auth statusexit 1, create exit 4), or a failed create each print the reason and the exact manual commands (gh auth login, the fullgh repo create …invocation) as numbered next steps — the workspace is valid either way, so the run exits 0. The plan summary, dry-run output, and next-steps report all carry the GitHub line; publishing logic lives in a new engine module with hermetic fake-gh tests (PATH shims, no network).
create-groot@1.5.0
Minor Changes
- #64
a1a7712Thanks @bloxy-studios! - React Router (framework mode) joins the web slot —groot init --web react-routerandgroot add react-routergrow the Remix successor from the officialcreate-react-router@8(--package-manager bun --no-git-init --no-install --no-agent-skills --yes, verified against the published source). The--no-agent-skillsflag suppresses v8.2's new step that copies React Router's own SKILL.md into projects — same policy as TanStack's--no-intentand Astro's--no-ai. Port 5173 (Vite default, shared with SvelteKit per the same-slot precedent),VITE_CONVEX_URLenv plumbing,react-router build'sbuild/output turbo-cached, and doctor checks the framework-mode config. Schema framework enum growsreact-router; manifest stays version 1.
create-groot@1.4.0
Minor Changes
- #62
05c3fe9Thanks @bloxy-studios! - Astro joins the web slot —groot init --web astroandgroot add astrogrow an Astro app from the officialcreate-astro@5(--template minimal --no-install --no-git --no-ai --skip-houston --yes, all flags verified against the published source). Port 4321 (astro dev's built-in default) is the matrix's only unique web port. Convex env plumbing writesPUBLIC_CONVEX_URL(Astro'simport.meta.env.PUBLIC_*client prefix),astro build'sdist/is turbo-cached, and doctor checks the astro config. Documented caveat: under--yescreate-astro silently redirects non-empty targets to a random directory — unreachable behind groot's fresh-destination guarantee, and now written down. Schema framework enum growsastro; manifest stays version 1.
create-groot@1.3.0
Minor Changes
- #60
9b75defThanks @bloxy-studios! - TanStack Start joins the web slot —groot init --web tanstack-startandgroot add tanstack-startgrow a Start app from the official@tanstack/cli(tanstack create, pinned to the 0.69 minor), fully silenced:--framework React --package-manager bun --no-git --no-install --no-examples --no-toolchain --no-intent --yes(all flags verified against the published CLI source). Port 3000 rides the template's own dev script — same default as Next, with the standard collision warning coveringadd --pathcoexistence — and doctor gains vite-config and dev-script-port checks. The template's plainvite buildoutput (dist/) is turbo-cached. Schema framework enum growstanstack-start; manifest stays version 1.
create-groot@1.2.0
Minor Changes
- #58
8d4e1daThanks @bloxy-studios! - Electron joins the desktop slot —groot init --desktop electronandgroot add electrongrowapps/desktopfrom@quick-start/create-electron(electron-vite's scaffolder: react-ts template,--skipfor full silence; Forge's generator force-installs and can't be silenced). No declared dev port: electron-vite's renderer server is non-strict and self-wiring, unlike Tauri's contractual 1420. Turbo caches electron-vite'sout/build. Bun lifecycle finding (verified empirically in E2E on bun 1.3.14): electron's runtime-download postinstall is NOT default-trusted — the stitch stage now writestrustedDependencies: ["electron"]into the workspace root sobun installproduces a runnable app, andgroot doctordetects a blocked runtime with abun pm trust electronfix. Schema framework enum growselectron; manifest stays version 1.
create-groot@1.1.0
Minor Changes
- #56
fa79194Thanks @bloxy-studios! - New desktop slot with the Tauri v2 adapter — the first slot added since the original matrix, opening milestone v1.1.groot init --desktop tauri(or the new "Desktop app?" prompt) andgroot add taurigrowapps/desktopfrom the officialcreate-tauri-app(react-ts template, bun manager, workspace-derived bundle identifier), keeping the template's own coupled dev port 1420 (Vite strictPort + tauri.conf.json devUrl — unique in the matrix). Rust is only needed at dev time: scaffolding andbun installwork without it, next-steps point at rustup, andgroot doctorgains desktop checks (tauri config presence, devUrl/port consistency, a cargo warn, vite config tripwire). Additive manifest change: the schema's slot/framework enums growdesktop/tauri— existing manifests stay valid,versionstays 1.