Skip to content

v28 is for Koko Da Doll#3208

Open
RobinTail wants to merge 110 commits intomasterfrom
make-v28
Open

v28 is for Koko Da Doll#3208
RobinTail wants to merge 110 commits intomasterfrom
make-v28

Conversation

@RobinTail
Copy link
Copy Markdown
Owner

@RobinTail RobinTail commented Feb 7, 2026

Koko Da Doll

Koko Da Doll (aka Rasheeda Williams) was a 35-year-young Black trans woman, performance artist, singer, and star
of the acclaimed documentary Kokomo City. Born in College Park, Georgia, she was based in Atlanta and
became a prominent voice for transgender visibility and the rights of Black trans women.

She was a talented rap artist who released two singles: "Trick" (2020) and "Bulletproof" (2022).

A song she created was featured on the TV show The Chi in 2023, showcasing her artistic talents beyond her advocacy work.

Koko was one of four Black trans women featured in the groundbreaking documentary Kokomo City, directed by D. Smith. The film premiered at the 2023 Sundance Film Festival and won both the NEXT Innovator Award and NEXT Audience
Award. It also received the Berlinale Panorama Audience Award.

In the film, Koko spoke openly about her experiences as a sex worker and the challenges faced by Black trans women. She discussed doing sex work to avoid homelessness for her mother, sister, and herself.

After the Sundance première, Koko wrote on Instagram:

"I will be the reason there's more opportunities and doors opening for transgender girls."

She hoped that her participation in the film would help save lives and create more opportunities for young trans women.

On April 18, 2023, at around 11pm, Koko Da Doll was found dead with a gunshot wound on a sidewalk near Holmes Shopping
Plaza in Southwest Atlanta. She was 35 years old.

A 17-year-old suspect was arrested on April 27, 2023, on suspicion of murder, aggravated assault, and possession of a firearm in the commission of a felony. Atlanta police indicated that a hate crime investigation was ongoing.

Koko was the 13th trans person killed in the United States in 2023. Following her death, Kokomo City was dedicated to her memory. She was honored during the In Memoriam segment at the 2023 BET Awards.

The New York Times described her as someone who "brims with vitality, ambition, and insight" — a woman who fought tooth and nail for her life and self-worth.

Her tragic death serves as a stark reminder of the ongoing violence and discrimination faced by trans women in America.

AP News · AL.com · TDoR


👩🏽‍🍳 Cooking...

Summary by CodeRabbit

  • New Features

    • v28: renamed public options/metadata (shortDescription → summary, wrongMethodBehavior → hintAllowedMethods, methodLikeRouteBehavior → recognizeMethodDependentRoutes, noContent → noBodySchema) and added a configurable documentation summarizer.
  • Documentation

    • CHANGELOG/README/SECURITY updated with v28 notes, migration guidance, summarizer docs, and examples updated for new names and metadata usage; guidance to import the Zod plugin once when used.
  • Chores

    • Zod plugin made optional/peer and its runtime API renamed (.brand → .xBrand); supported Node ranges bumped; dev scripts adjusted to run via node with explicit .ts imports.
  • Tests

    • Test suites updated to reflect renames, summarizer behavior, metadata/examples format, and plugin/branding changes.

@RobinTail RobinTail added dependencies Pull requests that update a dependency file CI/CD breaking Backward incompatible changes labels Feb 7, 2026
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Feb 7, 2026

📝 Walkthrough

Walkthrough

Renames public config/metadata keys, moves Zod branding/examples into metadata with new helpers, converts many runtime imports to type-only and updates module specifiers, rewrites the migration ESLint rule with helpers, adjusts CI/Node/tsconfig/build tooling, and replaces manual Promise wrappers with Promise.withResolvers.

Changes

Public API & config renames

