Skip to content

Releases: lloydrichards/stack-effect

stack-effect@0.18.0

Choose a tag to compare

Minor Changes

  • f820f29: Target names now support nested directories while keeping npm package names flat.

    For example, package/sdk/client creates packages/sdk/client with the name @repo/sdk-client, and server/sdk/api creates apps/sdk/server-api with the name server-sdk-api. Additions use the same target name to find the existing package. Conflicting package names and overlapping package roots are rejected before files are written.

    Generated workspaces register package owners explicitly so nested template manifests do not interfere with dependency installation.

  • 1665149: Catalog templates can select content based on the modules attached to a target with module and noModule conditions.

    Publishable libraries now use one package.json for workspace use and npm publication. Build before importing the library in the workspace, use npm run dev to watch changes, and run npm run pack or npm publish from the library directory.

Patch Changes

  • 674dea4: Skip unsupported target kinds when generating catalog authoring workspaces for Deno.

@stack-effect/author@0.3.0

Choose a tag to compare

Minor Changes

  • f820f29: Target names now support nested directories while keeping npm package names flat.

    For example, package/sdk/client creates packages/sdk/client with the name @repo/sdk-client, and server/sdk/api creates apps/sdk/server-api with the name server-sdk-api. Additions use the same target name to find the existing package. Conflicting package names and overlapping package roots are rejected before files are written.

    Generated workspaces register package owners explicitly so nested template manifests do not interfere with dependency installation.

  • 1665149: Catalog templates can select content based on the modules attached to a target with module and noModule conditions.

    Publishable libraries now use one package.json for workspace use and npm publication. Build before importing the library in the workspace, use npm run dev to watch changes, and run npm run pack or npm publish from the library directory.

stack-effect@0.17.0

Choose a tag to compare

Minor Changes

  • 7f1b883: Generated projects and catalog authoring now use stable Effect 4.0.0.

    The author package requires effect@4.0.0. Update imports from effect/unstable/* to effect/*, using effect/http-api for HTTP API modules. Effect.partition now returns [successes, failures].

@stack-effect/author@0.2.0

Choose a tag to compare

Minor Changes

  • 7f1b883: Generated projects and catalog authoring now use stable Effect 4.0.0.

    The author package requires effect@4.0.0. Update imports from effect/unstable/* to effect/*, using effect/http-api for HTTP API modules. Effect.partition now returns [successes, failures].

stack-effect@0.16.0

Choose a tag to compare

Minor Changes

  • 3626e79: Compose catalogs with a repeatable --catalog flag. init and create save the selection to stack.effect.json, and later commands reuse it.

    For example, create a catalog project from the hosted author catalog:

    bunx stack-effect@latest create my-catalog --yes \
      --catalog official \
      --catalog author=https://stack-effect.lloydrichards.dev/registry/v1/author.json \
      --target catalog/registry:catalog-starter

    add, graph, plan, and schema read the saved catalogs list and reject a --catalog set that differs from it. Projects without catalogs keep using the official catalog. A selection without official gets no official tool defaults or Git module. --yes runs only official Finalize scripts; pass --trust to also run scripts from custom catalogs. graph labels each definition with its source when custom catalogs are selected, and plan output lists the loaded sources.

  • 0b3946a: CLI commands now load the official catalog from the Stack Effect registry, so new targets and modules arrive without upgrading the CLI.

    init, create, add, graph, plan, and schema fetch the current catalog before any other work; --help and --version work offline. If the registry is unreachable, times out, or returns a server error, commands fall back to the last validated catalog in the user cache and print a warning to stderr:

    bunx stack-effect@latest add --target package/db:package-db-sqlite
    # catalog official (https://stack-effect.lloydrichards.dev/registry/v1/catalog.json): using cached data last validated at 2026-09-29T08:00:00.000Z.

    With no cached copy, the command stops before writing any files. New projects also include a $schema link in stack.effect.json for editor completion.

Patch Changes

  • 6e56c04: Report a missing or invalid stack.effect.json with its path instead of a generic "Config not found" error.

@stack-effect/author@0.1.0

Choose a tag to compare

Minor Changes

  • 638bb6d: Publish @stack-effect/author to define, validate, and build Stack Effect catalogs outside this repository.

    npm install @stack-effect/author effect@4.0.0-rc.117 @effect/platform-node@4.0.0-rc.117
    const { json } = await Effect.runPromise(
      buildCatalog(
        { targets: [targets], modules: [modules] },
        { catalogId: "acme", root: new URL("./", import.meta.url) },
      ).pipe(Effect.provide(NodeServices.layer)),
    );

    Define targets and modules with defineTargets and defineModules, keep file bodies in template files, and build a deterministic v1 catalog document with buildCatalog. A catalog that extends the official one declares requires: ["official"] and validates against the document from loadOfficialCatalog. Finalize scripts are rejected unless you pass finalizeScripts: "allow", and consumers run them only with consent. The package ships ESM with bundled types and needs effect@4.0.0-rc.117 as an exact peer.

stack-effect@0.15.0

Choose a tag to compare

@lloydrichards lloydrichards released this 27 Sep 12:53

Minor Changes

  • 36bbf30: Scaffold Deno projects with Deno-managed dependencies, tasks, and standalone executable builds across supported targets and modules. Turbo workspace generation remains unavailable with Deno.

Patch Changes

  • 506a591: Keep generated Effect packages and APIs compatible with fresh Bun and pnpm installs.
  • ef7f5dc: Generated Nix shells now provide Bun 1.4.2 and Node 24.
  • 8ca68c2: Reject stale scaffolding plans before previewing or applying repository changes.
  • 7ab827d: Keep optional CLI switches disabled when omitted, generate a Vite Plus toolchain compatible with the Effect compiler plugin, and keep terminal chat compatible with the generated Effect dependency baseline.

stack-effect@0.14.0

Choose a tag to compare

Minor Changes

  • 1cb5192: Add an optional Husky and lint-staged developer-experience module.

Patch Changes

  • d3529bd: Generated Todo recipes no longer include test files.
  • 247daba: Generated server TypeScript configurations no longer compile source files directly from the optional AI package.
  • 889802b: Add guides for building a first project, understanding repository changes, and using Stack Effect safely with coding agents (#241, #242, #243).
  • c78ab14: The Builder preview now highlights JavaScript, dotenv, and Dockerfile contents correctly.
  • b0f0c7f: Generated TypeScript projects now enable Effect's recommended and Effect-native diagnostics in language-service and Oxlint setups.
  • d49dd22: Generated modules now use Effect-native platform, concurrency, schema, and runtime APIs without strict diagnostic warnings.

stack-effect@0.13.2

Choose a tag to compare

Patch Changes

  • c3a3545: Generated TypeScript 7 workspaces now use the tested TSGo, Vite+, Oxfmt, Oxlint, and Vitest toolchain versions.
  • ff696ff: TypeScript 7 workspaces now activate the Effect language-service plugin from the root tsconfig.
  • 8b26ecf: TypeScript 7 projects now configure VS Code to use the patched workspace TSGo server.

stack-effect@0.13.1

Choose a tag to compare

Patch Changes

  • c18bb82: Nx workspaces now support TypeScript 7 without failing during project discovery.