• DcRouter v32.3.2
    Release / build-and-release (push) Successful in 16m51s
    Stable

    jkunz released this 2026-09-24 14:22:04 +00:00 | 22 commits to main since this release

    2026-09-24 - 32.3.2

    Fixes

    • Serve the OpsServer through @api.global/typedserver 13.0.2 (from 11.2.1), with @api.global/typedsocket 8.5.0 (from 8.0.3) and @push.rocks/smartserve 7.2.0 (from 6.2.2), which typedserver 13 and typedsocket 8.5.0 run on. typedserver 11.2.1's UtilityWebsiteServer.stop() threw a TypeError before start(), so the OpsServer tracked whether it had called start() and stopped the web server only then; 13.x resolves that stop(), and the tracking is gone. The OpsServer now injects the live reload client and watches dist_serve only under tswatch (TSWATCH=true), as typedserver 13's UtilityWebsiteServer defaults; 11.2.1 did both in production as well. TypedServer answers the service worker's serviceworker_versionInfo itself with the app hash of the served files, and the OpsServer now declares dcrouter's version from its commit info as the app version, which that answer and /appversion carry (11.2.1 answered x.x.x, later 1.0.0). Without the reload client, production no longer serves typedserver's /typedserver/devtools and /typedserver/reloadcheck, and responses of added routes, /mcp included, carry Cache-Control: no-cache and the app-hash stamp. Otherwise routes, /typedrequest, /mcp, log streams and their authorization, and static serving with the SPA fallback are unchanged.

    Maintenance

    • The lockfile carries one typedserver line for runtime and dev tooling (tswatch 4 already brought typedserver 13 and typedsocket 8.5.0), drops typedserver 11.2.1, typedsocket 8.0.3 and 8.1.0, smartserve 6.2.2 and @push.rocks/smartlog-destination-devtools 1.0.12, which only typedserver 11.2.1 used, and resolves @idp.global/sdk's @push.rocks/smartserve ^6.2.2 to 6.3.1, which meets typedsocket 8.5.0's >=6.2.4 peer range. @api.global/typedrequest stays at 8.0.4, which typedserver 13 and typedsocket 8.5.0 accept.
    • Bundle the web UI with @git.zone/tsbundle 2.15.0 (from 2.14.0), which tstest 6.2.0 and tswatch 4.0.1 resolve to as well, so the lockfile keeps one tsbundle. 2.15.0 changes how includeFiles entries are placed and matched; dcrouter's one entry, ./html/**/*.html, matches only html/index.html, and a clean dist_serve built with 2.15.0 is byte-identical to one built with 2.14.0 (bundle.js, its source map, the worker chunk with its map and artifact manifest, and index.html).
    Downloads