Layer / File(s) Summary
Data Shape / Types
express-zod-api/src/config-type.ts
CommonConfig.wrongMethodBehaviorhintAllowedMethods?: boolean; methodLikeRouteBehaviorrecognizeMethodDependentRoutes?: boolean.
Core Implementation
express-zod-api/src/endpoint.ts, express-zod-api/src/endpoints-factory.ts, express-zod-api/src/integration.ts
Renamed metadata/constructor fields: shortDescriptionsummary, noContentnoBodySchema; constructors/types updated accordingly.
Documentation / Changelog
CHANGELOG.md, README.md, SECURITY.md
Docs and changelog updated to describe v28 renames and behavior changes (summarizer, hintAllowedMethods, etc.).
Examples / Tests
example/**, express-zod-api/tests/*
Example usages and tests updated to use new option/property names and examples where relevant.

Zod branding & metadata helpers

Layer / File(s) Summary
New helpers
express-zod-api/src/metadata.ts
Adds brandProperty ("x-brand"), getBrand(subject) and getExamples(subject) to read metadata from Zod registry.
Schema surface changes
express-zod-api/src/*-schema.ts, express-zod-api/src/raw-schema.ts, express-zod-api/src/buffer-schema.ts, express-zod-api/src/upload-schema.ts, express-zod-api/src/date-*.ts, express-zod-api/src/form-schema.ts
Replaced .brand(...) usage with .meta({ [brandProperty]: ... }) to store brand metadata.
Plugin & augmentation
zod-plugin/src/augmentation.ts, zod-plugin/src/runtime.ts, zod-plugin/README.md
Introduces chainable .xBrand(brand?: PropertyKey) augmentation and runtime xBrand patch; removes exported getBrand from plugin.
Call sites / consumers
express-zod-api/src/schema-walker.ts, express-zod-api/src/documentation-helpers.ts, express-zod-api/src/result-helpers.ts, express-zod-api/src/result-handler.ts
Call sites switched to local getBrand/getExamples and adapted logic to read examples/brand from metadata.
Tests
express-zod-api/tests/*, zod-plugin/tests/*
Tests migrated to .meta({ examples }) and .xBrand() patterns; new express-zod-api/tests/metadata.spec.ts added.

Migration rule & helpers

Layer / File(s) Summary
Helpers
migration/helpers.ts
New helper types/functions (NamedProp, queryNamedProp, getPropName, changeProp) to identify and autofix property keys/values in AST.
Rule logic
migration/index.ts
Rewrote migration rule to detect/rename properties: wrongMethodBehavior, methodLikeRouteBehavior, hasSummaryFromDescription, noContent, shortDescription, with value transformations and summarizer insertion/removal fixes.
Tests / README
migration/index.spec.ts, migration/README.md
Updated/expanded spec and README to reflect new rule behavior and version bumps for tooling (eslint/typescript-eslint).

Import style, module specifiers & tsconfig

Layer / File(s) Summary
Compiler config
tsconfig.json, cjs-test/tsconfig.json
Base extends switched to @tsconfig/node22; added allowImportingTsExtensions and verbatimModuleSyntax.
Code changes
many express-zod-api/src/*, express-zod-api/tests/*, example/**, tools/*, *.tsdown.config.ts
Converted many runtime imports to import type, updated local imports to include explicit .ts extensions and JSON import assertions.
Build/packaging metadata
package.json, express-zod-api/package.json, zod-plugin/package.json, migration/package.json, pnpm-workspace.yaml
Moved zod-plugin to optional peerDependency, bumped package versions, narrowed Node engines to `^22.19.0

Promise.withResolvers refactor

Layer / File(s) Summary
Refactor
express-zod-api/src/graceful-helpers.ts, express-zod-api/src/middleware.ts, express-zod-api/tests/graceful-shutdown.spec.ts
Replaced manual new Promise wrappers with Promise.withResolvers() pattern and returned the created promise.

Routing & server behavior

Layer / File(s) Summary
Config-driven behavior
express-zod-api/src/routing-walker.ts, express-zod-api/src/routing.ts
Routing now uses recognizeMethodDependentRoutes (destructured as preferMethod) to interpret method-like keys; wrong-method handler gating now driven by hintAllowedMethods.

CI/workflows & headers

Layer / File(s) Summary
Workflow triggers / matrix
.github/workflows/codeql-analysis.yml, .github/workflows/node.js.yml
Branch filters updated (removed v23, added v27 and make-v28); Node matrix pruned to supported versions.
Job steps
.github/workflows/headers.yml
Step changed invocation from pnpm unrun tools/headers.ts to pnpm node tools/headers.ts; minor permissions formatting adjusted.

Examples, tests & small updates

Layer / File(s) Summary
Examples/tests adjustments
example/**, compat-test/*, esm-test/*, cjs-test/*, many express-zod-api/tests/*
Replaced unrun with node in scripts/spawns, updated import paths to explicit .ts extensions, converted many test imports to import type, migrated tests to metadata-based examples/brands, added/updated expectations accordingly.
Removed side-effect import
express-zod-api/src/index.ts, compat-test/dts.spec.ts
Removed automatic side-effect import of @express-zod-api/zod-plugin from framework entrypoint; removed test asserting framework must import plugin.

Sequence Diagram(s)

sequenceDiagram
    participant Client as Client
    participant Server as Server (express-zod-api)
    participant Router as Routing/initRouting
    participant Docs as Documentation
    participant Meta as metadata helpers

    Client->>Server: HTTP request
    Server->>Router: dispatch route (uses recognizeMethodDependentRoutes)
    Router->>Router: decide method-vs-path keys (preferMethod)
    alt request matches path but wrong method
        Router->>Server: enforce/skip 405+Allow based on hintAllowedMethods
    end
    Docs->>Meta: summarize(endpoint.summary, endpoint.description, trimSummary)
    Docs->>Meta: request examples/brand via getExamples/getBrand
    Meta-->>Docs: returns examples / brand metadata
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~50 minutes

Possibly related PRs

Poem

🐰 I hopped through fields of code and tucked brands into meta,

examples moved to gentle nests, and promises got a better beta.
I renamed a roadside sign from "short" to "summary" bright,
stitched migration helpers by moon and rewired CI at night.
Koko blooms in v28 — a carrot-shaped delight.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title "v28 is for Koko Da Doll" is directly related to the PR's main objective and dedication. It clearly references version 28 and honors Koko Da Doll, matching the PR's primary purpose.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch make-v28

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
Review rate limit: 7/8 reviews remaining, refill in 7 minutes and 30 seconds.

Comment @coderabbitai help to get the list of available commands and usage tips.

@coveralls-official
Copy link
Copy Markdown

coveralls-official Bot commented Feb 7, 2026

Coverage Status

coverage: 100.0%. remained the same — make-v28 into master

@RobinTail RobinTail added this to the v28 milestone Feb 8, 2026
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [eslint](https://eslint.org)
([source](https://redirect.github.com/eslint/eslint)) | [`^9.39.2` →
`^10.0.0`](https://renovatebot.com/diffs/npm/eslint/9.39.2/10.0.0) |
![age](https://developer.mend.io/api/mc/badges/age/npm/eslint/10.0.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint/9.39.2/10.0.0?slim=true)
|
| [eslint](https://eslint.org)
([source](https://redirect.github.com/eslint/eslint)) | [`^9.0.0` →
`^9.0.0 \|\|
^10.0.0`](https://renovatebot.com/diffs/npm/eslint/9.39.2/10.0.0) |
![age](https://developer.mend.io/api/mc/badges/age/npm/eslint/10.0.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint/9.39.2/10.0.0?slim=true)
|

---

### Release Notes

<details>
<summary>eslint/eslint (eslint)</summary>

###
[`v10.0.0`](https://redirect.github.com/eslint/eslint/compare/v9.39.2...4e6c4ac042e321da8fc29ce53ed03c86dcaa44a7)

[Compare
Source](https://redirect.github.com/eslint/eslint/compare/v9.39.2...v10.0.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/RobinTail/express-zod-api).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi45NS4yIiwidXBkYXRlZEluVmVyIjoiNDIuOTUuMiIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6W119-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Robin Tail <robin_tail@me.com>
@socket-security
Copy link
Copy Markdown

socket-security Bot commented Feb 16, 2026

# Conflicts:
#	pnpm-lock.yaml
Comment thread migration/package.json Outdated
Comment thread migration/README.md Outdated
Comment thread migration/README.md Outdated
Comment thread express-zod-api/package.json Outdated
# Conflicts:
#	compat-test/package.json
#	express-zod-api/package.json
RobinTail added a commit that referenced this pull request Apr 30, 2026
4.4 will be supported in #3208 
due to Zod's breaking changes revaled in #3355 
see
#3355 (comment)
for details

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Documentation**
* Clarified Zod compatibility: support limited to versions below 4.4.0
due to upstream behavior changes; note that broader Zod 4.4+ support
will be delivered in a future major release.

* **Chores**
* Tightened dependency version constraints across packages and updated
release notes and README to enforce the stated Zod compatibility
boundaries.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: pullfrog[bot] <226033991+pullfrog[bot]@users.noreply.github.com>
RobinTail and others added 2 commits April 30, 2026 14:03
# Conflicts:
#	express-zod-api/package.json
#	pnpm-workspace.yaml
#	zod-plugin/package.json
adds xBrand() method to Zod Plugin instead of patching exiting one.
due to #3357

---------

Co-authored-by: pullfrog[bot] <226033991+pullfrog[bot]@users.noreply.github.com>
@RobinTail RobinTail added enhancement New feature or request external bug it's a bug, but in a dependency labels Apr 30, 2026
Copy link
Copy Markdown
Contributor

@pullfrog pullfrog Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No new issues. Reviewed the following changes:

  • Renamed .brand() to .xBrand() in the zod-plugin to avoid conflicting with Zod 4.4's internal branding mechanism, using a simple value property descriptor instead of the previous getter/setter hack
  • Widened Zod peer dependency from ~4.3.4 to ^4.3.4, bumped dev dependency to ^4.4.1
  • Removed getBrand() export from zod-plugin (moved to main package's metadata.ts)
  • Added filterNaming in fixReferences to handle Zod 4.4 no longer emitting meta({ id }) into JSON schema output — falls back to the $defs key name, filtering out auto-generated schema\d+ names
  • Updated env test and snapshots to reflect Zod 4.4 behavior: id no longer appears in depiction, z.undefined() properties are no longer optional, cuid regex updated
  • Updated documentation/README/CHANGELOG to document .xBrand() and Zod 4.4 compatibility

Prior review feedback:

  • Version string mismatch in zod-plugin/CHANGELOG.md — addressed

Pullfrog  | View workflow run | Using Claude Opus𝕏

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
express-zod-api/src/endpoint.ts (1)

115-115: ⚡ Quick win

Add required JSDoc tags for the new public summary option (Line 115).

summary?: string is a new optional property in a public constructor contract, so it should include @desc and @default tags per repo rules.

Proposed fix
     description?: string;
+    /** `@desc` A short human-readable endpoint summary */
+    /** `@default` undefined */
     summary?: string;

