v0.41.3 · A fresh scaffold works

All releases

A project made with create-refrakt builds with no errors, and the HTML starter runs the plugins it is configured with. Building plan content no longer slows down with the length of the repository's git history, and a sandbox receives the design tokens the pipeline injects.

Changes

  • Building plan content no longer slows down with the length of the repository's git history (BUG-043). History extraction now runs one git log over the plan directory and one git cat-file --batch for file contents, where it used to start one git log --follow per file and one git show per commit and file. In this repository that is 7 git processes instead of about 5,200, and the plan site builds in about 8 seconds instead of about 170 on a full-history clone. Renames inside the plan directory now carry the whole history to the new path, so a renamed entity's timeline includes the commits before its rename. The pipeline also runs git from the plan directory instead of the process's working directory, and content timestamps now walk only the commits that touched the content directory.
  • A freshly scaffolded project now builds with no errors. The SvelteKit, Astro, Eleventy, Next and Nuxt starters linked their nav item to getting-started instead of docs/getting-started, so every page reported an unresolved nav slug (BUG-035). The HTML starter's build.ts now passes the configured plugins to loadContent, along with projectRoot and the site config, so plugin pipeline hooks and declarative registers run and the cross-page features that depend on them are no longer empty (BUG-036). Its tsconfig.json now uses "module": "ESNext", so tsc accepts the import(..., { with: { type: "json" } }) in build.ts.
  • Design tokens now reach the sandbox iframe (BUG-034). The design plugin, and the editor preview, put a sandbox's design-context tokens in a child <meta data-field="design-tokens"> that the rf-sandbox behaviour never read, so the iframe always got no tokens. They now set data-design-tokens on the rf-sandbox element, which is where the behaviour reads them. This is a visible change: on a site with a default design-context, every sandbox now renders with that context's fonts, colours and spacing variables, and a Tailwind sandbox gets its theme config.