Skip to content

Commit c4aaa2c

Browse files
Nick Ficanoclaude
andcommitted
effect(bootstrap): pin Effect deps, register ESLint plugin, dedupe
Pins effect@^3.21.2 and @effect/platform@^0.96.1 as runtime deps in @arcp/core, @arcp/runtime, @arcp/client, @arcp/sdk. Adds @effect/eslint-plugin@^0.3.2 to root devDeps and registers it in eslint.config.js without enabling any rules — individual slices opt files in as they migrate. @effect/opentelemetry@^0.63.0 is added as a peer of @arcp/middleware-otel (used in slice #49). @effect/vitest is intentionally NOT pinned: the latest stable (0.29.0) requires vitest@^3.2.0 while this workspace is on vitest@^2.1.2. Slices use plain `it()` with `Effect.runPromise(...)` until a separate vitest 2->3 upgrade is opened. .gitignore picks up .effect-migration/, where the migration's scratch issue bodies and orchestration script live (see issue #20). Quality gates: pnpm lint, pnpm typecheck, and all 103 tests pass. Closes #31 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 45d904a commit c4aaa2c

9 files changed

Lines changed: 281 additions & 1 deletion

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,4 @@ coverage/
99
*.tsbuildinfo
1010
.vitest/
1111
*.tgz
12+
.effect-migration/

eslint.config.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import effect from "@effect/eslint-plugin";
12
import eslint from "@eslint/js";
23
import prettier from "eslint-config-prettier";
34
import importPlugin from "eslint-plugin-import";
@@ -24,6 +25,10 @@ export default tseslint.config(
2425
importPlugin.flatConfigs.recommended,
2526
importPlugin.flatConfigs.typescript,
2627
n.configs["flat/recommended-module"],
28+
// @effect/eslint-plugin — registered, no rules enabled at root.
29+
// Effect-specific rules (e.g. dangling-effects, no-import-from-barrel)
30+
// get opted in by individual files as the migration progresses.
31+
{ plugins: { effect } },
2732
{
2833
languageOptions: {
2934
parserOptions: {

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
"devDependencies": {
3939
"@arethetypeswrong/cli": "^0.18.2",
4040
"@biomejs/biome": "^2.4.15",
41+
"@effect/eslint-plugin": "^0.3.2",
4142
"@eslint/js": "^9.39.4",
4243
"@types/node": "^22.7.5",
4344
"@vitest/coverage-v8": "^2.1.2",

packages/client/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@
4343
},
4444
"dependencies": {
4545
"@arcp/core": "workspace:*",
46+
"@effect/platform": "^0.96.1",
47+
"effect": "^3.21.2",
4648
"zod": "^3.23.8"
4749
},
4850
"devDependencies": {

packages/core/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,9 @@
9090
"test:coverage": "vitest run --coverage"
9191
},
9292
"dependencies": {
93+
"@effect/platform": "^0.96.1",
9394
"better-sqlite3": "^11.5.0",
95+
"effect": "^3.21.2",
9496
"jose": "^5.9.6",
9597
"pino": "^9.5.0",
9698
"ulid": "^2.3.0",

packages/middleware/otel/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,12 @@
4343
},
4444
"peerDependencies": {
4545
"@arcp/core": "workspace:^",
46+
"@effect/opentelemetry": "^0.63.0",
4647
"@opentelemetry/api": "^1.9.0"
4748
},
4849
"devDependencies": {
4950
"@arcp/core": "workspace:*",
51+
"@effect/opentelemetry": "^0.63.0",
5052
"@opentelemetry/api": "^1.9.0",
5153
"@types/node": "^22.7.5",
5254
"typescript": "^5.6.2",

packages/runtime/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@
4343
},
4444
"dependencies": {
4545
"@arcp/core": "workspace:*",
46+
"@effect/platform": "^0.96.1",
47+
"effect": "^3.21.2",
4648
"zod": "^3.23.8"
4749
},
4850
"devDependencies": {

packages/sdk/package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,9 @@
7070
"@arcp/client": "workspace:*",
7171
"@arcp/core": "workspace:*",
7272
"@arcp/runtime": "workspace:*",
73-
"commander": "^12.1.0"
73+
"@effect/platform": "^0.96.1",
74+
"commander": "^12.1.0",
75+
"effect": "^3.21.2"
7476
},
7577
"devDependencies": {
7678
"@types/node": "^22.7.5",

0 commit comments

Comments
 (0)