Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions .changeset/effect-foldkit-411.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
"@triplex-build/triplex": minor
"@triplex-build/triplex-sql": minor
"@triplex-build/triplex-sqlite": minor
"@triplex-build/triplex-postgres": minor
"@triplex-build/triplex-testkit": minor
"@triplex-build/triplex-cli": minor
"@triplex-build/triplex-http": minor
---

Require the tested Effect 4.1.1 peer and align the platform, SQL, and Vitest
companions. Upgrade the dashboard and embedded documentation explorer to Foldkit
0.170.0 and its Vite plugin to 0.29.0, removing the previous adapter overrides and
peer exceptions now that Foldkit accepts Effect 4.1.

Require Node.js 22.19.0 or newer for the CLI to match the Node platform adapters.

Refresh served OpenAPI snapshots for Effect 4.1 schema deduplication and encoded
query-parameter schema generation.
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Triplex is a pre-1.0, Effect-native fact database for TypeScript. Read

## Setup and checks

Use Node.js 22 or newer and the pinned pnpm 10.11.0:
Use Node.js 22.19.0 or newer and the pinned pnpm 10.11.0:

```sh
corepack enable
Expand Down
27 changes: 18 additions & 9 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Contributing

Triplex uses Node.js 22 or newer and pnpm 10.11.
Triplex uses Node.js 22.19.0 or newer and pnpm 10.11.

```bash
pnpm install --frozen-lockfile
Expand Down Expand Up @@ -51,15 +51,24 @@ when a Changeset mixes private and publishable packages.

## Dependency compatibility

The workspace tests Effect 4.0.3 with Foldkit and `@foldkit/ui` 0.168.0 and
`@foldkit/vite-plugin` 0.27.1. These Foldkit releases declare exact Effect 4.0.0 peers;
the plugin also pins the Node adapters to 4.0.0. `pnpm-workspace.yaml` allows only
4.0.3 for those specific package peers and overrides only the plugin's two adapter
dependencies. The browser adapter is an explicit catalog dependency of both the
dashboard and the documentation workspace. Remove these exceptions when upstream
peer ranges accept the tested patch. Peer checking remains enabled.
The workspace tests Effect and its platform, SQL, and Vitest companions at 4.1.1,
with Foldkit and `@foldkit/ui` 0.170.0 and `@foldkit/vite-plugin` 0.29.0.
These Foldkit releases accept Effect `~4.1.0`, including the tested 4.1.1 patch;
no adapter overrides or peer exceptions are needed. The browser adapter is an
explicit catalog dependency of both the dashboard and the documentation workspace.
The Node platform adapters and Foldkit Vite plugin require Node.js 22.19.0 or
newer. Public packages use the same catalog for their exact Effect peer. Peer checking
remains enabled. Alchemy 2.0.0-beta.80 and its Distilled dependencies declare Effect
`^4.0.0`, which includes 4.1.1. Alchemy still imports the removed `effect/Crypto`
module, including in beta.84. A pnpm patch migrates its OAuth state and PKCE
generation and service types to `SecureRandom` and `Digest` from `effect/crypto`,
and provides both services in its platform layer. `scripts/check-alchemy.mjs`
checks provider imports and PKCE generation without credentials or network calls
as part of `pnpm check`. Remove the patch when upstream supports these APIs.
Scoped catalog overrides pin Alchemy's D1 and Durable Object SQL companions to
4.1.1 within those supported ranges.

Effect 4.0.3's test adapter requires Vitest 5, so the catalog also uses Vitest 5.0.4
Effect 4.1.1's test adapter requires Vitest 5, so the catalog uses Vitest 5.0.4
and the compatible Cloudflare test plugin 1.4.0 and Workers types 5.20261006.1.
The two workerd test configs disable Vitest's host filesystem module cache because
those paths are unavailable inside the worker. Node test configs keep the default cache.
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
# Triplex

> [!WARNING]
> Triplex is pre-1.0. The published `@triplex-build` packages require `effect@4.0.3`;
> Triplex is pre-1.0. The published `@triplex-build` packages require `effect@4.1.1`;
> Effect 3 is not compatible. KV
> and SQLite are the supported baseline, PostgreSQL is a production candidate, and Cloudflare and
> FoundationDB are experimental. See [Current state](docs/current-state.md) for the exact maturity
Expand Down Expand Up @@ -75,7 +75,7 @@ and never ask about history or provenance. Triplex is a system of record, not a
Install the core package and its Effect peer dependency from npm:

