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
6 changes: 6 additions & 0 deletions .github/renovate.json5
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,12 @@
matchManagers: ["bun"],
rangeStrategy: "bump",
},
{
// @effect/tsgo patches one exact TypeScript release and refuses any other,
// so the two only ever move together.
matchPackageNames: ["typescript", "@effect/tsgo"],
groupName: "typescript and @effect/tsgo",
},
{
// External requirements are compatibility floors, not pinned dependencies.
// `requires-python` declares the Python range commy supports;
Expand Down
4 changes: 2 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ set, the suite skips silently.
**Lint layers, when to reach for which:**

- **biome** — JS/TS style, formatting, generic lint (unused imports, etc.). Run via `bun run check` (turbo cached) or `bun run lint:fix` for auto-fix.
- **@effect/language-service** — Effect idiom (floating Effects, untyped catches, unnecessary `Effect.gen`, reaching for global `fetch`/`Date`/`console` instead of Effect-native services, ~60 rules). TypeScript-plugin: registered in `tsconfig.json` under `compilerOptions.plugins`, persisted at build time via `effect-language-service patch` in the `prepare` script — so diagnostics surface under `tsc --noEmit` (i.e. `bun run check`), not just in editors. Project-scope rule tweaks live in the tsconfig plugin entry; document the reason inline when disabling.
- **@effect/tsgo** — Effect idiom (floating Effects, untyped catches, unnecessary `Effect.gen`, reaching for global `fetch`/`Date`/`console` instead of Effect-native services, ~60 rules). It patches the TypeScript 7 compiler and reads its plugin entry, still named `@effect/language-service`, from `tsconfig.json` under `compilerOptions.plugins`. The `effect-tsgo patch` step in the `prepare` script applies the patch at install time — so diagnostics surface under `tsc --noEmit` (i.e. `bun run check`), not just in editors. Project-scope rule tweaks live in the tsconfig plugin entry; document the reason inline when disabling.

## Contributing

Expand Down Expand Up @@ -111,4 +111,4 @@ If you have a local read-only Effect source clone available (path is machine-loc
| independent effects run sequentially | `Effect.all` / `Effect.forEach` with bounded `{ concurrency }` — never `'unbounded'` onto a rate-limited Zulip realm |
| untrusted data via `as` / `JSON.parse` at the edge | `Schema.decodeUnknown` |

This complements the linters, it doesn't repeat them: `@effect/language-service` and biome catch per-line idiom; this table is for the whole-block / whole-type / whole-module shapes a linter can't see.
This complements the linters, it doesn't repeat them: `@effect/tsgo` and biome catch per-line idiom; this table is for the whole-block / whole-type / whole-module shapes a linter can't see.
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ nix develop .#ci --command bun run check
```

A green `bun run check` is the whole gate: typecheck, lint (biome +
@effect/language-service), and tests, orchestrated by turbo.
@effect/tsgo), and tests, orchestrated by turbo.

## Making changes

Expand Down
66 changes: 60 additions & 6 deletions bun.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion clients/claude-code/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,6 @@
},
"devDependencies": {
"bun-types": "1.4.2",
"typescript": "6.0.3"
"typescript": "7.0.2"
}
}
6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
"packageManager": "bun@1.4.2",
"bin": "./packages/mcp/server.ts",
"scripts": {
"prepare": "git config core.hooksPath .hooks && effect-language-service patch",
"prepare": "git config core.hooksPath .hooks && effect-tsgo patch",
"build": "bun build packages/mcp/server.ts --target=node --outfile packages/mcp/dist/server.js && bun build clients/claude-code/hooks/inject-session-id.ts --target=node --outfile clients/claude-code/dist/inject-session-id.js",
"pack:npm": "bun scripts/assemble-npm-package.ts",
"start": "bun install --no-summary && bun packages/mcp/server.ts",
Expand Down Expand Up @@ -40,9 +40,9 @@
"devDependencies": {
"@commy/testing": "workspace:*",
"@biomejs/biome": "2.5.14",
"@effect/language-service": "0.87.2",
"@effect/tsgo": "0.45.0",
"bun-types": "1.4.2",
"turbo": "2.11.2",
"typescript": "6.0.3"
"typescript": "7.0.2"
}
}