Skip to content

2.16.0 - #24

Merged
saby1101 merged 1 commit into
mainfrom
release/2.16.0
Aug 14, 2026
Merged

saby1101 merged 1 commit into
mainfrom
release/2.16.0

Conversation

@saby1101

Copy link
Copy Markdown
Member

Version bump only — one line in package.json, cut with pnpm version minor, matching the existing release/2.14.0 pattern.

The tag v2.16.0 is created locally by pnpm version and pushed after this merges, so it points at a commit reachable on main. Publishing then happens by creating the GitHub Release from that tag.

What 2.16.0 contains

Dependencies and runtime

  • fastify-plugin ^5 → ^6, collapsing the duplicate copy wms currently resolves
  • @google-cloud/storage 7 → 8
  • Cloud SDKs load lazily: require() of the package drops 360ms → ~5ms, and registering a provider pulls only that SDK. Boot saves ~235ms and ~18MB of heap per service
  • engines: node >=22, CI on Node 24, testcontainers dropped

Correctness

  • GCS getAsStream rejected for missing objects instead of resolving and failing later as a stream error — the only finding with production exposure, since GCS is the production backend
  • LocalFileStore.exists returns false instead of throwing ENOENT; save creates parent directories
  • AWS_S3_REGION falls back to the standard AWS_REGION rather than silently using us-east-1
  • S3.NotFound replaces S3.NoSuchKey, which is modelled on GetObject and could never match a HeadObject failure
  • Plugin dispatch rejects inherited Object.prototype names, which previously booted with no FileStore decorated
  • streamToBuffer rejects on premature close instead of hanging forever
  • Missing-timestamp fallback aligned to the epoch across all providers

Consumer-visible types

  • FastifyInstance.FileStore is now augmented, and index.ts imports ./types so the augmentation actually reaches consumers — previously nothing imported it, so even the existing FastifySchema augmentation was inert. Verified by building wms against a packed candidate: 0 errors across 23 projects

Behaviour changes worth noting for consumers

  • exists returning false rather than throwing, and the timestamp fallback moving to the epoch, are visible to anyone who coded around the old behaviour. That is why this is a minor, not a patch.

Quality

  • 38 → 149 tests, 100% coverage enforced by a threshold
  • ESLint added; type checking enabled in tests
  • pnpm-lock.yaml committed, CI installs --frozen-lockfile
  • MinIO integration suite runs in CI

After merge

  1. Push the tag v2.16.0
  2. Create the GitHub Release from it — that triggers publish

This is the first release under the corrected types: [published] trigger and the new tag/version guard. Simulated locally: v2.16.0 == v2.16.0, guard passes.

@saby1101
saby1101 merged commit 547f058 into main Aug 14, 2026
2 checks passed
@saby1101
saby1101 deleted the release/2.16.0 branch August 14, 2026 12:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant