Clear the lint backlog and refresh dependencies - #21
Open
maxholman[bot] wants to merge 14 commits into
Open
maxholman[bot] wants to merge 14 commits into
maxholman[bot] wants to merge 14 commits into
Conversation
Co-Authored-By: LLM <noreply@block65.dev>
Co-Authored-By: LLM <noreply@block65.dev>
These blocks were jsdoc and enum experiments left behind in comments. The lint rules for comment prose fire on them, and nothing reads them. Co-Authored-By: LLM <noreply@block65.dev>
Collapses the comment above each private declaration to one line, drops colons and semicolons, and replaces the narrative phrasing the block65 rules flag. Two more commented-out throws go with it. Co-Authored-By: LLM <noreply@block65.dev>
Co-Authored-By: LLM <noreply@block65.dev>
Three stay: `QueryParamSpec | undefined`, `[string, string]` and `WriterFunction` supply the contextual type over an object literal, and removing them widens the literal properties. Co-Authored-By: LLM <noreply@block65.dev>
Query style goes through a type predicate, a parameter schema through a `$ref` check, `in: "querystring"` through a widened local, and the CLI tags through `Array.isArray`. The casts left at a boundary the checker cannot see now carry a TYPESAFETY reason. Co-Authored-By: LLM <noreply@block65.dev>
Co-Authored-By: LLM <noreply@block65.dev>
Manifest revisions build from one pass over the files, so the writes no longer await in sequence and the record is complete where it is made. `typedEntries` keeps the middleware target keys through `Object.entries`. The regression tests fail on an absent match instead of falling back to `""`, which had been letting a later assertion pass for the wrong reason. Co-Authored-By: LLM <noreply@block65.dev>
@types/node 26.6.1 depends on undici-types ~8.9.0, which is the condition the comments named, and tsc now reports all three directives as unused. Co-Authored-By: LLM <noreply@block65.dev>
The one-line budget for a comment above a private declaration left no room for why `deepObject` normalises its explode, why int64 maps to bigint, what RFC 3339 requires beyond ISO 8601, or why these tests write their wire strings out by hand. Those move into the function bodies, where the budget does not apply. `return undefined` became a lint error once the return annotations came off, so the six sites return bare. Co-Authored-By: LLM <noreply@block65.dev>
An exclusion exempts one version from the cooling-off period, so it is spent once that version ages past it. `@block65/rest-client` was listed without a version, which exempted every future release, and the entry was 16 days stale: the tree resolves 14.0.1 while the list named 14.0.0. `minimumReleaseAgeExcludePrune` drops an entry once its version ages out, so the list stays honest without being swept by hand. Regenerating the lockfile without the entry reproduces it byte for byte, so no resolution depended on it. Co-Authored-By: LLM <noreply@block65.dev>
`pnpm/action-setup` takes the version from its own `version` key or from `packageManager` in package.json, and `e2da29f` removed the latter, so every run failed during setup. The workflow only triggers on a pull request and none was opened since, so nothing surfaced it. Setting it here rather than restoring `packageManager`: under pnpm 12 that field makes pnpm manage itself, which writes its own per-platform binaries into the lockfile. rest-client has the same break from the same change. Co-Authored-By: LLM <noreply@block65.dev>
maxholman
force-pushed
the
chore/lint-cleanup-and-query-decoding
branch
from
September 19, 2026 07:30
8f4fa47 to
f3f7f8d
Compare
A tag is mutable, so `@v6` resolves to whatever the publisher last moved it to. The comment carries the version a human reads. pr.yml was still on v4 while deploy.yml was on v6. Co-Authored-By: LLM <noreply@block65.dev>
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.
12 commits on top of
e4021ae. No behaviour change to the generator: the fixtures and snapshots are untouched.Lint: 275 warnings to 29, 0 errors
196 of the 275 were comment-rule warnings, spread across 105 comments.
deepObjectnormalises its explode, why int64 maps to bigint, what RFC 3339 adds over ISO 8601), the reason moved into the function body rather than being dropped$refcheck for parameter schemas,Array.isArrayfor the CLI tags. The casts that remain sit at a boundary the checker cannot see and now carry aTYPESAFETY:reasonQueryParamSpec | undefined,[string, string]andWriterFunctionsupply the contextual type over an object literal, and removing them widens the literal properties and fails the buildtypedEntrieskeeps the middleware target keys throughObject.entriesTests
The regression tests fell back to
""when a type alias or regex match was absent, which let a latertoContainpass for the wrong reason. They now fail with the name of what the generator did not emit.Build
@types/nodeto 26.6.1,type-festto 5.10.0@ts-expect-errorworkarounds.@types/node26.6.1 depends onundici-types ~8.9.0, which is the condition their own comments named, andtscreports all three as unused@block65/rest-clientwas listed without a version, which exempts every future release; the entry was 16 days stale and named 14.0.0 while the tree resolves 14.0.1.minimumReleaseAgeExcludePrunenow drops an entry once its version ages outNot done
14 warnings remain in the
processOpenApiDocumentsize cluster: 1097 lines, 238 statements, complexity 187. Splitting it is a separate change and wants its own review. Twono-filled-object-literalwarnings invalibot.tssit inside that same function and need the same restructure.Verification
make typecheckclean, 40/40 tests, 0 lint errors, 29 warnings. Regeneratingpnpm-lock.yamlfrom scratch reproduces it byte for byte, so no resolution depended on the exclusion that went.