Skip to content

Stacked features 1: add typecheck lint#412

Merged
graydawnc merged 3 commits into
paperboytm:mainfrom
AmagiDDmxh:feat/typecheck-baseline
Jul 14, 2026
Merged

Stacked features 1: add typecheck lint#412
graydawnc merged 3 commits into
paperboytm:mainfrom
AmagiDDmxh:feat/typecheck-baseline

Conversation

@AmagiDDmxh

@AmagiDDmxh AmagiDDmxh commented Jul 12, 2026

Copy link
Copy Markdown
Contributor

Stack position

Part 1 of 7. This is the base of the stack; the next PR is #413.

Why

Before changing the compiler or linter, the repository needs a complete and trustworthy TypeScript baseline. Several workspace packages were outside the root typecheck graph, and enabling them exposed real app and landing-page errors.

What changed

  • Added an explicit typecheck policy to every workspace package.
  • Added root typecheck and check tasks through Turbo.
  • Declared the app-owned __SPOOL_E2E__ build global.
  • Added the missing Vite/CSS module declarations for the landing package.
  • Fixed the landing navigation union instead of suppressing the error.
  • Wired the complete typecheck and lint gates into pull-request CI.
  • Ordered package tests conservatively until native ABI isolation is addressed in Stacked features 4: separate builds and allow test to run standalone #415.

Verification

  • pnpm typecheck: 9/9 workspace packages passed.
  • pnpm lint: passed.
  • pnpm --filter @spool/landing build: passed.
  • pnpm --filter @spool/app build:electron: main, preload, and renderer bundles passed.
  • Core tests: 404 passed, 1 skipped.

Review notes

This PR intentionally stays on the existing TypeScript version. It establishes the green baseline required by #413 and #414. The pre-existing shared better-sqlite3 ABI race is not hidden with longer timeouts; #415 owns that fix.

@AmagiDDmxh AmagiDDmxh changed the title Stack features 1: add typecheck lint Stacked features 1: add typecheck lint Jul 12, 2026
@graydawnc

Copy link
Copy Markdown
Collaborator

Thanks a lot for this contribution! A stacked series covering search performance, build caching, and tooling upgrades is a substantial piece of work, and the benchmark numbers look very promising. We really appreciate the effort. 🙏

Two process asks before we dive into review:

  1. Please use English for PR descriptions, comments, and code comments. Spool has users and contributors who don't read Chinese, and PR descriptions become part of the project's permanent history — they need to be accessible to everyone. (Discussion in issues can be bilingual when it helps, but the PR body itself should be English.)
  2. Since you've split the work into a stack, please give each PR its own description. Right now Stacked features 1: add typecheck lint #412 carries a combined summary of the whole series while Stacked features 3: ts7 migration #414Stacked features 7: dependency check + extra debounce search input #418 are empty. Each PR should explain what it changes, why, and how it was verified on its own — reviewers go through them one at a time, and after merge, each squashed commit links back to its own PR as the explanation of record. A short note like "Part N of a stack based on #" is great for cross-linking, but the substance should live in the PR that owns the change.

Once the descriptions are in place we'll take the stack through review. Thanks again!

@AmagiDDmxh

Copy link
Copy Markdown
Contributor Author

Thanks a lot for this contribution! A stacked series covering search performance, build caching, and tooling upgrades is a substantial piece of work, and the benchmark numbers look very promising. We really appreciate the effort. 🙏

Two process asks before we dive into review:

  1. Please use English for PR descriptions, comments, and code comments. Spool has users and contributors who don't read Chinese, and PR descriptions become part of the project's permanent history — they need to be accessible to everyone. (Discussion in issues can be bilingual when it helps, but the PR body itself should be English.)
  2. Since you've split the work into a stack, please give each PR its own description. Right now Stacked features 1: add typecheck lint #412 carries a combined summary of the whole series while Stacked features 3: ts7 migration #414Stacked features 7: dependency check + extra debounce search input #418 are empty. Each PR should explain what it changes, why, and how it was verified on its own — reviewers go through them one at a time, and after merge, each squashed commit links back to its own PR as the explanation of record. A short note like "Part N of a stack based on #" is great for cross-linking, but the substance should live in the PR that owns the change.

Once the descriptions are in place we'll take the stack through review. Thanks again!

gotcha

@AmagiDDmxh

Copy link
Copy Markdown
Contributor Author

Thanks for the guidance. I have updated all seven PRs with standalone English descriptions covering each PR's motivation, owned changes, verification, and review notes. Each description now also links its position and dependency in the stack.

I also checked the code added by the stack for non-English comments. The only non-English additions are Chinese search strings used as CJK/trigram test fixtures; code comments remain in English.

@AmagiDDmxh

Copy link
Copy Markdown
Contributor Author

Follow-up on the failed unit job: the clean runner did not have packages/core/dist/index.d.ts when the CLI typecheck started. That made @spool-lab/core unresolved, and most of the reported implicit-any diagnostics were cascading errors.

Commit 7b8dd6c makes Turbo's typecheck task depend on ^build, so workspace dependency declarations are generated first. It also fixes the one independent noUncheckedIndexedAccess issue in doctor.ts by falling back to the category key.

Verification:

  • Fresh pnpm install --frozen-lockfile + pnpm typecheck: passed (13/13 Turbo tasks, 0 cache hits)
  • pnpm lint: passed
  • CI run 29284593370: unit, Ubuntu E2E, and macOS E2E all passed

@graydawnc
graydawnc added this pull request to the merge queue Jul 14, 2026
Merged via the queue into paperboytm:main with commit fd77aa6 Jul 14, 2026
3 checks passed
@graydawnc

Copy link
Copy Markdown
Collaborator

Thanks for the contribution and the quick follow-up — merging. Looking forward to the rest of the stack.

bet4it pushed a commit to bet4it/spool that referenced this pull request Jul 16, 2026
…rboytm#426)

The July 2026 optimization stack (paperboytm#412-paperboytm#418) shipped, which turns its
441-line plan into a completed one — and completed plans rot: the doc
went stale twice during the stack's own lifetime (feature-flag removals,
find semantics). Git history and the PR descriptions now carry the full
rationale and verification notes permanently.

Keep what stays useful:
- The verification matrix moves to CONTRIBUTING as a living 'Verifying
  changes' section, including the packaged-app checklist and the
  never-remove-assets-on-grep-alone rule.
- The roadmap shrinks to a ~50-line record: what shipped per PR,
  decisions of record with their data basis, and known follow-ups.

Also refresh two stale CONTRIBUTING sections: native-ABI handling is
automatic since paperboytm#415 (manual rebuilds are the fallback), and 'no linter
config yet' predates oxlint (paperboytm#413).

Co-authored-by: Chen <99816898+donteatfriedrice@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
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.

2 participants