[ci] release#58
Merged
Merged
Conversation
commit: |
bombshell-bot
Bot
force-pushed
the
changeset-release/main
branch
6 times, most recently
from
July 25, 2026 23:57
728c8fc to
18746ac
Compare
bombshell-bot
Bot
force-pushed
the
changeset-release/main
branch
from
July 26, 2026 00:10
18746ac to
10a4f7b
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.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@bomb.sh/tools@0.6.0
Minor Changes
23997e5: Runs
publintas a publish gate inbsh buildand generates types by defaultbsh buildnow runspublint(strict mode) against the emitteddist/and fails on errors — publishing mistakes like missing declaration files or brokenexportstargets are caught at build time instead of at publish..d.mts) are now generated by default; pass--no-dtsto opt out. If yourpackage.jsondeclares types but they aren't emitted, the build now fails.No entry files matched: …) instead of tsdown's opaqueError: undefined Cannot find entry.bsh publintoutput now renders full messages (e.g. whichexportstarget is broken) instead of bare rule codes.e4ad9d2: Makes
bshpass its own lint and widens the test fixture API*.config.*files and oxlint JS plugins (rules/**) fromimport/no-default-export— config files and plugins legitimately require default exports.Fixture.write()andFixture.append()in@bomb.sh/tools/test-utilsnow accept plain strings (previously typedUint8Array-only, which contradicted the runtime behavior).bsh testraises the default vitesttestTimeoutto 15s — integration tests spawn real oxlint/knip binaries, which can exceed 5s on a loaded machine.node:pathusage with URL APIs, consolidates the duplicate knip config (package.json#knipwas silently ignored in favor ofknip.jsonc), and throws a codedToolsErrorinstead of a genericError.f66e1df: Makes
bsh lint --fixfix far more than it used to--fixnow chainsknip --fixafter oxlint: unused dependencies and devDependencies are removed frompackage.jsonautomatically. Dead-code fixes (unused exports/types) additionally run with--fix --strict; unused files are never deleted automatically. knip fixes respect your knip config — keepignoreDependenciesaccurate, since untraceable deps (e.g. binaries referenced by path) will otherwise be removed.no-consolerule is replaced bybombshell-dev/no-console-log, which auto-fixesconsole.log→console.info(semantically neutral in Node — they're the same stdout write). Other unlisted console methods are still flagged but not auto-fixed.74356f7: Scopes the
bombshell-dev/exported-function-asyncandbombshell-dev/require-export-jsdoclint rules to a package's public API surfacebsh lintnow derives the public surface frompackage.json(exports,bin, andmain/module, mappingdist/paths back tosrc/), including conventionalpackages/*/workspace members. These two rules no longer fire on internal modules — only on files consumers can actually import. Packages without a publish surface (apps, examples) are exempt entirely, and wildcard passthrough exports ("./*": "./dist/*") don't designate surface.c276677: Restructures
bsh lintoutput and tiers knip's dead-code checks behind--strict--warningsto see them). Warnings never affect the exit code, so this keeps actual failures visible.--format jsonfor a machine-readable report ({ summary, violations }). Usepnpm -s run lint -- --format jsonto keep stdout clean.--strict— they fire constantly mid-implementation and are only meaningful as a commit-time gate. Dependency hygiene issues (unused dependencies/devDependencies) still always run.tsgosilently type-checking nothing: file arguments made it skip the projecttsconfig(TS5112), so default runs reported zero type errors. Type checking now always runs in project mode and explicit targets filter the report instead. This may surface previously hidden type errors../srcto the whole project (gitignored paths likedist/are respected), matching the scope of knip and tsgo.unicorn/consistent-function-scopingandno-underscore-dangle, which fired frequently but were never deliberately enabled.--fixnow only exits non-zero when errors remain (previously any warning failed the run).83c20f7: Replaces the stock
max-paramslint rule with a Bombshell-aware versionThe 2-parameter limit (use an options bag beyond that) now only applies to signatures we author. Functions conforming to APIs we don't control are exempt:
overridemethods, members of classes thatextendsorimplements(e.g. Node streams, platform-shaped interfaces), and inline callbacks passed to other functions.7a80756: Updates the shared
tsconfig.jsonbaseline for modern Node packagestargetandlibmove fromes2022toes2024, so modern APIs likeArray.prototype.toSortedandPromise.withResolverstype-check without shims."types": ["node"]. Packages must now have@types/nodeinstalled — missing it previously surfaced as dozens ofCannot find name 'process'/'Buffer'(TS2591) errors; now it's a single actionableCannot find type definition file for 'node'(TS2688). Remedy:pnpm add -D @types/node.Patch Changes
7fe9353: Updates the
lint,build, andlifecycleskills to match currentbshbehaviorThe lint skill no longer claims publint runs in
pnpm run lint(it gatespnpm run build), documents--strict,--warnings, and--format json, and adds a remedies table mapping common violations to their sanctioned fixes. The lifecycle skill moves the knip dead-code gate (lint --strict) to the PR handoff step.