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
9 changes: 9 additions & 0 deletions .changeset/effect-4-1-2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
"@systemfsoftware/effect-daemon-cluster": patch
"@systemfsoftware/effect-daemon-conformance": patch
"@systemfsoftware/effect-daemon-process": patch
"@systemfsoftware/effect-daemon-socket": patch
"@systemfsoftware/effect-daemon-spec": patch
---

Requires Effect ^4.1.2.
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
title: Preserve the tsgo override while the lint preset lags
date: 2026-11-04
category: tooling-decisions
module: Workspace lint tooling
problem_type: tooling_decision
component: tooling
severity: medium
applies_when:
- Upgrading Effect or @effect/tsgo while the organization lint preset depends on an older tsgo release
retire_when: "SYS-990 delivers an organization lint preset whose tsgo dependency is compatible with the workspace version; check the released preset metadata."
tags: [effect, tsgo, oxlint, pnpm, dependency-resolution]
---

# Preserve the tsgo override while the lint preset lags

## Context

The organization oxlint preset imports rule sets from its own `@effect/tsgo` dependency. At the Effect 4.1.2 upgrade, the pinned preset declared `@effect/tsgo: ^0.51.1`, while the workspace used 0.64.1. Caret ranges below 1.0 do not span those minor versions. The conductor reported that removing the existing override causes lint rules to disappear; a successful lint exit alone does not establish equivalent coverage.

## Guidance

Keep the existing workspace-wide `@effect/tsgo` override aligned with the workspace catalog while the preset's dependency range excludes that version. This is a targeted exception for the lint toolchain, not a reason to add overrides for Effect runtime packages or unrelated transitive dependencies.

When the preset is updated upstream, inspect its released dependency metadata and the resolved lockfile before removing the override. Compare the effective lint rule count and lint results before and after removal; do not infer preservation from a green exit alone.

## Why This Matters

The preset loads `correctness` and `recommended` from `@effect/tsgo/oxlint-presets` and incorporates their rules into its library configuration. A separately resolved tsgo version can therefore change which rules the preset supplies. The override makes the preset and workspace resolve the same tsgo version rather than leaving the preset on the older range.

## When to Apply

- An Effect or tsgo upgrade changes the tsgo version but an inherited preset still declares an incompatible pre-1.0 range.
- A dependency cleanup proposes removing a tsgo override or a lint run passes with fewer rules.

## Examples

For this upgrade, the catalog and existing override resolve tsgo to 0.64.1. With the override in place, lint reported 345 rules per package before the upgrade and 350 after it, with zero warnings and errors. These observations do not measure the rule count without the override.

## Related

- SYS-990 tracks the upstream preset dependency fix.
2 changes: 1 addition & 1 deletion packages/effect-daemon-cluster/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@
"vitest": "catalog:"
},
"peerDependencies": {
"effect": "catalog:peers",
"effect": "^4.1.2",
"typescript": ">=7.0.0"
},
"publishConfig": {
Expand Down
2 changes: 1 addition & 1 deletion packages/effect-daemon-process/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@
"vitest": "catalog:"
},
"peerDependencies": {
"effect": "catalog:peers",
"effect": "^4.1.2",
"typescript": ">=7.0.0"
},
"publishConfig": {
Expand Down
2 changes: 1 addition & 1 deletion packages/effect-daemon-socket/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@
"vitest": "catalog:"
},
"peerDependencies": {
"effect": "catalog:peers",
"effect": "^4.1.2",
"typescript": ">=7.0.0"
},
"publishConfig": {
Expand Down
482 changes: 251 additions & 231 deletions pnpm-lock.yaml

Large diffs are not rendered by default.

20 changes: 8 additions & 12 deletions pnpm-workspace.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,13 @@ catalog:
typescript: ^7.0.2
microsandbox: 0.7.8
"@systemfsoftware/arethetypeswrong-cli": ^4.2.0
"@effect/platform-node": ^4.1.0
"@effect/platform-bun": 4.1.0
"@effect/platform-node-shared": ^4.1.0
effect: ^4.1.0
"@effect/sql-pglite": ^4.1.0
"@effect/tsgo": ^0.63.0
"@effect/opentelemetry": ^4.1.0
"@effect/platform-node": 4.1.2
"@effect/platform-bun": 4.1.2
"@effect/platform-node-shared": 4.1.2
effect: 4.1.2
"@effect/sql-pglite": 4.1.2
"@effect/tsgo": 0.64.1
"@effect/opentelemetry": 4.1.2
"@opentelemetry/sdk-trace-base": ^2.12.0
"@opentelemetry/api": ^1.9.0
"@opentelemetry/resources": ^2.12.0
Expand Down Expand Up @@ -60,7 +60,7 @@ catalog:
catalogMode: prefer
catalogs:
peers:
effect: ^4
effect: ^4.1.2
oxlint:
oxlint: ~1.90.0
"@oxlint/plugins": ~1.90.0
Expand Down Expand Up @@ -103,10 +103,6 @@ overrides:
"@systemfsoftware/tsdown-config": file:.sfs-deps/tsdown-config-0.1.1.tgz
"@systemfsoftware/vitest": file:.sfs-deps/vitest-3.0.0.tgz
"@systemfsoftware/vitest-config": file:.sfs-deps/vitest-config-0.1.1.tgz
effect: "catalog:"
"@effect/opentelemetry": "catalog:"
"@effect/platform-node": "catalog:"
"@effect/platform-node-shared": "catalog:"
"@effect/tsgo": "catalog:"
fast-check: "catalog:"
vite: "catalog:"
Expand Down
Loading