Skip to content

chore: adopt org tsgo stack (TS7 + @systemfsoftware/tsconfig base + @effect/language-service) - #2

Merged
kiro-systemf[bot] merged 2 commits into
mainfrom
feat/tsgo-stack
Oct 7, 2026
Merged

kiro-systemf[bot] merged 2 commits into
mainfrom
feat/tsgo-stack

Conversation

@kiro-systemf

@kiro-systemf kiro-systemf Bot commented Oct 7, 2026

Copy link
Copy Markdown

Brings qmd onto the System F Software standard tsgo toolchain.

What changed

  • tsconfig.json now extends @systemfsoftware/tsconfig/tsc/no-dom/library (Node library, no DOM, standalone — not monorepo/composite) and adds the @effect/language-service plugin. Dropped the dead jsx: react-jsx / allowJs (no JSX or .js sources exist).
  • tsconfig.build.json extends the local base and sets rootDir: "src" for a deterministic declaration emit (TS7 is stricter — TS5011). declaration/sourceMap now come from the base.
  • Toolchain devDeps pinned directly (qmd has no pnpm catalog): typescript ^7, @effect/tsgo ^0.50.0, @effect/language-service, @systemfsoftware/tsconfig ^2.0.1, oxlint-tsgolint 7.0.2001, @types/node ^24. peerDependencies.typescript → ^7 (full upgrade, no dual-compiler).
  • Source migration to the stricter base, no runtime behavior change:
    • noPropertyAccessFromIndexSignature — index-signature reads (process.env.X, parsed-arg bags) rewritten to bracket access.
    • exactOptionalPropertyTypes — optional properties/params on the public option/result types (and a few inline signatures) widened to accept undefined; two Required<…>/resolver return types made concrete.
    • No TS5 compiler-API usage existed, so nothing to port there.

Verification (local)

  • tsc -p tsconfig.build.json --noEmit → 0 errors (also 0 on tsconfig.json), under TypeScript 7.0.2.
  • oxlint → 0 warnings, 0 errors.
  • node scripts/build.mjs → clean dist/ with .d.ts + sourcemaps.
  • Vitest Node suite: 1245 passed. The only local failures are environment artifacts (git commit.gpgsign with no local key; one sandbox-filesystem test that is green on main's CI) — none introduced by this change.

Lockfiles: bun.lock regenerated for the CI Bun job (bun install --frozen-lockfile); the stale committed pnpm-lock.yaml was refreshed to match package.json.

…effect/language-service)

Bring qmd onto the System F Software standard tsgo toolchain:

- tsconfig.json extends @systemfsoftware/tsconfig/tsc/no-dom/library (Node
  library, no DOM, standalone — not monorepo/composite) and adds the
  @effect/language-service plugin; drops dead jsx/allowJs (no JSX/.js sources).
- tsconfig.build.json extends the local base, sets rootDir=src for a
  deterministic declaration emit (TS7 TS5011).
- devDeps: typescript ^7, @effect/tsgo ^0.50.0, @effect/language-service,
  @systemfsoftware/tsconfig ^2.0.1, oxlint-tsgolint 7.0.2001, @types/node ^24.
  peerDependencies.typescript -> ^7 (full upgrade, no dual compiler).
- Migrated src to the stricter base: noPropertyAccessFromIndexSignature
  (index-signature access via brackets) and exactOptionalPropertyTypes
  (optional props/params widened to accept undefined). No runtime behavior
  change; no TS5 compiler-API usage existed to migrate.

Typecheck (tsc -p tsconfig.build.json --noEmit) and oxlint both pass; dist
emits declarations + sourcemaps.
@kiro-systemf
kiro-systemf Bot merged commit 2c8b6d2 into main Oct 7, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant