What's Changed
- docs: declare sidebar group order in section frontmatter by @dimitrieh in #8069
- build(deps-dev): bump brace-expansion from 1.1.13 to 1.1.18 by @dependabot[bot] in #8068
- build(deps): bump fast-uri from 3.1.4 to 3.1.5 by @dependabot[bot] in #8060
- fix(expert): remove dead resources answer kind from AnswerBadge by @andypalmi in #8004
- feat: rename help, admin parent, and user settings route names to kebab-case by @cstns in #8100
- feat: rename account route names to kebab-case by @cstns in #8099
- feat: rename team library route names to kebab-case by @cstns in #8101
- feat: rename low-ref team route names to kebab-case by @cstns in #8102
- feat: rename team action route names to kebab-case by @cstns in #8103
- feat: rename Home and team navigation route names to kebab-case by @cstns in #8104
- feat: rename Team and Applications route names to kebab-case by @cstns in #8105
- build(deps): bump @fastify/swagger-ui from 6.1.0 to 6.1.1 by @dependabot[bot] in #8031
- build(deps-dev): bump webpack from 5.109.0 to 5.109.2 by @dependabot[bot] in #8032
- build(deps): bump @sentry/node from 10.68.0 to 10.69.0 by @dependabot[bot] in #8034
- build(deps): bump @aws-sdk/client-sesv2 from 3.1095.0 to 3.1102.0 by @dependabot[bot] in #8035
- build(deps-dev): bump vue-tsc from 3.3.8 to 3.3.9 by @dependabot[bot] in #8036
- build(deps): bump @redis/client from 6.1.0 to 6.2.0 by @dependabot[bot] in #8039
- build(deps-dev): bump jsdom from 29.1.1 to 30.0.1 by @dependabot[bot] in #8040
- [8074] Data Farm > Teams 1 - store + team list by @n-lark in #8077
- [8110] Carried-over status search term breaks pagination on Devices and Application instance/device lists by @n-lark in #8111
- [8075] Data Farm > Teams 2 - active team + subscriber by @n-lark in #8078
- build(deps): bump @fastify/csrf-protection from 8.0.0 to 8.0.1 by @dependabot[bot] in #8038
- build(deps): bump @fastify/rate-limit from 11.1.0 to 11.2.0 by @dependabot[bot] in #8041
- build(deps-dev): bump postcss from 8.5.23 to 8.5.25 by @dependabot[bot] in #8043
- build(deps): bump fastify from 5.10.0 to 5.11.2 by @dependabot[bot] in #8042
- build(deps): bump axios from 1.18.1 to 1.19.0 by @dependabot[bot] in #8046
- build(deps): bump posthog-node from 5.46.1 to 5.47.3 by @dependabot[bot] in #8048
- build(deps-dev): bump webpack-cli from 7.2.1 to 7.2.2 by @dependabot[bot] in #8049
- build(deps): bump dompurify from 3.4.12 to 3.4.13 by @dependabot[bot] in #8150
- build(deps): bump @sentry/vue from 10.68.0 to 10.69.0 by @dependabot[bot] in #8044
- Formalize HMR dev setup with hidden webpack dev server by @cstns in #8109
- Enforce cache key is a string by @Steve-Mcl in #8019
- Change EMQX Operator version by @hardillb in #8156
- docs: Remove underscore paths by @ZJvandeWeg in #8154
- build(deps-dev): bump mocha from 11.7.6 to 11.8.0 by @dependabot[bot] in #8164
- build(deps): bump @fastify/routes from 6.0.2 to 6.0.3 by @dependabot[bot] in #8165
- build(deps-dev): bump @typescript-eslint/eslint-plugin from 8.65.0 to 8.66.0 by @dependabot[bot] in #8166
- build(deps): bump @aws-sdk/client-sesv2 from 3.1102.0 to 3.1106.0 by @dependabot[bot] in #8167
- build(deps-dev): bump cypress from 15.19.0 to 15.20.0 by @dependabot[bot] in #8168
- build(deps): bump pg from 8.22.0 to 8.23.0 by @dependabot[bot] in #8169
- build(deps): bump nodemailer from 9.0.3 to 9.0.5 by @dependabot[bot] in #8170
- build(deps): bump @fastify/static from 10.1.2 to 10.1.3 by @dependabot[bot] in #8172
- build(deps): bump marked from 18.0.7 to 18.0.9 by @dependabot[bot] in #8173
- build(deps): bump posthog-node from 5.47.3 to 5.48.1 by @dependabot[bot] in #8175
- build(deps-dev): bump @fastify/response-validation from 3.0.3 to 3.0.4 by @dependabot[bot] in #8177
- build(deps): bump @fastify/formbody from 8.0.2 to 9.0.0 by @dependabot[bot] in #8178
- build(deps): bump vue-echarts from 8.0.1 to 8.1.0 by @dependabot[bot] in #8171
- build(deps-dev): bump postcss from 8.5.25 to 8.5.26 by @dependabot[bot] in #8179
- build(deps-dev): bump eslint-plugin-cypress from 6.4.3 to 6.4.4 by @dependabot[bot] in #8180
- build(deps): bump fastify from 5.11.2 to 5.11.3 by @dependabot[bot] in #8176
- build(deps-dev): bump ws from 8.21.1 to 8.21.3 by @dependabot[bot] in #8174
- Persist session ID in sessionStorage for tab identity by @cstns in #8162
- build(deps): bump docker/login-action from 4.4.0 to 4.6.0 by @dependabot[bot] in #8033
- build(deps): bump JarvusInnovations/background-action from 1.0.7 to 2.0.0 by @dependabot[bot] in #7958
- build(deps): bump 1password/install-cli-action from 4.0.0 to 4.1.0 by @dependabot[bot] in #7959
- docs: document the project node limitations by @dimitrieh in #8071
- re-sync package-lock.json by @hardillb in #8187
- docs: clarify EMQX broker dependency and dependent features by @dimitrieh in #7759
- Add tab presence support to track user activity across sessions by @cstns in #8182
- [7839] Data Farm > Applications 4 - remaining vue + loaders by @n-lark in #8052
- [8079] Data Farm > Hosted Instances 1 - backend: lifecycle events by @n-lark in #8112
- [8080] Data Farm > Hosted Instances 2 - store + first consumer by @n-lark in #8151
- feat: rename application route names to kebab-case by @cstns in #8106
- Add platform_list_browser_sessions MCP tool by @cstns in #8184
- Add TabPresencePublisher and MCP toggle integration in ExpertButton component by @cstns in #8183
- [8081] Data Farm > Hosted Instances 3 - subscriber by @n-lark in #8153
- feat: rename Device and Instance parent route names to kebab-case by @cstns in #8191
- Apply review follow-ups to Cloud billing and quota docs by @dimitrieh in #7946
- Add missing h1s to doc pages by @sumitshinde-84 in #8193
- Add SendMqttMessageAwaitReply utility by @cstns in #8195
- Update tab-presence topics to include
browserprefix and adjust condition checks by @cstns in #8194 - feat: add lint rule to enforce kebab-case route names by @cstns in #8107
- build(deps): bump cypress-io/github-action from 7.4.1 to 7.4.2 by @dependabot[bot] in #8203
- build(deps): bump fastify from 5.11.3 to 5.12.0 by @dependabot[bot] in #8211
- build(deps-dev): bump cypress from 15.20.0 to 15.20.1 by @dependabot[bot] in #8212
- build(deps): bump @fastify/multipart from 10.1.0 to 10.1.1 by @dependabot[bot] in #8210
- build(deps): bump highlight.js from 11.11.1 to 11.12.0 by @dependabot[bot] in #8197
- build(deps): bump @redis/client from 6.2.0 to 6.2.1 by @dependabot[bot] in #8205
- build(deps): bump @aws-sdk/client-sesv2 from 3.1106.0 to 3.1111.0 by @dependabot[bot] in #8201
- build(deps): bump posthog-node from 5.48.1 to 5.49.1 by @dependabot[bot] in #8207
- build(deps): bump @sentry/node from 10.69.0 to 10.70.0 by @dependabot[bot] in #8199
- build(deps-dev): bump @typescript-eslint/parser from 8.66.0 to 8.67.0 by @dependabot[bot] in #8206
- [8220] A trial team with 'contact sales' enabled is directed to stripe to setup billing by @n-lark in #8223
- Remove hardcoded permission allowlist for expert MCP tokens by @cstns in #8185
- [8227] Move PostHog gating into buildFeatureChecks by @n-lark in #8229
- build(deps): bump @sentry/vue from 10.69.0 to 10.70.0 by @dependabot[bot] in #8204
- build(deps-dev): bump vue-tsc from 3.3.9 to 3.3.10 by @dependabot[bot] in #8208
- build(deps-dev): bump @typescript-eslint/eslint-plugin from 8.66.0 to 8.67.0 by @dependabot[bot] in #8198
- [8196] Support popup-window context on the sign-up page (/account/create) by @n-lark in #8228
- docs: name the file each config snippet belongs in by @dimitrieh in #8216
- Refactor browser tab presence into a session lifecycle handler by @cstns in #8236
- Fix MCP gateway ACL check for multi-replica deployments by @Steve-Mcl in #8243
- Update minimum NodeJS version to 24 by @hardillb in #8235
- build(deps): bump validate-npm-package-name from 7.0.2 to 8.0.0 by @dependabot[bot] in #7525
- build(deps-dev): bump vue-tsc from 3.3.10 to 3.3.11 by @dependabot[bot] in #8254
- build(deps): bump @aws-sdk/credential-provider-node from 3.972.80 to 3.972.81 by @dependabot[bot] in #8255
- build(deps): bump marked from 18.0.9 to 18.0.10 by @dependabot[bot] in #8258
- build(deps): bump @fastify/helmet from 13.1.0 to 13.1.1 by @dependabot[bot] in #8256
- build(deps): bump dompurify from 3.4.13 to 3.4.14 by @dependabot[bot] in #8253
- build(deps-dev): bump sass from 1.102.0 to 1.103.1 by @dependabot[bot] in #8257
- build(deps): bump posthog-node from 5.49.1 to 5.50.0 by @dependabot[bot] in #8252
- build(deps): bump docker/setup-buildx-action from 4.2.0 to 4.3.0 by @dependabot[bot] in #8248
- build(deps-dev): bump cypress from 15.20.1 to 15.21.0 by @dependabot[bot] in #8249
- build(deps): bump @aws-sdk/client-sesv2 from 3.1111.0 to 3.1116.0 by @dependabot[bot] in #8246
- build(deps): bump fastify from 5.12.0 to 5.12.1 by @dependabot[bot] in #8247
- build(deps): bump uuid from 14.0.1 to 14.0.2 by @dependabot[bot] in #8250
- build(deps-dev): bump @vitest/coverage-istanbul from 4.1.10 to 4.1.11 by @dependabot[bot] in #8251
- [8222] Add Google Tag Manager by @n-lark in #8225
- Update readOnlyHint annotation to false in platform.js by @cstns in #8262
- Add PostHog flag handling and team-dependent re-evaluation logic by @cstns in #8267
- Fix readonly MCP flags on ui tools by @Steve-Mcl in #8274
- Fix improve forge mcp tools by @Steve-Mcl in #8275
- Hide yearly billing toggle if there are no yearly billing deets to show by @knolleary in #8232
- [8277] Fix PostHog group-flag race by @n-lark in #8278
- Add browser session gating for tool execution and metadata support by @cstns in #8276
- [8277] Fix PostHog group-flag race - Round 2 by @n-lark in #8281
- feat(mcp): add .well-known OAuth discovery endpoints by @andypalmi in #8263
- feat(mcp): OAuth2 PKCE flow with dynamic client registration for MCP agents by @andypalmi in #8264
- feat(mcp): add MCP OAuth consent page by @andypalmi in #8265
- feat(mcp): attribute third-party MCP audit actions by @andypalmi in #8272
- feat(mcp): forward telemetry attribution and self-hosted opt-out context by @andypalmi in #8279
- ci: Do not send telemetry anonymously on pre-staging by @ppawlowski in #8291
- Extend mcp tool feature set by @cstns in #8283
- [8268] Prompt users to update nr-launcher for the dashboard cross-site fix by @n-lark in #8269
- Revert stray type column in AuthClients migration by @andypalmi in #8297
- Fix README logo by @n-lark in #8300
- Improve reliability of browser MCP session pinning by @Steve-Mcl in #8289
- feat(mcp): gate third-party MCP tool calls on the per-team AI feature by @andypalmi in #8296
- [8288] If a team has no dashboard-serving instances, clicking on dashboard tab shows error by @n-lark in #8294
- Move round feature enablement by @hardillb in #8155
- Update git pipelinestage schema to handle null fields by @knolleary in #8304
- Force NodeJS 24 for UI tests by @hardillb in #8306
- chore: dependency updates by @Steve-Mcl in #7767
- fix(auth): enforce PAT team scope on entity-addressed routes by @andypalmi in #8301
- Move MCP comms lifecycle out of the Expert button and into the orchestrator by @cstns in #8307
- docs: add a guide for connecting your own AI agent over MCP by @dimitrieh in #8241
- Release 3.0.0 by @n-lark in #8310
Full Changelog: v2.33.2...v3.0.0