Skip to content

#1290 Upgrade eslint-config-typescript to 10 and complete manifest metadata - #1301

Merged
williamthorsen merged 2 commits into
mainfrom
1290
Aug 13, 2026
Merged

#1290 Upgrade eslint-config-typescript to 10 and complete manifest metadata#1301
williamthorsen merged 2 commits into
mainfrom
1290

Conversation

@williamthorsen

@williamthorsen williamthorsen commented Aug 13, 2026

Copy link
Copy Markdown
Owner

What

Upgrades @williamthorsen/eslint-config-typescript to v10 and adds missing package.json values required by rules activated in the upgrade.

codeassembly's empty exports had been the declaration that the package has no library surface. This has been changed to {"./package.json": "./package.json"}, which complies with the new rules without exposing an importable module.

Why

Five packages carried no attribution, the three publishable ones made no tree-shaking declaration, and two fields sat empty as placeholders. The upgraded config makes each of these an error, so the repository cannot take the upgrade while they remain: nmr lint:strict, and nmr ci with it, fails on the ten violations.

Details

⚙️ Tooling

  • The root's keywords is populated with ["agents", "ai", "code-orchestration", "monorepo"] rather than removed. require-keywords skips private packages, so removal was available; the empty array was stubbed intent worth discharging.
  • codeassembly declares exports as {"./package.json": "./package.json"}. The bin wrapper is unaffected: bin/codeassembly.js loads dist/esm/cli.js by file URL, which bypasses exports entirely.
  • sideEffects: false on codeassembly, @williamthorsen/kb, and codeassembly-lifecycle, the three packages require-sideEffects reaches. The only import-time effects in the three are the top-level await main() in packages/agents/src/cli.ts and packages/kb/src/cli/index.ts, and both are bin entry points reached by file URL and absent from every exports map, so no consumer can import them and no bundler will see them.
  • author on @codeassembly/factory, codeassembly-fleet, codeassembly-foreman, codeassembly-mcp, and codeassembly-run-core, byte-identical to the four manifests already carrying one. require-author is the one attribution rule this config enables that does not skip private packages, and aligning it upstream was proposed and rejected (Enforce specify-peers-locally, with peers declared through the pnpm catalog eslint-config#164). The value is hand-written rather than autofixed: the rule's fixer derives it from git config and drops the (https://github.com/williamthorsen) suffix, which would leave the five differing from the existing four.

📦 Dependencies

  • @williamthorsen/eslint-config-typescript 8.7.0 → 10.0.0 and @williamthorsen/strict-lint 9.4.0 → 11.0.0. The lockfile carries those two specifier changes plus the transitive @typescript-eslint 8.65.0 → 8.66.0 dedupe they force.
  • Of the reactivated rules, specify-peers-locally reports nothing: no workspace package declares peerDependencies.

Closes #1290

Upgrades `@williamthorsen/eslint-config-typescript` from 8.7.0 to 10.0.0 and `@williamthorsen/strict-lint` from 9.4.0 to 11.0.0.

The config reactivates four rules its 8.7.0 release had switched off -- `no-empty-fields`, `require-repository`, `require-sideEffects`, and `specify-peers-locally` -- and newly errors on `no-local-dependencies`, `require-author`, `require-bugs`, `require-engines`, `require-homepage`, and `require-keywords`.
Declares `sideEffects: false` on the three publishable packages -- `codeassembly`, `@williamthorsen/kb`, and `codeassembly-lifecycle` -- so a consumer's bundler can tree-shake them, and adds `author` to the five private packages, so every manifest in the monorepo now carries attribution.

`codeassembly` gains an `exports` map naming `./package.json` alone. The package ships a CLI and no library surface, and this form leaves it unimportable while satisfying `require-exports`, which forbids deleting the field outright. The monorepo root's `keywords`, previously an empty array, names the repository's subject.
@williamthorsen williamthorsen added the tooling Development tools label Aug 13, 2026
@github-actions

Copy link
Copy Markdown

Dependency audit

Production dependency audit passed.

@williamthorsen williamthorsen self-assigned this Aug 13, 2026
@williamthorsen
williamthorsen marked this pull request as ready for review August 13, 2026 05:10
@williamthorsen williamthorsen added the documentation Improvements or additions to documentation label Aug 13, 2026
@williamthorsen
williamthorsen merged commit 0cff9d7 into main Aug 13, 2026
3 checks passed
@williamthorsen
williamthorsen deleted the 1290 branch August 13, 2026 05:15
williamthorsen added a commit that referenced this pull request Aug 13, 2026
…e-v0.3.0 codeassembly-v0.9.0 factory-v0.2.6 codeassembly-mcp-v0.2.5

codeassembly-v0.9.0
- #1288 feat: State mutability and name the lede reader at the artifact type lists (#1303)
- #1285 fix: Require plain bullets for checklists on both update-jira-ticket paths (#1302)
- deps: Upgrade all deps to latest version
- #1290 tooling: Upgrade eslint-config-typescript to 10 and complete manifest metadata (#1301)
- #1294 feat: Specify artifact mutability and its sanctioned exceptions (#1297)
- #1293 fix: Present and classify discretionary findings as actionable (#1295)
- #1289 tooling: Remove shelled nmr calls from package manifests (#1291)
- #1280 feat: Add a refresh path that edits an existing AGENTS.md instead of redrafting it (#1287)
- #1055 feat: Replace the lede doctrine with corpus-derived guidance and retire the changelog-writer (#1286)
- deps: Upgrade all deps to latest version
- #1264 refactor: Consolidate error-message extraction on toolbelt.errors' describeError (#1284)
- #1263 refactor: Retire the deferred-lint mechanism and adopt toolbelt.errors in agents (#1279)
- #1262 refactor: Hoist unreadable for-of expressions and promote the lint rule to an error (#1276)
- #1267 fix: Extend the no-hard-wrapping instruction to every GitHub composer (#1275)
- #1177 fix: Rewrite links, tokens, and template variables in a Markdown file support entry (#1273)
- #1176 feat: Add a ticketing-preferences hook to the skills that split and create tickets (#1268)
- #1252 fix: Keep a skill's own sections out of injected guidance (#1266)
- #1260 refactor: Fix lint and retire rule deferrals (#1265)
- #1247 feat: Add a personal tooling-preferences rulebook (#1257)
- #1251 feat: Let a rulebook declare that a guidance hook is how it is reached (#1259)
- #1246 feat: Guard home-domain writes and record their provenance (#1254)
- #1175 feat: Link new tickets to their blockers and parents (#1249)

factory-v0.2.6
- deps: Upgrade all deps to latest version
- #1290 tooling: Upgrade eslint-config-typescript to 10 and complete manifest metadata (#1301)
- deps: Upgrade all deps to latest version
- deps: Upgrade all deps to latest version
- #1264 refactor: Consolidate error-message extraction on toolbelt.errors' describeError (#1284)

kb-v0.6.0
- deps: Upgrade all deps to latest version
- #1290 tooling: Upgrade eslint-config-typescript to 10 and complete manifest metadata (#1301)
- #1289 tooling: Remove shelled nmr calls from package manifests (#1291)
- #1264 refactor: Consolidate error-message extraction on toolbelt.errors' describeError (#1284)
- #1261 feat: Attach causes to kb's loader errors and retire its lint deferral (#1272)
- #1260 refactor: Fix lint and retire rule deferrals (#1265)

codeassembly-lifecycle-v0.4.0
- #1290 tooling: Upgrade eslint-config-typescript to 10 and complete manifest metadata (#1301)
- #1289 tooling: Remove shelled nmr calls from package manifests (#1291)
- #1261 feat: Attach causes to kb's loader errors and retire its lint deferral (#1272)
- #1260 refactor: Fix lint and retire rule deferrals (#1265)

codeassembly-mcp-v0.2.5
- deps: Upgrade all deps to latest version
- #1290 tooling: Upgrade eslint-config-typescript to 10 and complete manifest metadata (#1301)
- #1289 tooling: Remove shelled nmr calls from package manifests (#1291)
- #1264 refactor: Consolidate error-message extraction on toolbelt.errors' describeError (#1284)

codeassembly-run-core-v0.3.0
- deps: Upgrade all deps to latest version
- #1290 tooling: Upgrade eslint-config-typescript to 10 and complete manifest metadata (#1301)
- #1289 tooling: Remove shelled nmr calls from package manifests (#1291)
- #1264 refactor: Consolidate error-message extraction on toolbelt.errors' describeError (#1284)
- #1261 feat: Attach causes to kb's loader errors and retire its lint deferral (#1272)
- #1260 refactor: Fix lint and retire rule deferrals (#1265)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation tooling Development tools

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Resolve package-json rule violations

1 participant