CRMR: swap to the oxlint/oxfmt/tsgo/gale toolchain, add PR-only CI, and cover queries + stores with tests - #3
Merged
Merged
Conversation
✅ Deploy Preview for crammr ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
codebend3r
force-pushed
the
adding-checks
branch
3 times, most recently
from
August 6, 2026 23:33
597665a to
a184dde
Compare
check.yml to ci.yml, run on PRs onlyoxlint/oxfmt/tsgo/gale toolchain, add PR-only CI, and cover queries + stores with tests
codebend3r
force-pushed
the
adding-checks
branch
2 times, most recently
from
August 7, 2026 21:11
7d08835 to
2d19ab8
Compare
…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
force-pushed
the
adding-checks
branch
from
August 7, 2026 21:18
2d19ab8 to
144915c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changes
check.ymltoci.yml; trigger onpull_requestonly, run each script as its own step, addconcurrency, Node from.nvmrc, bun install cacheeslintwithoxlint --type-aware(viaoxlint-tsgolint); deleteeslint.config.jsoxfmt(+ default.oxfmtrc.json); reformat repotsgo(@typescript/native-preview); drop removedbaseUrlfromtsconfig.app.json@lyricalstring/galeoversrc/**/*.{css,scss}lint-staged;.husky/pre-commitrunstypecheck+format:stagedvoidfire-and-forget async IIFEs in route pages (no-floating-promises)system-checkrunsclean format:check lint:ts lint:css typecheck test buildvite.config.tssetsreporters: ["dot"]for vitest; add@vitest/coverage-v8and atest:coveragescriptsrc/**/*.{ts,tsx},text+htmlreporters; ignorecoverageoutput dirsrc/lib/queries.tsandsessionStore/authStore/themeStore/uiStorepr-formatskill under.claude/skills/:CRMR:title prefix, flat bullet body derived fromgit log main..HEAD, fixed section set, backticks on every code token, zero agent attribution, never aVerificationsectionREADME.mdskills table documentspr-formatdocs/superpowers/specs/+docs/superpowers/plans/for the three shipped features (v1,vitestsetup,modules.kind); archived in NotionREADME.mdgains aSpecs and planssection:docs/superpowers/holds unshipped work only, shipped specs archive to NotionTest notes
queries.test.tsmocks@/lib/supabasewith a chainable thenable builder; covers all fetch/insert/update paths and error branchessessionStore.test.tscoversstart/recordAnswer/advance/setIndex/discard/resetincl. unknown-slug guards and clampingauthStore.test.tscoversbootstrap, auth-state changes,signIn/signUp/signInWithMagicLink/signOutsuccess and error pathsthemeStore.test.tscoverssetMode,initmedia-query listener, cleanup;uiStore.test.tscoverstoggleSidebar/setSidebarOpenand persisted statevi.hoisted+vi.stubGlobalstubs forwindow/localStorage/matchMedia/document— no React-rendering deps addedzustandpersistreadswindow.localStorage, which Node 26 leavesundefinedwithout--localstorage-file