Skip to content

CRMR: swap to the oxlint/oxfmt/tsgo/gale toolchain, add PR-only CI, and cover queries + stores with tests - #3

Merged
codebend3r merged 1 commit into
mainfrom
adding-checks
Aug 7, 2026
Merged

CRMR: swap to the oxlint/oxfmt/tsgo/gale toolchain, add PR-only CI, and cover queries + stores with tests#3
codebend3r merged 1 commit into
mainfrom
adding-checks

Conversation

@codebend3r

@codebend3r codebend3r commented Aug 6, 2026

Copy link
Copy Markdown
Owner

Changes

  • rename check.yml to ci.yml; trigger on pull_request only, run each script as its own step, add concurrency, Node from .nvmrc, bun install cache
  • replace eslint with oxlint --type-aware (via oxlint-tsgolint); delete eslint.config.js
  • format with oxfmt (+ default .oxfmtrc.json); reformat repo
  • typecheck via tsgo (@typescript/native-preview); drop removed baseUrl from tsconfig.app.json
  • lint CSS with @lyricalstring/gale over src/**/*.{css,scss}
  • add lint-staged; .husky/pre-commit runs typecheck + format:staged
  • void fire-and-forget async IIFEs in route pages (no-floating-promises)
  • system-check runs clean format:check lint:ts lint:css typecheck test build
  • vite.config.ts sets reporters: ["dot"] for vitest; add @vitest/coverage-v8 and a test:coverage script
  • coverage scoped to src/**/*.{ts,tsx}, text + html reporters; ignore coverage output dir
  • unit tests for src/lib/queries.ts and sessionStore/authStore/themeStore/uiStore
  • function coverage 12.5% → 55.2%
  • add the pr-format skill under .claude/skills/: CRMR: title prefix, flat bullet body derived from git log main..HEAD, fixed section set, backticks on every code token, zero agent attribution, never a Verification section
  • README.md skills table documents pr-format
  • delete docs/superpowers/specs/ + docs/superpowers/plans/ for the three shipped features (v1, vitest setup, modules.kind); archived in Notion
  • README.md gains a Specs and plans section: docs/superpowers/ holds unshipped work only, shipped specs archive to Notion

Test notes

  • queries.test.ts mocks @/lib/supabase with a chainable thenable builder; covers all fetch/insert/update paths and error branches
  • sessionStore.test.ts covers start/recordAnswer/advance/setIndex/discard/reset incl. unknown-slug guards and clamping
  • authStore.test.ts covers bootstrap, auth-state changes, signIn/signUp/signInWithMagicLink/signOut success and error paths
  • themeStore.test.ts covers setMode, init media-query listener, cleanup; uiStore.test.ts covers toggleSidebar/setSidebarOpen and persisted state
  • stores run in the node environment via vi.hoisted + vi.stubGlobal stubs for window/localStorage/matchMedia/document — no React-rendering deps added
  • zustand persist reads window.localStorage, which Node 26 leaves undefined without --localstorage-file

@netlify

netlify Bot commented Aug 6, 2026

Copy link
Copy Markdown

Deploy Preview for crammr ready!

Name Link
🔨 Latest commit 144915c
🔍 Latest deploy log https://app.netlify.com/projects/crammr/deploys/6a764b89e81e3700086fccde
😎 Deploy Preview https://deploy-preview-3--crammr.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@codebend3r
codebend3r force-pushed the adding-checks branch 3 times, most recently from 597665a to a184dde Compare August 6, 2026 23:33
@codebend3r codebend3r changed the title CRMR: rename check.yml to ci.yml, run on PRs only Swap toolchain, add PR-only CI, and raise function coverage past 50% Aug 7, 2026
@codebend3r codebend3r changed the title Swap toolchain, add PR-only CI, and raise function coverage past 50% CRMR: swap to the oxlint/oxfmt/tsgo/gale toolchain, add PR-only CI, and cover queries + stores with tests Aug 7, 2026
@codebend3r
codebend3r force-pushed the adding-checks branch 2 times, most recently from 7d08835 to 2d19ab8 Compare August 7, 2026 21:11
…ly CI, and cover `queries` + stores with tests

- rename `check.yml` to `ci.yml`; trigger on `pull_request` only, run each script as its own step, add `concurrency`, Node from `.nvmrc`, bun install cache
- replace `eslint` with `oxlint --type-aware` (via `oxlint-tsgolint`); delete `eslint.config.js`
- format with `oxfmt` (+ default `.oxfmtrc.json`); reformat repo
- typecheck via `tsgo` (`@typescript/native-preview`); drop removed `baseUrl` from `tsconfig.app.json`
- lint CSS with `@lyricalstring/gale` over `src/**/*.{css,scss}`
- add `lint-staged`; `.husky/pre-commit` runs `typecheck` + `format:staged`
- `void` fire-and-forget async IIFEs in route pages (`no-floating-promises`)
- `system-check` runs `clean format:check lint:ts lint:css typecheck test build`
- `vite.config.ts` sets `reporters: ["dot"]` for vitest; add `@vitest/coverage-v8` and a `test:coverage` script
- coverage scoped to `src/**/*.{ts,tsx}`, `text` + `html` reporters; ignore `coverage` output dir
- unit tests for `src/lib/queries.ts` and `sessionStore`/`authStore`/`themeStore`/`uiStore`
- function coverage 12.5% → 55.2%
- add the `pr-format` skill under `.claude/skills/`: `CRMR:` title prefix, flat bullet body derived from `git log main..HEAD`, fixed section set, backticks on every code token, zero agent attribution, never a `Verification` section
- `README.md` skills table documents `pr-format`
- delete `docs/superpowers/specs/` + `docs/superpowers/plans/` for the three shipped features (v1, `vitest` setup, `modules.kind`); archived in Notion
- `README.md` gains a `Specs and plans` section: `docs/superpowers/` holds unshipped work only, shipped specs archive to Notion
@codebend3r
codebend3r merged commit e14e05c into main Aug 7, 2026
6 checks passed
@codebend3r
codebend3r deleted the adding-checks branch August 7, 2026 21:32
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