All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
version14_uinever wired up@version14/ui/styles.css— the component library installed and typechecked fine, but nothing imported its precompiled CSS, so every scaffolded component rendered unstyled regardless of which styling engine (Tailwind, CSS Modules, Panda, or none) was picked. The import is now injected directly into the app's real entry point (src/main.tsxforreact_app,src/app/layout.tsxfornextjs_base) byversion14_uiitself, so it no longer depends onpanda_csshaving run.version14_uinever added@ark-ui/reactas a dependency even though every@version14/uicomponent wraps an Ark UI primitive at runtime and in its type declarations — added explicitly, matching theark_uigenerator's own convention.- Bumped the
@version14/uipin to0.8.0, which fixes the published package itself missingdist/styles.cssfrom its npm tarball (present in0.7.2and earlier), and@pandacss/devto^1.11.4to match its new peer range. V14Example.tsxnow actually rendersButtonimported from@version14/ui/buttoninstead of static placeholder text, demonstrating the library's per-component subpath imports.- Added two
tools/test-flowfixtures coveringversion14_uion Next.js and on a non-Panda styling engine — the styles-import bug was invisible to the previous test coverage, which only ever combinedversion14_uiwithpanda-csson React+Vite.
- Decorator-based API validation and OpenAPI documentation flow (#91). When
scaffolding an Express backend, dot now offers a
@Controller/@Get/@Bodydecorator API with strongly-typed Zod schemas, request/response validation middleware, and an OpenAPI v3 spec served at/docs. Adapters ship for Clean Architecture, MVC, and Hexagonal projects, and aRouterAdapterinterface keeps the system extensible to non-Express frameworks. See docs/user/decorators.md for the quickstart. - Classic JSDoc-driven Swagger fallback (
express_swagger_jsdoc). When the decorator option is declined, dot still wiresswagger-ui-expressat/docsand ships@openapiJSDoc blocks on every generated handler (/health,/auth/*) so the spec is fully populated out of the box. The Swagger UI is therefore always available on a generated Express app — decorators only change how the spec is built. auth_better_authno longer emits an unusedsrc/routes/auth.route.ts; the BetterAuth catch-all (toNodeHandler(auth)) is mounted directly insrc/app.ts.- Case-level cache for
tools/test-flow. A SHA-256 fingerprint over the fixture, every involved generator's source tree, the entireflows/directory,pkg/dotapi/, andtools/test-flow/itself is computed once scaffolding has resolved. On a hit, post-gen + test commands are skipped with acache: HITline in the report. Typical full warm runs go from ~7 min to ~4 s. Failed runs intentionally leave no cache entry. Disable with-no-cacheor by removing.test-flow-cache/. dotapi.Command.NoCachefield. Commands are cacheable by default; generator authors opt out by settingNoCache: trueon the relevantdotapi.Command{}. The case-level cache only short-circuits a case when no PostGen/Test command involved hasNoCache: true. The Background dev-server probe inreact_app(pnpm exec vite) ships withNoCache: trueso a real boot is verified on every run. Cache schema bumped to v2 — existing.test-flow-cache/entries are invalidated automatically.tools/test-flowis now fail-fast by default — it stops at the first failing case so the failure surfaces immediately. Pass-keep-goingto run every case (useful for triaging multiple unrelated failures or for CI runs that want a complete report). The summary line distinguishes total / failed / not run, e.g.✗ 1/18 cases failed (10 not run).