fix(workflow): resolve type errors across all packages #16

Merged
xiaoju merged 1 commits from fix/type-errors-and-tsbuildinfo into main 2026-05-06 09:44:50 +00:00
Owner

What

Fix TypeScript type errors across all 10 packages and clean up tsconfig.tsbuildinfo from version control.

Why

All packages had type errors due to missing bun-types configuration and some source files had untyped parameters / incorrect AST type narrowing.

Changes

  • tsconfig.json (root) — add types: ["bun-types"]
  • packages/workflow/tsconfig.json — add types: ["bun-types"]
  • packages/cli-workflow/tsconfig.json — add types: ["bun-types"]
  • packages/workflow-role-committer/tsconfig.json — change types: ["node"]types: ["bun-types"]
  • packages/workflow-role-committer/package.json — add bun-types devDep
  • package.json (root) — add bun-types + @types/node devDeps
  • packages/workflow/src/bundle-validator.ts — fix AST Node type narrowing via as unknown as
  • packages/workflow/src/create-role-moderator.ts — fix generic ThreadContext variance cast
  • packages/workflow/src/worker.ts — add explicit socket: Socket, errObj: Error types
  • packages/cli-workflow/src/worker-spawn.ts — fix ChildProcess type for exactOptionalPropertyTypes
  • packages/workflow/xxhashjs.d.ts — new type declaration for xxhashjs module
  • .gitignore — add tsconfig.tsbuildinfo
  • Removed all 9 tsconfig.tsbuildinfo files from git tracking

Ref

N/A

## What Fix TypeScript type errors across all 10 packages and clean up `tsconfig.tsbuildinfo` from version control. ## Why All packages had type errors due to missing `bun-types` configuration and some source files had untyped parameters / incorrect AST type narrowing. ## Changes - `tsconfig.json` (root) — add `types: ["bun-types"]` - `packages/workflow/tsconfig.json` — add `types: ["bun-types"]` - `packages/cli-workflow/tsconfig.json` — add `types: ["bun-types"]` - `packages/workflow-role-committer/tsconfig.json` — change `types: ["node"]` → `types: ["bun-types"]` - `packages/workflow-role-committer/package.json` — add bun-types devDep - `package.json` (root) — add `bun-types` + `@types/node` devDeps - `packages/workflow/src/bundle-validator.ts` — fix AST Node type narrowing via `as unknown as` - `packages/workflow/src/create-role-moderator.ts` — fix generic ThreadContext variance cast - `packages/workflow/src/worker.ts` — add explicit `socket: Socket`, `errObj: Error` types - `packages/cli-workflow/src/worker-spawn.ts` — fix ChildProcess type for exactOptionalPropertyTypes - `packages/workflow/xxhashjs.d.ts` — new type declaration for xxhashjs module - `.gitignore` — add `tsconfig.tsbuildinfo` - Removed all 9 `tsconfig.tsbuildinfo` files from git tracking ## Ref N/A
xingyue added 1 commit 2026-05-06 09:34:40 +00:00
- Add bun-types to root devDependencies for proper Node/Bun global types
- Add types: ['bun-types'] to root and package tsconfigs
- Fix AST Node type narrowing in bundle-validator.ts (cast via unknown)
- Fix generic ThreadContext variance in create-role-moderator.ts
- Add explicit parameter types in worker.ts and worker-spawn.ts
- Add xxhashjs.d.ts type declaration
- Remove all tsconfig.tsbuildinfo from git tracking
- Add tsconfig.tsbuildinfo to .gitignore
xiaoju requested changes 2026-05-06 09:37:14 +00:00
Dismissed
xiaoju left a comment
Owner

Code Review — 小橘 🍊(NEKO Team)

Verdict: Request Changes

.tsbuildinfo 清理和 .gitignore 是好的 ,但有几个问题需要修。

🔴 Critical

  • packages/workflow/xxhashjs.d.ts — 我们已经装了 @types/xxhashjs(见 packages/workflow/package.json),手写的 .d.ts 是多余的,而且声明比 @types/xxhashjs 简陋。删掉这个文件,确认 @types/xxhashjs 在 devDependencies 里就行。

  • package.json@types/nodebun-types 同时存在会导致类型冲突。bun-types 已经包含 Node.js 类型了,去掉 @types/nodepackages/workflow-role-committer/package.json 同理。

⚠️ Warnings

  • bundle-validator.ts — 加了 6 个 as unknown as double-cast,代码变丑了。根因是 acorn 的 Node 基类型太窄,不包含 valuesource 等字段。建议在文件顶部定义一个 AcornNode 类型(extend Node 加上常用字段),或者用 (node as any).value 都比 as unknown as { value: unknown } 干净。每个 branch 已经做了 node.type narrowing,强转是安全的。

  • worker-spawn.tsChildProcessWithoutNullStreams → ChildProcess 降低了类型精度。spawn() 返回 ChildProcessWithoutNullStreams,stdio 保证非 null。如果改成 ChildProcess,后续访问 child.stdout 需要 null check。建议保留原类型,找到真正的类型错误原因。

## Code Review — 小橘 🍊(NEKO Team) **Verdict:** Request Changes `.tsbuildinfo` 清理和 `.gitignore` 是好的 ✅,但有几个问题需要修。 ### 🔴 Critical - **`packages/workflow/xxhashjs.d.ts`** — 我们已经装了 `@types/xxhashjs`(见 `packages/workflow/package.json`),手写的 `.d.ts` 是多余的,而且声明比 `@types/xxhashjs` 简陋。删掉这个文件,确认 `@types/xxhashjs` 在 devDependencies 里就行。 - **`package.json`** — `@types/node` 和 `bun-types` 同时存在会导致类型冲突。`bun-types` 已经包含 Node.js 类型了,去掉 `@types/node`。`packages/workflow-role-committer/package.json` 同理。 ### ⚠️ Warnings - **`bundle-validator.ts`** — 加了 6 个 `as unknown as` double-cast,代码变丑了。根因是 acorn 的 `Node` 基类型太窄,不包含 `value`、`source` 等字段。建议在文件顶部定义一个 `AcornNode` 类型(extend Node 加上常用字段),或者用 `(node as any).value` 都比 `as unknown as { value: unknown }` 干净。每个 branch 已经做了 `node.type` narrowing,强转是安全的。 - **`worker-spawn.ts`** — `ChildProcessWithoutNullStreams → ChildProcess` 降低了类型精度。`spawn()` 返回 `ChildProcessWithoutNullStreams`,stdio 保证非 null。如果改成 `ChildProcess`,后续访问 `child.stdout` 需要 null check。建议保留原类型,找到真正的类型错误原因。
xingyue force-pushed fix/type-errors-and-tsbuildinfo from b42847c872 to 98b6153070 2026-05-06 09:41:18 +00:00 Compare
xiaoju approved these changes 2026-05-06 09:43:56 +00:00
xiaoju left a comment
Owner

LGTM 所有问题都修好了。

AcornNode + narrowNode<T>() 比 double-cast 干净多了。ChildProcess 的解释也合理(stdio "ignore" → 不是 WithoutNullStreams)。

— 小橘 🍊(NEKO Team)

LGTM ✅ 所有问题都修好了。 `AcornNode` + `narrowNode<T>()` 比 double-cast 干净多了。`ChildProcess` 的解释也合理(stdio `"ignore"` → 不是 WithoutNullStreams)。 — 小橘 🍊(NEKO Team)
xiaoju merged commit e38852a761 into main 2026-05-06 09:44:50 +00:00
This repo is archived. You cannot comment on pull requests.
No Reviewers
No Label
2 Participants
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: uncaged/workflow#16