As per coding guidelines: {express-zod-api,migration,zod-plugin}/src/**/*.ts: “All properties of publicly available entities (exposed via index.ts) must have JSDoc documentation with @desc, @default (required for optional properties), and @example (required for literal types)”.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@express-zod-api/src/endpoint.ts` at line 115, Add JSDoc for the new public
optional property "summary?: string" in the Endpoint constructor contract: add
an `@desc` that briefly explains what summary represents and an `@default` that
documents the default value (e.g., undefined or empty string) since the property
is optional; update the JSDoc block above the property (or the constructor
parameter JSDoc) where "summary" is declared so it follows the repo rule
requiring `@desc` and `@default` for public optional properties.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@express-zod-api/src/documentation-helpers.ts`:
- Around line 669-672: The trimSummary function must guard non-positive and
small limits: if limit <= 0 return an empty string; if limit === 1 return the
single-character ellipsis "…"; otherwise keep the existing logic but only apply
summary.slice(0, limit - 1) + "…" when limit > 1 and summary length exceeds
limit. Update the trimSummary implementation to check limit <= 0 and limit === 1
before slicing so the result never exceeds the requested limit (refer to the
trimSummary function name).

---

Nitpick comments:
In `@express-zod-api/src/endpoint.ts`:
- Line 115: Add JSDoc for the new public optional property "summary?: string" in
the Endpoint constructor contract: add an `@desc` that briefly explains what
summary represents and an `@default` that documents the default value (e.g.,
undefined or empty string) since the property is optional; update the JSDoc
block above the property (or the constructor parameter JSDoc) where "summary" is
declared so it follows the repo rule requiring `@desc` and `@default` for public
optional properties.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 1df5ced9-e5f2-42b4-a703-99b39fe5eacd

