v0.24.0
The Stem v0.24.0 — Network Performance Testing Tool by Mustard Seed Networks.
Changelog
- bdd2286 chore(main): release 2.0.0 (#513)
- 0c315c5 fix(release): correct release-please config nesting (kill the 2.0.0) (#512)
- 7a65932 chore: onboard Renovate via shared org preset (#510)
- 5a52387 fix(docs): correct stale v1.0.0 examples to 0.x (#506)
- e3dfd63 fix(release): force bash on container Syft step (pipefail) (#507)
- 365ab5b fix(release): force next Stem release back to 0.x (#504)
- 1f5ff94 fix(release): use root release-please manifest (#502)
- 7741954 fix(release): align stem release manifest with latest 0.x tag (#500)
- bc2d53b fix(release): revert invalid 1.0.0 changelog (#498)
- bfe300c chore(main): release 1.0.0 (#497)
- 98ef652 ci(release): use msn-ci-bot App token for release-please (#494)
- a7aa351 fix(security): bump Go 1.26.5 and gate Trivy SARIF (#496)
- fa5fd33 chore: update stem toolchain dependencies (#492)
- 4222748 ci(governance): exempt release-please PRs from human PR-body template (#489)
- ef849b2 ci(security): add Semgrep SAST gate (#485)
- 9c18fcb chore(license): add license-key-circumvention clause to BUSL Additional Use Grant (#483)
- ac7df3f ci(perf): stop macOS-on-PR, enable Go cache, least-privilege (#481)
- 5dbe869 chore(build): remove Docker/GHCR publishing (#478)
- 9746bb3 docs(security): document CodeQL alerts #99/#100 as false positives (#477)
- 0993c8d fix(quality-gates): honest exit codes, fmt-check, npm audit fix, CI/make parity (#468)
- fb37e61 chore(deps)(deps): bump github/codeql-action from 4.36.0 to 4.36.2 (#395)
- a5e2518 ci(gates): add filename-policy gate (no monolith naming outside internal/api) (#455)
- da2bd38 refactor(api): extract CORS origin classification into internal/api/cors leaf (ADR-0011) (#454)
- 51dda73 refactor(api): extract TLS provisioning into internal/api/tlsutil leaf (ADR-0011) (#453)
- 21d0d27 refactor(api): extract SSE broadcaster into internal/api/sse leaf (ADR-0011) (#452)
- 37c9b7e refactor(api): extract rate limiter into internal/api/ratelimit leaf (ADR-0011) (#451)
- 5d0df15 refactor: purge pre-v1 compat aliases (Database/Save*/auth-csrf legacy route) (#447)
- dab673d refactor(license): retire TierEnterprise + TierTestSuite alias entirely (#448)
- f7caee7 docs(adr): add ADR-0011 (internal/api sub-package decomposition) (#449)
- 4514635 ci(gates): flip file-size gate to STRICT + restore json-casing gate (#444)
- f1e37c7 chore(release): expose release train metadata (#446)
- 021fe65 refactor(dataplane): split dataplane.go into cohesive files (under size gate) (#440)
- 8d8fec0 chore(deps)(deps): bump actions/checkout from 6.0.2 to 6.0.3 (#394)
- 42744b7 chore(github): standardize repo governance (#442)
- 1de39d9 refactor(ui): split help-content.ts into data/help/* (under size gate) (#438)
- ec976ea refactor(cmd): split main.go into cohesive files (under size gate) (#437)
- dac92bd refactor(help): split tests.go into cohesive files (under size gate) (#439)
- b69fbb1 chore(deps)(deps): bump golang.org/x/crypto in the go-dependencies group (#426)
- 217a205 refactor(ui): decompose App.tsx to providers + routing (W5.5) (#436)
- 510fe8b chore(deps)(deps): bump the npm-dependencies group across 1 directory with 16 updates (#435)
- 7075ea6 feat(ui): extract auth to auth-store + harden authFetch (W5.3) (#434)
- c851848 refactor(ui): extract test-execution config to test-store (W5.4) (#433)
- 4f17830 feat(ui): migrate the stats poll to React Query (W5.2b) (#432)
- 12e073c feat(ui): add React Query + migrate the interfaces read (W5.2a) (#431)
- 5ab0891 fix(ui): give module-certify a distinct violet hue (S7) (#430)
- 45f05d9 refactor(ui): extract shell drawer/palette state to shell-store (W5.1) (#429)
- ccde3f4 refactor(ui): unify HeaderBar icons to lucide-react (S4/S8) (#428)
- 483b7b6 fix(ui): close token-gate escapes in themeComponents + narrow the gate (S5) (#425)
- 9602825 chore(ci): add file-size gate (warn mode) (W0c) (#424)
- 1c36e07 ci(stem): add JSON wire-casing gate — camelCase ratchet (enforcement parity with seed) (#421)
- 1eec09e test(ui): add nav↔route parity guard (enforcement parity with seed) (#420)
- 4922212 fix(ui): i18n the Account nav group label (S3) (#419)
- c2dc50c docs(adr): adopt fleet JSON wire-casing convention — camelCase API, no exceptions (#422)
- 22d9afa chore(deps): override esbuild to 0.28.1 (GHSA-gv7w-rqvm-qjhr) (#423)
- a8d629a docs(security): record accepted CSRF defense-in-depth edges (ADR-0009) (#418)
- 59a7ebd chore(deps)(deps): bump the npm-dependencies group across 1 directory with 19 updates (#396)
- cd30725 perf(ui): split vendor chunks, add bundle analyzer (#417)
- 1aa020e feat(api): make request body-size limit declarative in the route registry (#415)
- 65421cd fix(ui): stop emitted vite.config.js shadowing vite.config.ts (#416)
- 505f6e3 test(auth): pin the CSRF exempt-list with a coverage gate (#341) (#414)
- 2ffcaf8 fix(ui): suppress node dep0205 build warning
- a42dc08 chore(deps)(deps): bump securego/gosec from 2.26.1 to 2.27.1 (#391)
- b6be3c6 chore(deps)(deps): bump the go-dependencies group across 1 directory with 2 updates (#392)
- 39990a3 chore(deps)(deps): bump codecov/codecov-action from 6.0.1 to 7.0.0 (#408)
- d0707f4 chore(main): release 0.23.1 (#382)
- 4b36291 ci(release): drop macOS amd64 (Intel) build target (#413)
- 15ab94e ci(release): bump goreleaser-cross to v1.26.3-v2.16.0 (#412)
- 06392db docs: align makefile local build scope
- 9eb862b chore: simplify local make system
- 60678a4 chore: rename Go module path to github.com/MustardSeedNetworks/stem (#411)
- 1a2239c fix(dataplane): require full payload length in RFC2544/Y.1564 frame validators (#410)
- b78e407 feat(license): replace forgeable rotor cipher with Ed25519-signed tokens (#409)
- da57391 refactor(api): extract Run-scoped background goroutine lifecycle into BackgroundComponents (#407)
- a6b99ef refactor(services): collapse dual module->executor map into the registry (#404)
- 55ae19a feat(api): capability registry for declarative route policy (register) (#401)
- 13ee83c refactor(docs): rewrite ARCHITECTURE.md to reality + drop dead error shim (#406)
- 2b431b6 docs(adr): establish docs/adr and record 4 architecture decisions (#405)
- edfc32f refactor(services): rename package modules -> services to match its directory (#403)
- 2862e65 docs: fix stale 'Seed Test Suite' product name -> 'The Stem' (#402)
- aa62493 chore(lint): enforce inward dependency direction for internal/services (#400)
- 554fc76 fix(api): make RFC1918 CORS reflection opt-in (STEM_CORS_ALLOW_PRIVATE) (#399)
- 7d9a4e3 fix(api): authenticate reflector config/stats + pin govulncheck (#398)
- 56117e8 chore: bump Go 1.26.4 (GO-2026-5037/5039) + gitleaks/e2e CI cleanup (#397)
- 579774e fix(smoke): annotate STEM_AUTH_PASSWORD assignment as gitleaks:allow (#389)
- 8a3e683 fix(e2e): role-chip-test_master uses underscore not hyphen (#388)
- 438b35d test(e2e): action-button testids - confirm modal, help tabs, role-switch (#387)
- ede9f70 test(e2e): migrate 10 stem heading-name regex sites to page-header-title (#386)
- d4a76a7 fix(ui): add role=alert to stem login error display (#385)
- dd8ba6a test(e2e): stats-* testids on Reflector dashboard, migrate 4 sites (#384)
- 3a8e999 test(e2e): migrate stem auth invalid-creds assertion to role=alert (#383)
- b91ce7e fix(ui): drop sidebar-*-button testids on the mobile aside copy (#381)
- bb971ee test(e2e): rewrite smoke.spec.ts as a golden-path required-status gate (#380)
- eccc6cc test(e2e): testids on login form + Sidebar help/settings; migrate auth + help-drawer specs (#378)
- 1799348 test(e2e): testid on theme toggle + migrate theme/responsive specs (#379)
- 0f1117a test(e2e): testids on history button + drawer + close, migrate stem result-history specs (#377)
- a4abb34 refactor(api,deploy): remove HTTP→HTTPS redirector — HTTPS-only (#376)