From 0e95c635b94ebe548b03ea64c948d9a9cc14aeb9 Mon Sep 17 00:00:00 2001 From: oratis Date: Sat, 30 May 2026 11:49:52 +0800 Subject: [PATCH 1/2] chore(tooling): pre-commit typecheck via single ordered tsc -b Use the root `pnpm typecheck` (one `tsc -b` over the whole workspace graph in dependency order) instead of `pnpm -r typecheck` (each package built independently). Same correctness, fewer redundant compiles. Adapted from the compassionate-ptolemy worktree's intent; #85 already fixed the underlying clean-tree resolution at the package-script level, so this is purely the hook-efficiency slice (and keeps the format:check + lint steps). Co-Authored-By: Claude Opus 4.8 (1M context) --- .husky/pre-commit | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.husky/pre-commit b/.husky/pre-commit index 86bc6aa..00dc58d 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -11,7 +11,10 @@ echo "▎ pre-commit: lint" pnpm lint echo "▎ pre-commit: typecheck" -pnpm -r typecheck +# Root `tsc -b` builds the whole workspace graph once in dependency order +# (core's .d.ts before its consumers), rather than `pnpm -r typecheck` running +# each package's build independently. Same result, fewer redundant compiles. +pnpm typecheck echo "▎ pre-commit: tests" pnpm -r test From ac5dbbb4ea3589c8792d93536194099a61def44d Mon Sep 17 00:00:00 2001 From: oratis Date: Sat, 30 May 2026 11:53:40 +0800 Subject: [PATCH 2/2] chore(tooling): eslint ignore .claude worktrees MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit eslint was scanning .claude/worktrees/* (sibling agent worktrees), multiplying every warning by the number of live worktrees (3 baseline warnings → 12) and risking a worktree's lint error blocking commits in the main checkout. Ignore .claude, matching the .prettierignore entry added in the format PR. Co-Authored-By: Claude Opus 4.8 (1M context) --- eslint.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/eslint.config.js b/eslint.config.js index abf5eef..7069520 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -15,6 +15,7 @@ export default [ '**/node_modules/**', '**/target/**', // Rust/Cargo build output (generated JS in src-tauri/target) '**/.tsbuildinfo', + '.claude/**', // sibling agent worktrees — not part of this checkout's lint surface 'release-artifacts/**', 'apps/desktop/electron/**', // requires electron types — pending M6-rest ],