📥 Commits

Reviewing files that changed from the base of the PR and between bfa68fd and db72038.

⛔ Files ignored due to path filters (4)
  • express-zod-api/tests/__snapshots__/documentation.spec.ts.snap is excluded by !**/*.snap
  • express-zod-api/tests/__snapshots__/env.spec.ts.snap is excluded by !**/*.snap
  • express-zod-api/tests/__snapshots__/zts.spec.ts.snap is excluded by !**/*.snap
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (31)
  • AGENTS.md
  • CHANGELOG.md
  • README.md
  • SECURITY.md
  • compat-test/package.json
  • eslint.config.js
  • example/example.documentation.yaml
  • express-zod-api/package.json
  • express-zod-api/src/deep-checks.ts
  • express-zod-api/src/diagnostics.ts
  • express-zod-api/src/documentation-helpers.ts
  • express-zod-api/src/documentation.ts
  • express-zod-api/src/endpoint.ts
  • express-zod-api/src/integration.ts
  • express-zod-api/src/json-schema-helpers.ts
  • express-zod-api/src/routing-walker.ts
  • express-zod-api/src/routing.ts
  • express-zod-api/src/upload-schema.ts
  • express-zod-api/src/zts.ts
  • express-zod-api/tests/builtin-logger.spec.ts
  • express-zod-api/tests/env.spec.ts
  • express-zod-api/tests/routing-walker.spec.ts
  • express-zod-api/tests/upload-schema.spec.ts
  • issue952-test/symbols.ts
  • package.json
  • pnpm-workspace.yaml
  • zod-plugin/CHANGELOG.md
  • zod-plugin/README.md
  • zod-plugin/src/augmentation.ts
  • zod-plugin/src/runtime.ts
  • zod-plugin/tests/runtime.spec.ts
💤 Files with no reviewable changes (2)
  • example/example.documentation.yaml
  • issue952-test/symbols.ts
✅ Files skipped from review due to trivial changes (11)
  • express-zod-api/tests/routing-walker.spec.ts
  • express-zod-api/tests/upload-schema.spec.ts
  • express-zod-api/src/json-schema-helpers.ts
  • SECURITY.md
  • express-zod-api/tests/builtin-logger.spec.ts
  • express-zod-api/src/diagnostics.ts
  • zod-plugin/CHANGELOG.md
  • compat-test/package.json
  • express-zod-api/src/zts.ts
  • CHANGELOG.md
  • express-zod-api/src/integration.ts
🚧 Files skipped from review as they are similar to previous changes (5)
  • eslint.config.js
  • pnpm-workspace.yaml
  • package.json
  • express-zod-api/package.json
  • express-zod-api/src/documentation.ts

Comment on lines +669 to +672
export const trimSummary = (summary?: string, limit = 50) =>
!summary || summary.length <= limit
? summary
: summary.slice(0, limit - 1) + "…";
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Guard non-positive limits in trimSummary.

At Line 670, limit <= 0 can still produce a non-empty result, which breaks the “does not exceed the limit” contract.

Suggested patch
-export const trimSummary = (summary?: string, limit = 50) =>
-  !summary || summary.length <= limit
-    ? summary
-    : summary.slice(0, limit - 1) + "…";
+export const trimSummary = (summary?: string, limit = 50) => {
+  if (!summary || summary.length <= limit) return summary;
+  if (limit <= 0) return "";
+  return limit === 1 ? "…" : summary.slice(0, limit - 1) + "…";
+};
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@express-zod-api/src/documentation-helpers.ts` around lines 669 - 672, The
trimSummary function must guard non-positive and small limits: if limit <= 0
return an empty string; if limit === 1 return the single-character ellipsis "…";
otherwise keep the existing logic but only apply summary.slice(0, limit - 1) +
"…" when limit > 1 and summary length exceeds limit. Update the trimSummary
implementation to check limit <= 0 and limit === 1 before slicing so the result
never exceeds the requested limit (refer to the trimSummary function name).

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
package.json (1)

6-8: Add explicit engines.node constraint for native TypeScript execution.

Lines 6 and 8 execute .ts files directly with node. The root package.json lacks an engines.node field, which means contributors on Node 20 or older will encounter runtime failures. Add an explicit constraint aligned with your CI test matrix.

Suggested patch
 {
   "private": true,
   "type": "module",
+  "engines": {
+    "node": ">=22.19.0"
+  },
   "scripts": {
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@package.json` around lines 6 - 8, The package.json is missing an engines.node
constraint while prebuild and pretest scripts run .ts files directly with node;
add an "engines": { "node": "<semver-constraint>" } entry to package.json
(matching your CI test matrix, e.g., the minimum Node version that supports
native TS execution used in CI) so contributors on older Node versions won't
fail; update the semver to align with CI and ensure any README/contributor docs
reflect the required Node version.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@package.json`:
- Around line 6-8: The package.json is missing an engines.node constraint while
prebuild and pretest scripts run .ts files directly with node; add an "engines":
{ "node": "<semver-constraint>" } entry to package.json (matching your CI test
matrix, e.g., the minimum Node version that supports native TS execution used in
CI) so contributors on older Node versions won't fail; update the semver to
align with CI and ensure any README/contributor docs reflect the required Node
version.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: c571205f-e5f9-4138-93b4-da3850f8a373

📥 Commits

Reviewing files that changed from the base of the PR and between a2e5a6e and f603c72.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (1)
  • package.json

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

breaking Backward incompatible changes CI/CD dedication dependencies Pull requests that update a dependency file documentation Improvements or additions to documentation enhancement New feature or request external bug it's a bug, but in a dependency refactoring The better way to achieve the same result

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant