Changes
- feat(workflow): create workflows through a template wizard
- PR: #3167
- feat(workflow): show the run's log when a run is started manually, in tabs
- PR: #3165
- fix(security): stop userinfo standing in for the host in the SSRF guard
- PR: #3172
- fix(security): IP allowlist bypass via spoofed X-Forwarded-For
- PR: #3171
- feat(dashboard): add a note textbox to bulk change-state modals
- PR: #3170
- feat(workflow): make database components say what goes in the box
- PR: #3168
- fix(ip): anchor the IPv6 validator so it stops accepting substrings
- PR: #3173
- fix(on-call): make schedule coverage gaps visible instead of rendering nothing
- PR: #3174
- feat(inventory): rename the Entities product to Inventory and overhaul it
- PR: #3169
- feat(on-call): never drop a page silently
- PR: #3176
- feat(network-topology): manual devices, declared links, and neighbour-matching fixes
- PR: #3177
- feat(inventory): archive, custom fields, and four item subpages
- PR: #3178
- test(on-call): characterization tests for current notification behaviour
- PR: #3175
- fix(permissions): enforce record ownership on create
- PR: #3179
- feat(on-call): make responder readiness visible
- PR: #3180
- fix(security): block private IPv4 transition endpoints
- PR: #3183
- feat(telemetry): connect logs, traces, metrics, profiles, exceptions, and replay into one investigation surface
- PR: #3193
- feat(ask-ai): feed the copilot — platform-wide tools, memory, cancel, feedback, native entry points
- PR: #3187
- fix(workflow): align template creation form
- PR: #3185
- Fix Kubernetes resources being classified as inventory hosts
- PR: #3184
- Improve workflow templates and runtime safety
- PR: #3194
- Improve Inventory experience and Kubernetes lifecycle
- PR: #3186
- feat(network): "Run now" to apply Site Assignment / Label Rules retroactively
- PR: #3197
- Put the pagination controls on the page
- PR: #3196
- fix(network-map): name every unit in a coincident cluster
- PR: #3198
- fix(telemetry): let a saved view be deselected again
- PR: #3199
- feat(dashboard): show user emails alongside name and avatar
- PR: #3201
- fix(network-map): paint widget labels at the weight their box was measured for
- PR: #3200
- fix(ai): retry a provider call ten times instead of losing the turn
- PR: #3202
- feat(admin): add users to a project in bulk from the Users list
- PR: #3204
- Build the workflow record editor from the model schema
- PR: #3203
- refactor(dictionary): drop the two props only ModelColumnEditor used
- PR: #3206