Skip to content

ci: make lint pass, so tests actually run - #67

Merged
dickhardt merged 1 commit into
mainfrom
fix/ci-lint
Aug 5, 2026
Merged

ci: make lint pass, so tests actually run#67
dickhardt merged 1 commit into
mainfrom
fix/ci-lint

Conversation

@dickhardt

Copy link
Copy Markdown
Member

CI has failed on every branch since February. Because npm run lint runs before lerna run test, the test suite has not executed on a pull request in months — PR #65 merged in an UNSTABLE state for this reason. The publish workflow tests separately, so releases stayed gated; pull requests did not.

Two causes

Prettier had no ignore for generated output. .prettierignore listed node_modules, dist, archive*; the eslint config additionally ignored dist-test. The two lists disagreed, so prettier checked dist-test and .svelte-kit — which only exist after a build — and failed on 106 files nobody wrote. Aligned them and added .svelte-kit and .claude.

Eslint reported 14 errors. Seven from .claude/worktrees, a local directory it should never have read. The other seven were this idiom:

const { d, p, q, dp, dq, qi, ...publicJwk } = privateJwk

Naming the discarded fields is how the omission works — they are not unused. Set ignoreRestSiblings instead of scattering eslint-disable comments, which also retired the ones already in the tree.

One thing worth revisiting separately

Removing those disables reformatted the files they were in, which prettier then flagged. That is an ordering problem in the script:

prettier --check . && eslint --fix

The formatter check runs before the fixer, so anything eslint rewrites is never checked, and the failure surfaces on someone else’s next run. I left the script alone and committed the formatted result rather than change the lint contract in a fix PR — but --fix in CI mutates a checkout nothing will commit, so eslint without --fix is probably what CI wants.

Verified

prettier --check clean, eslint clean, npm run lint exits 0, and httpsig (145), better-auth and email-verification all pass.

🤖 Generated with Claude Code

https://claude.ai/code/session_01LXExbWHeem2SNb7tZ2LGnc

CI has failed on every branch since February. `npm run lint` runs
`prettier --check .`, which walked into generated build output, and
because lint runs before `lerna run test`, the test suite has not
executed on a pull request in months. The publish workflow tests
separately, so releases were still gated; pull requests were not.

Two causes.

Prettier had no ignore for generated output. `.prettierignore` listed
node_modules, dist and archive*, while the eslint config additionally
ignored dist-test. So prettier checked `dist-test` and `.svelte-kit`,
which exist only after a build, and failed on 106 files that nobody
wrote. Aligned the two ignore lists and added `.svelte-kit` and
`.claude`.

Eslint reported 14 errors. Seven came from `.claude/worktrees`, a local
directory eslint should never have been reading. The rest were the
rest-sibling idiom used to strip private members from a JWK, where
naming the discarded fields is how the omission works -- they are not
unused. Set `ignoreRestSiblings` rather than scattering disable
comments, which also retired the ones already in the tree.

Removing those disables reformatted the files they were in, which
prettier then flagged. That is a real ordering problem in the script:
`prettier --check . && eslint --fix` runs the formatter check before
the fixer, so anything eslint rewrites is never formatted, and the
failure surfaces on someone else's next run. Left the script alone and
committed the formatted result, but the order is worth revisiting --
`--fix` in CI mutates a checkout nothing will commit.

Verified: prettier clean, eslint clean, lint exits 0, and httpsig,
better-auth and email-verification all pass.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LXExbWHeem2SNb7tZ2LGnc
@dickhardt
dickhardt merged commit c16113f into main Aug 5, 2026
1 check passed
@dickhardt
dickhardt deleted the fix/ci-lint branch August 5, 2026 21:31
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