Update balena/open-balena-api Docker tag to v50
Notable changes
- Update postgres:18 Docker digest to
4ef4dbc[balena-renovate[bot]]
-balena-io/open-balena-db (balena/open-balena-db) - Update Node.js to v26.12.1 [balena-renovate[bot]]
-balena-io-modules/open-balena-base (balena/open-balena-base) - Update postgres:18 Docker digest to
1267c7e[balena-renovate[bot]] - Update postgres:18 Docker digest to
5486e8f[balena-renovate[bot]] - Update debian:13 Docker digest to
4c25275[balena-renovate[bot]] - Update silo-pkg to v3.14.2 and upstream minio-go to v7.4.1. Failed multipart
- Build and test with Go 1.27.2. Refresh Go x/* modules, compress v1.20.3,
- Update fwd to v1.2.1 to preserve bytes returned together with a read error
- Refresh the pinned UBI 9 release images and use nFPM v2.48.0 for its security
-pgsty/mc (pgsty/mc) - instrumentation-express: don't leave an ignored request handler's path in http.route (#3802) (a5ee809)
-open-telemetry/opentelemetry-js-contrib (@​opentelemetry/instrumentation-express) - Require Node.js 22
c633f8f - Call
.cancel()on the input on every timeout and abort (#47)d938bcd - Reject with the exact abort reason, even when it is
nullf2b3ae3 - Only create a
TimeoutErrorwhen the timeout can reject with itbcc57d3 - Fix timeouts above
2 ** 31 - 1milliseconds firing immediately7273802 - Fix custom
clearTimeoutbeing called withundefinedwhen no timer existsf6e3d89 - Fix cleanup failures changing the outcome or leaking the abort listener
0beb15c - Reject with a clear
TypeErrorfor invalidcustomTimersbeaa523
-sindresorhus/p-timeout (p-timeout) - Require Node.js 22
300a52d - The queue is now an
EventTargetinstead of anEventEmitter300a52d .clear()now rejects the promises of the removed tasks with anAbortErrorinstead of leaving them pending forever64311ffTimeoutErroris now aDOMExceptionnamedTimeoutError, like the error ofAbortSignal.timeout()300a52d- Remove the deprecated
carryoverConcurrencyCountoption: usecarryoverIntervalCount300a52d - Stricter validation of options
76a48bad65d567 .start(),.clear(), and settingconcurrencyno longer emitemptyandidlewhen the queue is already empty, soidleno longer fires on a queue that never had a taskaeedf53- A custom
queueClassmust now implementremove()300a52d - Zero dependencies!
300a52d - A task now runs in the async context of its
.add()call, so it sees theAsyncLocalStoragevalues of the caller, also when it starts later (Node.js 22.3 and later, Deno, and Bun) (#200)a5b7b54 - A task with a
timeoutnow gets asignalthat aborts when the task times out, so you can pass it on tofetch()and similar to stop the work300a52d .onEmpty()and theemptyevent now fire when the last waiting task starts, not when the next task finishes1cf5b82cb25a0a.addAll()now resolves with a typed tuple when the tasks return different types36e83aa- Fix many rate-limit bugs where
intervalCapwas exceeded at the end of a window, a waiting task got stuck, orisRateLimitedwas wrong6af55a71cf5b826c08a4fac89911450356a - Fix slow add, run, and abort for many tasks that share a signal, and
PriorityQueuekeeping finished tasks in memory95622a46fb8337 - Fix many edge cases with events and priorities, like infinite recursion in an
idlelistener and events in the wrong orderaeedf53b33dd448792846e79f970d65d5676f6028a - Fix
undefinedoptions and an invalid.timeoutsetter breaking the queued6cf96b48586f4 - Fix many TypeScript types
36e83aafa3c3e0 - console.log(result);
- If you add the same listener twice, it is called once.
- A listener that is removed while an event is dispatched is not called for that event.
- The
TimeoutErrorstack trace no longer shows where the task was added. - With
timeoutset, the task'ssignalis no longer linked to yoursignalafter the task finishes. - Tasks with a
signalortimeoutsettle 2 microtasks later than before.
-sindresorhus/p-queue (p-queue)
-queue.on('completed', result => { - console.log(result);
-});
-queue.once('idle', () => {}); - Update dependency lint-staged to v17.6.0 [balena-renovate[bot]]
-balena-io-modules/node-balena-lint (@​balena/lint) - deps: update deps matching '@opentelemetry/*' (#3804) (36fcb9c)
- The following workspace dependencies were updated
- Merge pull request #907 from JH8459/fix/ephemeral-loopback-bind
884cd26 - fix: bind ephemeral server to the loopback address it connects to
e74a1e0
-ladjs/supertest (supertest) - Update Node.js to v26.12.0 [balena-renovate[bot]]
-open-telemetry/opentelemetry-js (@​opentelemetry/instrumentation-http) - Fix CVE-2026-90711 (GHSA-jqcg-44mw-7w3h)
-jshttp/proxy-addr (proxy-addr) - Fix CVE-2026-87776 (GHSA-vc2v-76pw-4v95)
- deps: add destroy@1.2.0
- Match
Cache-Control: no-transformdirective case-insensitively
-expressjs/compression (compression) - Remove typed-error dependency [Pagan Gazzard]
- Change
MetricsGathererto a type-only export, use themetricssingleton [Pagan Gazzard] - Convert to ESM [Pagan Gazzard]
- Switch from deprecated
prom-clientto@prometheus-io/client[Pagan Gazzard] - Set minimum support nodejs version to 24.x [Pagan Gazzard]
-balena-io-modules/node-metrics-gatherer (@​balena/node-metrics-gatherer) - Update Node.js to v26.11.1 [balena-renovate[bot]]
- Update Node.js to v26.11.0 [balena-renovate[bot]]
- Update debian:13 Docker digest to
913f670[balena-renovate[bot]] - Update postgres:18 Docker digest to
74935e7[balena-renovate[bot]] - Update postgres:18 Docker digest to
fc973eb[balena-renovate[bot]] - Update postgres:18 Docker digest to
6737476[balena-renovate[bot]] - keep watching when the last test file is removed (#6355) (921c161)
- show require() error on unsupported directory import (#6354) (a68344f)
- support
--Xone-char aliases (#6391) (1227939) - refresh help output, fix stale links (#6357) (bb2e69a)
- add --import=tsx integration test (#6356) (3382fdd)
- touch a new file without stamping it afterwards (#6349) (d59467a)
-mochajs/mocha (mocha) - build(deps): bump qs from 6.11.2 to 6.14.1 by @dependabot[bot] in #1760
- chore(deps): update dependency globals to v17 by @renovate[bot] in #1761
- fix: only consider unique expected keys in keys() by @43081j in #1762
- Drop
NODE_AUTH_TOKENfrom publish script by @keithamus in #1763 - chore: bump actions and switch to sha by @43081j in #1764
- chore(deps): update dependency check-error to v2.1.3 by @renovate[bot] in #1765
- chore(deps): update dependency eslint-plugin-jsdoc to v62 by @renovate[bot] in #1767
- chore(deps): update dependencies by @renovate[bot] in #1768
- build(deps-dev): bump lodash from 4.17.21 to 4.17.23 by @dependabot[bot] in #1769
- chore(deps): update dependencies by @renovate[bot] in #1770
- chore(deps): update dependencies by @renovate[bot] in #1771
- chore(deps): update dependencies by @renovate[bot] in #1773
- docs: fix syntax errors in assert examples by @EvanHahn in #1774
- build(deps): bump qs from 6.14.1 to 6.14.2 by @dependabot[bot] in #1775
- chore(deps): update dependency eslint-plugin-jsdoc to v62.5.5 by @renovate[bot] in #1776
- chore(deps): update dependencies by @renovate[bot] in #1777
- chore(deps): update eslint monorepo to v10 (major) by @renovate[bot] in #1772
- chore(deps): update dependencies by @renovate[bot] in #1782
- build(deps): bump rollup from 4.22.4 to 4.59.0 by @dependabot[bot] in #1780
- build(deps-dev): bump minimatch from 9.0.5 to 9.0.9 by @dependabot[bot] in #1783
- chore(deps): update dependency c8 to v11 by @renovate[bot] in #1778
- chore(deps): update dependency esbuild to v0.27.4 by @renovate[bot] in #1784
- build(deps-dev): bump flatted from 3.3.3 to 3.4.2 by @dependabot[bot] in #1786
- chore(deps): update dependency eslint to v10.1.0 by @renovate[bot] in #1787
- chore(deps): update dependency typescript to v6 by @renovate[bot] in #1788
- build(deps): bump picomatch by @dependabot[bot] in #1789
- chore(deps): update dependency eslint-plugin-jsdoc to v62.8.1 by @renovate[bot] in #1790
- chore(deps): update dependencies by @renovate[bot] in [#1792](https://redirect.github.com/chaijs/chai/
balena-io/open-balena-api (balena/open-balena-api)
v50.0.33
Update balena/open-balena-db Docker tag to v8.0.30
Notable changes
- Update postgres:18 Docker digest to
4ef4dbc[balena-renovate[bot]]
balena-io/open-balena-db (balena/open-balena-db)
v8.0.30
(2026-10-21)
- Update postgres:18 Docker digest to
4ef4dbc[balena-renovate[bot]]
List of commits
fc1a320 (Update balena/open-balena-db Docker tag to v8.0.30, 2026-10-21)
v50.0.32
Update balena/open-balena-base Docker tag to v22.0.5
Notable changes
- Update Node.js to v26.12.1 [balena-renovate[bot]]
balena-io-modules/open-balena-base (balena/open-balena-base)
v22.0.5
(2026-10-21)
- Update Node.js to v26.12.1 [balena-renovate[bot]]
List of commits
f8b1073 (Update balena/open-balena-base Docker tag to v22.0.5, 2026-10-21)
v50.0.31
Update balena/open-balena-db Docker tag to v8.0.29
Notable changes
- Update postgres:18 Docker digest to
1267c7e[balena-renovate[bot]]
balena-io/open-balena-db (balena/open-balena-db)
v8.0.29
(2026-10-21)
- Update postgres:18 Docker digest to
1267c7e[balena-renovate[bot]]
List of commits
89d22c0 (Update balena/open-balena-db Docker tag to v8.0.29, 2026-10-21)
v50.0.30
Update balena/open-balena-db Docker tag to v8.0.28
Notable changes
- Update postgres:18 Docker digest to
5486e8f[balena-renovate[bot]]
balena-io/open-balena-db (balena/open-balena-db)
v8.0.28
(2026-10-21)
- Update postgres:18 Docker digest to
5486e8f[balena-renovate[bot]]
List of commits
8532616 (Update balena/open-balena-db Docker tag to v8.0.28, 2026-10-21)
v50.0.29
Update balena/open-balena-base Docker tag to v22.0.4
Notable changes
- Update debian:13 Docker digest to
4c25275[balena-renovate[bot]]
balena-io-modules/open-balena-base (balena/open-balena-base)
v22.0.4
(2026-10-21)
- Update debian:13 Docker digest to
4c25275[balena-renovate[bot]]
List of commits
082873d (Update balena/open-balena-base Docker tag to v22.0.4, 2026-10-21)
v50.0.28
a6cb7a6 (Convert registry interactions from request to fetch, 2026-10-19)
v50.0.27
96b48ac (Update grafana/loki Docker tag to v3.7.9, 2026-10-20)
v50.0.26
25a0c21 (Tests: read from loki, 2026-10-20)
v50.0.25
09829ca (Logs: add the additional context to the read context as well, 2026-10-19)
e40b2d7 (Logs: update the getWriteContext key as the contents format changed, 2026-10-19)
v50.0.24
b558c94 (Enable zod automatic schema compilation for v4.5.0+ performance, 2026-10-18)
v50.0.23
371c3be (Create a secret KeyObject once to sign and verify JWTs, 2026-10-19)
v50.0.22
6f854d6 (Logs: fetch loki additional context with the initial write context, 2026-10-17)
v50.0.21
43372c5 (Tests: add tests for /device/v2/:uuid/log-stream endpoint, 2026-10-18)
v50.0.20
3681be5 (Lock file maintenance, 2026-10-19)
v50.0.19
dcb928b (Sentry: also ignore request bodies for state patch, 2026-10-17)
v50.0.18
Update pgsty/mc Docker tag to RELEASE.2026-10-18T00-00-00Z
Notable changes
- Update silo-pkg to v3.14.2 and upstream minio-go to v7.4.1. Failed multipart
- Build and test with Go 1.27.2. Refresh Go x/* modules, compress v1.20.3,
- Update fwd to v1.2.1 to preserve bytes returned together with a read error
- Refresh the pinned UBI 9 release images and use nFPM v2.48.0 for its security
pgsty/mc (pgsty/mc)
vRELEASE.2026-10-18T00-00-00Z
Package version: 20261018000000.0.0. GitHub assets and Docker Hub images
published on 2026-10-17. Release and latest images cover Linux amd64/arm64.
Release notes.
Changes since 20260916
- Update silo-pkg to v3.14.2 and upstream minio-go to v7.4.1. Failed multipart
uploads are cleaned up after cancellation, retention timestamps are sent in
UTC, and STS duration requests are preserved. Existing copy error and
checksum handling is retained. Parallel SDK GET and ComposeObject remain
opt-in; this update does not enable them in mcli. - Build and test with Go 1.27.2. Refresh Go x/* modules, compress v1.20.3,
msgp v1.6.5 and the etcd clients v3.7.2. Update golangci-lint to v2.15.0,
govulncheck to v1.9.0 and gofumpt to v0.12.0. - Update fwd to v1.2.1 to preserve bytes returned together with a read error
and correct Skip offsets and fallback behavior on pipes. Update cpuid to
v2.4.1 for CPU cache identification fixes. - Refresh the pinned UBI 9 release images and use nFPM v2.48.0 for its security
dependency updates and RPM/APK packaging fixes. Use GoReleaser v2.18.3 for
secret redaction, archive error handling and Draft release fixes.
The go-systemd v22.6.0 portability pin and tablewriter v0.0.5 API remain
unchanged. This release does not require a server or Console upgrade.
List of commits
b4dc49c (Update pgsty/mc Docker tag to RELEASE.2026-10-18T00-00-00Z, 2026-10-19)
v50.0.17
7e78594 (Logs: avoid using a JSON.stringify replacer so we stay on the fast path, 2026-10-18)
v50.0.16
Update dependency @opentelemetry/instrumentation-express to v0.71.1
Notable changes
- instrumentation-express: don't leave an ignored request handler's path in http.route (#3802) (a5ee809)
open-telemetry/opentelemetry-js-contrib (@​opentelemetry/instrumentation-express)
v0.71.1
Bug Fixes
List of commits
0e922df (Update dependency @opentelemetry/instrumentation-express to v0.71.1, 2026-10-18)
v50.0.15
Update dependency p-timeout to v8
Notable changes
- Require Node.js 22
c633f8f - Call
.cancel()on the input on every timeout and abort (#47)d938bcd - Reject with the exact abort reason, even when it is
nullf2b3ae3 - Only create a
TimeoutErrorwhen the timeout can reject with itbcc57d3 - Fix timeouts above
2 ** 31 - 1milliseconds firing immediately7273802 - Fix custom
clearTimeoutbeing called withundefinedwhen no timer existsf6e3d89 - Fix cleanup failures changing the outcome or leaking the abort listener
0beb15c - Reject with a clear
TypeErrorfor invalidcustomTimersbeaa523
sindresorhus/p-timeout (p-timeout)
v8.0.0
Breaking
- Require Node.js 22
c633f8f - Call
.cancel()on the input on every timeout and abort (#47)d938bcd- Before, only a timeout without a
fallbackcalled it. Now a timeout with afallback, an abort ofsignal, and an already abortedsignalalso call it. - Cancellation is best-effort. If
.cancel()throws, the error is ignored and the promise still settles. Before, the error escaped the timer as an uncaught exception and the promise never settled. .cancel()runs after the outcome is decided, so it cannot change the outcome.- A
fallbackthat returns the input itself now gets a cancelled input.
- Before, only a timeout without a
- Reject with the exact abort reason, even when it is
nullf2b3ae3controller.abort(null)used to reject with a genericAbortError.
Improvements
- Only create a
TimeoutErrorwhen the timeout can reject with itbcc57d3- Capturing a stack trace is expensive, and most promises settle before the timeout.
Fixes
- Fix timeouts above
2 ** 31 - 1milliseconds firing immediately7273802- They now never time out, the same as
Infinity.
- They now never time out, the same as
- Fix custom
clearTimeoutbeing called withundefinedwhen no timer existsf6e3d89 - Fix cleanup failures changing the outcome or leaking the abort listener
0beb15c - Reject with a clear
TypeErrorfor invalidcustomTimersbeaa523- Before, this failed with an unrelated error, or was ignored when the input settled synchronously or the timeout was
Infinity.
- Before, this failed with an unrelated error, or was ignored when the input settled synchronously or the timeout was
List of commits
df64349 (Update dependency p-timeout to v8, 2026-10-18)
v50.0.14
Update dependency p-queue to v10
Notable changes
- Require Node.js 22
300a52d - The queue is now an
EventTargetinstead of anEventEmitter300a52d .clear()now rejects the promises of the removed tasks with anAbortErrorinstead of leaving them pending forever64311ffTimeoutErroris now aDOMExceptionnamedTimeoutError, like the error ofAbortSignal.timeout()300a52d- Remove the deprecated
carryoverConcurrencyCountoption: usecarryoverIntervalCount300a52d - Stricter validation of options
76a48bad65d567 .start(),.clear(), and settingconcurrencyno longer emitemptyandidlewhen the queue is already empty, soidleno longer fires on a queue that never had a taskaeedf53- A custom
queueClassmust now implementremove()300a52d - Zero dependencies!
300a52d - A task now runs in the async context of its
.add()call, so it sees theAsyncLocalStoragevalues of the caller, also when it starts later (Node.js 22.3 and later, Deno, and Bun) (#200)a5b7b54 - A task with a
timeoutnow gets asignalthat aborts when the task times out, so you can pass it on tofetch()and similar to stop the work300a52d .onEmpty()and theemptyevent now fire when the last waiting task starts, not when the next task finishes1cf5b82cb25a0a.addAll()now resolves with a typed tuple when the tasks return different types36e83aa- Fix many rate-limit bugs where
intervalCapwas exceeded at the end of a window, a waiting task got stuck, orisRateLimitedwas wrong6af55a71cf5b826c08a4fac89911450356a - Fix slow add, run, and abort for many tasks that share a signal, and
PriorityQueuekeeping finished tasks in memory95622a46fb8337 - Fix many edge cases with events and priorities, like infinite recursion in an
idlelistener and events in the wrong orderaeedf53b33dd448792846e79f970d65d5676f6028a - Fix
undefinedoptions and an invalid.timeoutsetter breaking the queued6cf96b48586f4 - Fix many TypeScript types
36e83aafa3c3e0
-queue.on('completed', result => { - console.log(result);
-});
-queue.once('idle', () => {}); - If you add the same listener twice, it is called once.
- A listener that is removed while an event is dispatched is not called for that event.
- The
TimeoutErrorstack trace no longer shows where the task was added. - With
timeoutset, the task'ssignalis no longer linked to yoursignalafter the task finishes. - Tasks with a
signalortimeoutsettle 2 microtasks later than before.
sindresorhus/p-queue (p-queue)
v10.0.0
Breaking
- Require Node.js 22
300a52d - The queue is now an
EventTargetinstead of anEventEmitter300a52d- Use
.addEventListener()and.removeEventListener()instead of.on(),.once(),.off(), and the otherEventEmittermethods. - The
completedanderrorevents have the result or the error inevent.detail. - An error thrown in an event listener now exits the process. Node.js reports it as an uncaught exception.
- Use
.clear()now rejects the promises of the removed tasks with anAbortErrorinstead of leaving them pending forever64311ff.clear()marks these promises as handled, but a promise made from them, like the one from.addAll()orqueue.add(fn).then(…), now rejects, so handle it.
TimeoutErroris now aDOMExceptionnamedTimeoutError, like the error ofAbortSignal.timeout()300a52d- Remove the deprecated
carryoverConcurrencyCountoption: usecarryoverIntervalCount300a52d - Stricter validation of options
76a48bad65d567concurrencyandintervalCapmust be integers (orInfinity). A limit of1.5used to let 2 tasks run.timeoutandintervalabove2147483647ms (the maximum timer delay) are rejected. They used to fire after 1 ms..add()rejects with aTypeErrorwhenpriorityisNaNor not a number.
.start(),.clear(), and settingconcurrencyno longer emitemptyandidlewhen the queue is already empty, soidleno longer fires on a queue that never had a taskaeedf53- A custom
queueClassmust now implementremove()300a52d
Improvements
- Zero dependencies!
300a52d - A task now runs in the async context of its
.add()call, so it sees theAsyncLocalStoragevalues of the caller, also when it starts later (Node.js 22.3 and later, Deno, and Bun) (#200)a5b7b54- Previously, a waiting task could see the values of whatever started it, like another request on a server.
- A task with a
timeoutnow gets asignalthat aborts when the task times out, so you can pass it on tofetch()and similar to stop the work300a52d .onEmpty()and theemptyevent now fire when the last waiting task starts, not when the next task finishes1cf5b82cb25a0a.addAll()now resolves with a typed tuple when the tasks return different types36e83aa
Fixes
- Fix many rate-limit bugs where
intervalCapwas exceeded at the end of a window, a waiting task got stuck, orisRateLimitedwas wrong6af55a71cf5b826c08a4fac89911450356a - Fix slow add, run, and abort for many tasks that share a signal, and
PriorityQueuekeeping finished tasks in memory95622a46fb8337 - Fix many edge cases with events and priorities, like infinite recursion in an
idlelistener and events in the wrong orderaeedf53b33dd448792846e79f970d65d5676f6028a - Fix
undefinedoptions and an invalid.timeoutsetter breaking the queued6cf96b48586f4 - Fix many TypeScript types
36e83aafa3c3e0
Migration guide
Events
-queue.on('completed', result => {
- console.log(result);
-});
+queue.addEventListener('completed', event => {
+ console.log(event.detail);
+});
-queue.once('idle', () => {});
+queue.addEventListener('idle', () => {}, {once: true});If the result or the error is undefined, event.detail is null, because CustomEvent works that way.
Other differences from EventEmitter:
- If you add the same listener twice, it is called once.
- A listener that is removed while an event is dispatched is not called for that event.
.clear()
The promises of the removed tasks now reject with an AbortError. If you await them, handle the rejection:
const results = await queue.addAll(tasks).catch(error => {
if (error.name === 'AbortError') {
return [];
}
throw error;
});Timeouts and signals
error instanceof TimeoutError still works. You can also check error.name === 'TimeoutError', which also matches the error of AbortSignal.timeout().
Other changes:
- The
TimeoutErrorstack trace no longer shows where the task was added. - With
timeoutset, the task'ssignalis no longer linked to yoursignalafter the task finishes. - Tasks with a
signalortimeoutsettle 2 microtasks later than before.
List of commits
a0d8884 (Update dependency p-queue to v10, 2026-10-17)
v50.0.13
230106e (Lock file maintenance, 2026-10-17)
v50.0.12
Update dependency @balena/lint to ^9.4.10
Notable changes
- Update dependency lint-staged to v17.6.0 [balena-renovate[bot]]
balena-io-modules/node-balena-lint (@​balena/lint)
v9.4.11
(2026-10-14)
- Update dependency lint-staged to v17.6.0 [balena-renovate[bot]]
List of commits
96f6329 (Update dependency @balena/lint to ^9.4.10, 2026-10-17)
v50.0.11
Update dependency @opentelemetry/instrumentation-express to v0.71.0
Notable changes
- deps: update deps matching '@opentelemetry/*' (#3804) (36fcb9c)
- The following workspace dependencies were updated
open-telemetry/opentelemetry-js-contrib (@​opentelemetry/instrumentation-express)
v0.71.0
Features
Dependencies
- The following workspace dependencies were updated
- devDependencies
- @opentelemetry/contrib-test-utils bumped from ^0.69.0 to ^0.70.0
- devDependencies
List of commits
4030841 (Update dependency @opentelemetry/instrumentation-express to v0.71.0, 2026-10-15)
v50.0.10
Update dependency supertest to v7.3.1
Notable changes
- Merge pull request #907 from JH8459/fix/ephemeral-loopback-bind
884cd26 - fix: bind ephemeral server to the loopback address it connects to
e74a1e0
ladjs/supertest (supertest)
v7.3.1
- Merge pull request #907 from JH8459/fix/ephemeral-loopback-bind
884cd26 - fix: bind ephemeral server to the loopback address it connects to
e74a1e0
List of commits
eaab112 (Update dependency supertest to v7.3.1, 2026-10-15)
v50.0.9
Update balena/open-balena-base Docker tag to v22.0.3
Notable changes
- Update Node.js to v26.12.0 [balena-renovate[bot]]
balena-io-modules/open-balena-base (balena/open-balena-base)
v22.0.3
(2026-10-14)
- Update Node.js to v26.12.0 [balena-renovate[bot]]
List of commits
73c8d36 (Update balena/open-balena-base Docker tag to v22.0.3, 2026-10-15)
v50.0.8
10c426f (Update dependency @types/node to v26.6.5, 2026-10-15)
v50.0.7
Update opentelemetry-js monorepo to v0.223.0
Notable changes
open-telemetry/opentelemetry-js (@​opentelemetry/instrumentation-http)
v0.223.0
List of commits
65c7d6d (Update opentelemetry-js monorepo to v0.223.0, 2026-10-15)
v50.0.6
25bc15e (Optimize the trust proxy caching, 2026-10-14)
v50.0.5
d54f2f9 (Tests: add support for unauthenticated s3 device type access to mocks, 2026-10-14)
v50.0.4
56886c6 (Switch to a more optimized fnv1a implementation, 2026-10-14)
v50.0.3
650d673 (Fix unauthenticated s3 device type access, 2026-10-13)
v50.0.2
Update dependency proxy-addr to v2.0.8 [SECURITY]
Notable changes
List of commits
c6d4c3c (Update dependency proxy-addr to v2.0.8 [SECURITY], 2026-10-12)
v50.0.1
Update dependency compression to v1.8.2 [SECURITY]
Notable changes
- Fix CVE-2026-87776 (GHSA-vc2v-76pw-4v95)
- deps: add destroy@1.2.0
- Match
Cache-Control: no-transformdirective case-insensitively
expressjs/compression (compression)
v1.8.2
=====
- Fix CVE-2026-87776 (GHSA-vc2v-76pw-4v95)
- deps: add destroy@1.2.0
- Match
Cache-Control: no-transformdirective case-insensitively
List of commits
afc12a1 (Update dependency compression to v1.8.2 [SECURITY], 2026-10-12)
v50.0.0
db2322d (Switch from aws-sdk v2 to @aws-sdk/client-s3 v3, 2026-09-29)
v49.7.13
413e9a0 (Improve how handles & usernames are generated from non-ascii text, 2026-10-08)
v49.7.12
Update dependency @balena/node-metrics-gatherer to v8
Notable changes
- Remove typed-error dependency [Pagan Gazzard]
- Change
MetricsGathererto a type-only export, use themetricssingleton [Pagan Gazzard] - Convert to ESM [Pagan Gazzard]
- Switch from deprecated
prom-clientto@prometheus-io/client[Pagan Gazzard] - Set minimum support nodejs version to 24.x [Pagan Gazzard]
balena-io-modules/node-metrics-gatherer (@​balena/node-metrics-gatherer)
v8.0.0
(2026-10-07)
- Remove typed-error dependency [Pagan Gazzard]
- Change
MetricsGathererto a type-only export, use themetricssingleton [Pagan Gazzard] - Convert to ESM [Pagan Gazzard]
- Switch from deprecated
prom-clientto@prometheus-io/client[Pagan Gazzard] - Set minimum support nodejs version to 24.x [Pagan Gazzard]
List of commits
e452450 (Update dependency @balena/node-metrics-gatherer to v8, 2026-10-08)
v49.7.11
Update balena/open-balena-base Docker tag to v22.0.2
Notable changes
- Update Node.js to v26.11.1 [balena-renovate[bot]]
- Update Node.js to v26.11.0 [balena-renovate[bot]]
balena-io-modules/open-balena-base (balena/open-balena-base)
v22.0.2
(2026-10-08)
- Update Node.js to v26.11.1 [balena-renovate[bot]]
- Update Node.js to v26.11.0 [balena-renovate[bot]]
List of commits
6f1e289 (Update balena/open-balena-base Docker tag to v22.0.2, 2026-10-08)
v49.7.10
096d08c (Lock file maintenance, 2026-10-08)
v49.7.9
Update balena/open-balena-base Docker tag to v22.0.1
Notable changes
- Update debian:13 Docker digest to
913f670[balena-renovate[bot]]
balena-io-modules/open-balena-base (balena/open-balena-base)
v22.0.1
(2026-10-06)
- Update debian:13 Docker digest to
913f670[balena-renovate[bot]]
List of commits
7830af5 (Update balena/open-balena-base Docker tag to v22.0.1, 2026-10-08)
v49.7.8
Update balena/open-balena-db Docker tag to v8.0.27
Notable changes
- Update postgres:18 Docker digest to
74935e7[balena-renovate[bot]] - Update postgres:18 Docker digest to
fc973eb[balena-renovate[bot]] - Update postgres:18 Docker digest to
6737476[balena-renovate[bot]]
balena-io/open-balena-db (balena/open-balena-db)
v8.0.27
(2026-10-07)
- Update postgres:18 Docker digest to
74935e7[balena-renovate[bot]]
v8.0.26
(2026-10-06)
- Update postgres:18 Docker digest to
fc973eb[balena-renovate[bot]]
v8.0.25
(2026-10-06)
- Update postgres:18 Docker digest to
6737476[balena-renovate[bot]]
List of commits
0ffb6cf (Update balena/open-balena-db Docker tag to v8.0.27, 2026-10-07)
v49.7.7
17edcb9 (Update dependency @types/node to v26.6.4, 2026-10-04)
v49.7.6
Update dependency mocha to v12.0.3
Notable changes
- keep watching when the last test file is removed (#6355) (921c161)
- show require() error on unsupported directory import (#6354) (a68344f)
- support
--Xone-char aliases (#6391) (1227939) - refresh help output, fix stale links (#6357) (bb2e69a)
- add --import=tsx integration test (#6356) (3382fdd)
- touch a new file without stamping it afterwards (#6349) (d59467a)
mochajs/mocha (mocha)
v12.0.3
🩹 Fixes
- keep watching when the last test file is removed (#6355) (921c161)
- show require() error on unsupported directory import (#6354) (a68344f)
- support
--Xone-char aliases (#6391) (1227939)
📚 Documentation
🧹 Chores
List of commits
32b044e (Update dependency mocha to v12.0.3, 2026-10-04)
v49.7.5
f043f70 (Reduce delays for registry cleanup tests, 2026-10-02)
v49.7.4
Update dependency chai to v6.3.0
Notable changes
- build(deps): bump qs from 6.11.2 to 6.14.1 by @dependabot[bot] in #1760
- chore(deps): update dependency globals to v17 by @renovate[bot] in #1761
- fix: only consider unique expected keys in keys() by @43081j in #1762
- Drop
NODE_AUTH_TOKENfrom publish script by @keithamus in #1763 - chore: bump actions and switch to sha by @43081j in #1764
- chore(deps): update dependency check-error to v2.1.3 by @renovate[bot] in #1765
- chore(deps): update dependency eslint-plugin-jsdoc to v62 by @renovate[bot] in #1767
- chore(deps): update dependencies by @renovate[bot] in #1768
- build(deps-dev): bump lodash from 4.17.21 to 4.17.23 by @dependabot[bot] in #1769
- chore(deps): update dependencies by @renovate[bot] in #1770
- chore(deps): update dependencies by @renovate[bot] in #1771
- chore(deps): update dependencies by @renovate[bot] in #1773
- docs: fix syntax errors in assert examples by @EvanHahn in #1774
- build(deps): bump qs from 6.14.1 to 6.14.2 by @dependabot[bot] in #1775
- chore(deps): update dependency eslint-plugin-jsdoc to v62.5.5 by @renovate[bot] in #1776
- chore(deps): update dependencies by @renovate[bot] in #1777
- chore(deps): update eslint monorepo to v10 (major) by @renovate[bot] in #1772
- chore(deps): update dependencies by @renovate[bot] in #1782
- build(deps): bump rollup from 4.22.4 to 4.59.0 by @dependabot[bot] in #1780
- build(deps-dev): bump minimatch from 9.0.5 to 9.0.9 by @dependabot[bot] in #1783
- chore(deps): update dependency c8 to v11 by @renovate[bot] in #1778
- chore(deps): update dependency esbuild to v0.27.4 by @renovate[bot] in #1784
- build(deps-dev): bump flatted from 3.3.3 to 3.4.2 by @dependabot[bot] in #1786
- chore(deps): update dependency eslint to v10.1.0 by @renovate[bot] in #1787
- chore(deps): update dependency typescript to v6 by @renovate[bot] in #1788
- build(deps): bump picomatch by @dependabot[bot] in #1789
- chore(deps): update dependency eslint-plugin-jsdoc to v62.8.1 by @renovate[bot] in #1790
- chore(deps): update dependencies by @renovate[bot] in [#1792](https://redirect.github.com/chaijs/chai/
✂ Note
PR body was truncated to here.
List of commits
1e15f1f (Update balena/open-balena-api Docker tag to v50, 2026-10-23)