```sh
npm install @triplex-build/triplex effect@4.0.3
npm install @triplex-build/triplex effect@4.1.1
```

To run the checked repository examples from a source checkout:
Expand All @@ -89,7 +89,7 @@ pnpm exec tsx --tsconfig docs/snippets/tsconfig.json docs/snippets/getting-start
```

Do not use the superseded `@bjacobso` canaries for new work. Triplex is ESM-only, targets Node.js
22+, and is aligned to `effect@4.0.3`. The browser-safe core also runs in modern browsers and
22+, and is aligned to `effect@4.1.1`. The browser-safe core also runs in modern browsers and
edge runtimes. The [website quickstart](docs/getting-started.md) includes expected output, Effect
layer lifetime, and SQLite persistence. The coordinated package publication process is documented
in [Releasing Triplex](docs/releasing.md).
Expand Down
2 changes: 1 addition & 1 deletion docs/agents.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ Check these constraints with the people you work for before adopting it:
| Constraint | Current contract |
| -------------- | ---------------------------------------------------------------------------- |
| Maturity | Pre-1.0. See [Current state](/current-state) |
| Effect | Requires `effect@4.0.3`. Effect 3 is not compatible |
| Effect | Requires `effect@4.1.1`. Effect 3 is not compatible |
| Runtime | ESM-only, Node.js 22+, modern browsers and edge runtimes for the core |
| Durable stores | SQLite is supported. PostgreSQL is a production candidate |
| Host duties | Authentication, authorization, task lifecycle, timers, and retries are yours |
Expand Down
6 changes: 3 additions & 3 deletions docs/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,20 @@ This guide writes three facts to an in-memory Triplex database, joins them with
the result. It is the shortest complete path to a running program.

::: warning Pre-1.0 packages
The `@triplex-build` packages are available from npm and require `effect@4.0.3`.
The `@triplex-build` packages are available from npm and require `effect@4.1.1`.
Effect 3 is incompatible. Do not use the superseded `@bjacobso` package names for new work.
:::

## Prerequisites

- Git
- Node.js 22 or newer
- Node.js 22.19.0 or newer
- Corepack and pnpm 10.11.0 (the repository declares the exact package-manager version)

For an application, install the published core package and its Effect peer dependency:

```sh
npm install @triplex-build/triplex effect@4.0.3
npm install @triplex-build/triplex effect@4.1.1
```

## Run the example
Expand Down
2 changes: 1 addition & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ pageClass: triplex-index
<span class="triplex-home__eyebrow">Start in your process</span>

```sh
npm install @triplex-build/triplex effect@4.0.3
npm install @triplex-build/triplex effect@4.1.1
```

<span class="triplex-home__install-note">Effect 4 required · <a href="/getting-started">First program →</a></span>
Expand Down
2 changes: 1 addition & 1 deletion docs/releasing.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ Install from the registry in a clean directory outside this monorepo:

```sh
pnpm init
pnpm add effect@4.0.3 \
pnpm add effect@4.1.1 \
@triplex-build/triplex@next \
@triplex-build/triplex-sqlite@next \
@triplex-build/triplex-cli@next
Expand Down
2 changes: 1 addition & 1 deletion docs/sqlite.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ default shared conformance suite. Triplex remains pre-1.0; see [current state](/
Install the SQLite adapter with the compatible Effect version on Node.js 22 or newer:

```sh
npm install @triplex-build/triplex @triplex-build/triplex-sqlite effect@4.0.3
npm install @triplex-build/triplex @triplex-build/triplex-sqlite effect@4.1.1
```

This writes a training fact and reads it through the same `Triples` service used by other backends:
Expand Down
2 changes: 1 addition & 1 deletion docs/troubleshooting.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ private workspace packages. Do not switch new examples back to the superseded `@

Keep every Triplex package on one coordinated release and use the exact Effect
peer version declared by that release. The current source tree targets Node.js 22+ and
`effect@4.0.3`; Effect 3 is incompatible. Multiple Effect copies or a version mismatch can make
`effect@4.1.1`; Effect 3 is incompatible. Multiple Effect copies or a version mismatch can make
service tags and runtime types disagree even when imports look correct.

## Why is `Triples` (or another service) missing?
Expand Down
2 changes: 1 addition & 1 deletion examples/http-api/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,6 @@
"vitest": "catalog:"
},
"engines": {
"node": ">=22"
"node": ">=22.19.0"
}
}
Loading
Loading