chore: apply the over-engineering audit's five cuts - #38
Merged
Conversation
- Ten byte-identical `vitest.config.ts` files become one-line re-exports of a root `vitest.shared.ts`. A workspace with real divergence (`core`'s coverage thresholds, the amqp/temporal globalSetup and cache configs) keeps its own file — divergence stays visible in the workspace, not hidden in an override. knip ignores the shared file because the root package deliberately has no `vitest` dependency. - Two doc passages still described `examples/order-worker`, a workspace deleted before the rename: Thesis #1's three-deployments claim now names the runtimes that exist (api → CONFLICT, temporal → `nonRetryable`, amqp → dead-letter), and `examples/README.md`'s unit-identity paragraph and needs list drop the ghost runtime (`queueWorkerRuntime`) and state `temporalWorkerRuntime`'s and `orderAmqpRuntime`'s real `needs`. - `.changeset/no-release-first-publish.md` explained a decision in the di repository's release history; here it was a no-op file `changeset version` would consume into nothing. - `turbo.json`'s `dev` task dropped its `^db:migrate` edge: `dev` exists only in the five published packages, none of which depend on `order-infrastructure`, so the edge could never fire. - (Disk only) four untracked husk directories holding nothing but `node_modules`/`.turbo` are gone: `packages/start`, `examples/order-{amqp,temporal,worker}`. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
This PR applies several repo-wide “over-engineering audit” cleanups: it centralizes identical Vitest configuration, removes an unused changeset, simplifies Turbo task dependencies, and updates documentation to reflect the current example/runtime set.
Changes:
- Introduce
vitest.shared.tsand switch multiple workspaces to re-export it from theirvitest.config.ts. - Remove an unused
.changeset/no-release-first-publish.mdand adjustturbo.jsondev-task dependencies. - Update docs (
CLAUDE.md,examples/README.md) to remove stale references and correct runtime/needs descriptions.
Reviewed changes
Copilot reviewed 16 out of 16 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
vitest.shared.ts |
Adds a shared Vitest config for workspaces without special needs. |
turbo.json |
Removes the ^db:migrate dependency from the dev task. |
knip.json |
Ignores vitest.shared.ts to avoid knip dependency/reporting noise at the root. |
packages/di/vitest.config.ts |
Replaces duplicated Vitest config with a re-export of the shared config. |
examples/order-temporal-contract/vitest.config.ts |
Re-exports the shared Vitest config. |
examples/order-infrastructure/vitest.config.ts |
Re-exports the shared Vitest config. |
examples/order-domain/vitest.config.ts |
Re-exports the shared Vitest config. |
examples/order-config/vitest.config.ts |
Re-exports the shared Vitest config. |
examples/order-application/vitest.config.ts |
Re-exports the shared Vitest config. |
examples/order-api/vitest.config.ts |
Re-exports the shared Vitest config. |
examples/order-api-contract/vitest.config.ts |
Re-exports the shared Vitest config. |
examples/order-amqp-contract/vitest.config.ts |
Re-exports the shared Vitest config. |
examples/hexagonal-order-api/vitest.config.ts |
Re-exports the shared Vitest config. |
examples/README.md |
Updates example documentation around unit IDs and runtime needs. |
CLAUDE.md |
Updates thesis/examples text to reflect the current example set and outcome ordering. |
.changeset/no-release-first-publish.md |
Removes an unused/no-op changeset file. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
…as it The pointer said "see its own README for why", but the explanation — delivery tags are per-channel and reset after reconnect — lives in @btravstack/amqp's README, not the worker example's. The old text had the same wrong target. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
Five findings from a repo-wide over-engineering audit, applied. Net −131 lines.
The cuts
vitest.config.ts→ one-line re-exports of a rootvitest.shared.ts(nine examples +packages/di). Workspaces with realdivergence —
core's coverage thresholds,amqp's and the workers'globalSetup/cache configs — keep their own file: divergence stays visible in
the workspace, not hidden in an override. knip ignores the shared file because
the root package deliberately declares no
vitestdependency.examples/order-worker, a workspacedeleted before the rename. Thesis feat: the application kernel #1 now names the three runtimes that exist,
with the outcome order corrected (api →
CONFLICT, temporal →nonRetryable,amqp → dead-letter), and
examples/README.mddrops the ghostqueueWorkerRuntimeand statestemporalWorkerRuntime's andorderAmqpRuntime's realneeds([Outbox, Logger]for the latter — the oldtext claimed
[PlaceOrder, Logger]for all three, which was wrong twice over)..changeset/no-release-first-publish.mdexplained a decision in the direpository's release history; here it was a no-op file
changeset versionwould consume into nothing.
turbo.json'sdevtask drops^db:migrate:devexists only in thefive published packages, none of which depend on
order-infrastructure, sothe edge could never fire.
node_modules/.turbodeleted:packages/start,examples/order-{amqp,temporal,worker}.Checked and deliberately not cut
createDeferred(looks likePromise.withResolvers, but the publishedengines: ">=20"floor blocks it and the idempotent resolve is the point), the32-file one-concept-per-file
packages/core/src, and themessage-units.ts/activity-units.tssimilarity across runtime packages —the price of packages that don't import each other, which is a stated thesis.
Gate
format✓lint✓typecheck✓knip✓build✓test21/22 — the onefailure is the known local port-9000 clash in
packages/core, unrelated. Allten suites on the shared vitest config pass.
🤖 Generated with Claude Code