CodeVetter
← All unpacks
CodeVetter · Repo Unpack evidence

effect-ts/effect

Scanned commit 6389d9ac64 dated 2026-10-02 — last upstream commit. Generated by codevetter 1.15.0 on 2026-10-02.

github.com/effect-ts/effect ↗ · 2581 files · 31.9 MB

Effect Effect is a library for building robust, maintainable, type-safe, and production grade applications in TypeScript.

Deep analysis by cli:codex via the codex CLI on 2026-10-02 (563s) — every claim below links to its cited source files. Source inspection; upstream code and tests were not executed.

Overview

Effect is a TypeScript library ecosystem for developers building applications with typed failures, dependency injection, structured concurrency, schema validation, and managed resources. At commit 6389d9ac64c0f62ccc8b575fb9afc65fc104e814, the repository contains Effect 4.0.0 plus synchronized platform, SQL, AI-provider, UI-state, telemetry, and testing integrations. Its distinctive architecture carries success, error, and service requirements through composable APIs, then connects them to platform implementations through Context services and Layers.

System map

The repository is a pnpm workspace organized around the core effect package and technology-specific integrations. Public entrypoints expose TypeScript source during workspace development and compiled JavaScript when published. Context, Layer, fibers, and scopes provide the shared execution architecture across these packages. Build, verification, generation, and release workflows are repository-level concerns rather than an application deployment stack.

Feature catalog

The user-facing product is a developer API ecosystem spanning execution, data modeling, network services, persistence, and integrations. CLI commands and application endpoints are defined by consumers through typed builders. Distributed entities, workflows, AI tools, and reactive UI state extend the same service model. These eight groups describe the inspected capabilities; they are a bounded catalog rather than an enumeration of every exported API.

Data flow

Inputs enter through execution bridges, HTTP requests, provider requests, storage calls, and framework hooks. Context supplies services, schemas transform external representations, and scoped implementations perform platform operations. Runtime contexts, router tables, databases, and atom registries own different kinds of state. Output boundaries include Promise results, encoded HTTP responses, SQL rows, persisted bytes, and UI subscriptions.

Behavior traces

Three source-level flows were followed to their completion boundaries: managed-runtime startup/execution/disposal, HTTP API registration/request handling, and schema-backed SQLite persistence. Each trace includes the functions responsible for state ownership and relevant conditional branches. These are execution-order reconstructions from source, not observed runs. Documentation's Hono integration provides a concrete consumer of the managed-runtime bridge.

Testing signals

Tests and CI were inspected, not executed; no passing result or coverage measurement is asserted. The repository separates Vitest runtime tests, Tstyche compiler contracts, and generated documentation tests. Representative tests exercise lifecycle ordering, HTTP contracts, provider request mapping, and SQLite storage/transactions. Runtime conditions and explicit integration flags limit which tests a particular invocation includes, and the inspected inventory is not exhaustive coverage.

Risk map

The inspected security-sensitive boundaries include credential handling, process execution, filesystem operations, native SQLite, dynamic compilation, and privileged CI. Several APIs intentionally expose caller-selected capabilities and therefore require appropriate consumer configuration. Two findings are explicitly labeled hypotheses requiring reproduction: concurrent schema-store modification and static-file symlink containment. None of these observations establishes a confirmed vulnerability or a repository-wide absence of safeguards.

Extension points

Extension primarily happens through typed service implementations and declarative builders. HTTP groups, RPC tags, command trees, SQL drivers, AI providers, and workflow handlers each define explicit registration contracts. Schema compilation also has a shared registry, though its internal functions are not public plugin APIs. Extensions must preserve their error channels, required services, lifecycle ownership, and published export boundaries.

Contributor handoff

Begin with tracked repository instructions, package exports, nearby implementations, and representative tests before proposing changes. The investigation used public read-only source, confirmed the supplied HEAD, and inspected tests and CI without executing them. Source observations and hypotheses should remain distinct from runtime results; this brief is bounded, not exhaustive. Small changes must respect generated files, type contracts, platform differences, and resource-finalization order. Tests, CI, and upstream code were not executed.

Languages

LanguageFilesShare of source
TypeScript165299%
YAML552docs/config
Markdown171docs/config
JSON111docs/config
JavaScript131%
Shell70%
HTML3docs/config

Start reading here

Probable source entrypoint: packages/ — inferred from the directory tree and manifest, not the upstream docs.

Source roots

packages/ (1855 files)

Source layout — packages/

PathFiles
packages/atom/29
packages/opentelemetry/18
packages/tools/187
packages/vitest/6

Repository structure

Top-level pathFiles
packages/1855
migration/552
ai-docs/76
.agents/31
.changeset/17
scripts/16
.github/9
scratchpad/3

Docs found: README.md

Package

package.json — , 46 declared dependencies.

@babel/cli@babel/core@babel/plugin-transform-export-namespace-from@babel/plugin-transform-modules-commonjs@changesets/changelog-github@changesets/cli@effect/ai-docgen@effect/bundle@effect/docgen@effect/doctest@effect/jsdocs@effect/oxc

CI & config entrypoints

Structural health signals

Average score 6.6/10 across 96 analyzed source files; 38 hotspots surfaced.

These are deterministic review leads — size, churn, and structural signals — not proof of a bug in this project.

Recent history