Changes
- test(common): give the suite a per-test timeout it can survive off runInBand
- PR: #3516
- fix(telemetry): parse Firefox/Safari stack frames so browser exceptions reach source-map resolution
- PR: #3521
- Give sub-hour x-axis labels a day, so chart buckets stay distinct
- PR: #3520
- feat(network): OID Collection Templates — reusable, live-linked SNMP health OIDs
- PR: #3518
- perf(ci): stop the two jobs that set PR wall-clock from doing avoidable work
- PR: #3509
- fix(rule-engines): evaluate every enabled rule in a project, not the newest 100
- PR: #3510
- Enforce the enterprise license user limit, and let admins refresh it
- PR: #3522
- fix(docs): name the env var the Kubernetes inventory cutoff actually …
- PR: #3519
- fix(ci): bound Common Test's heap across Jest's worker pool
- PR: #3524
- fix(monitor): stop captureMetric attributes from claiming another resource's identity
- PR: #3523
- fix(docs): name the env var the Docker Swarm inventory cutoff actually reads
- PR: #3526
- fix(ui): stop Chrome ringing a focused chart in black
- PR: #3531
- fix(ui): eight usability papercuts across the shared table and header
- PR: #3532
- fix(rum): stop session replay destroying the snapshot it needs to be playable
- PR: #3535
- feat(discovery): name discovered hosts by their reverse-DNS record
- PR: #3536
- fix(kubernetes-agent): attribute host metrics to the node that produc…
- PR: #3533
- Make source map limits configurable and bound resolution by bytes
- PR: #3538
- fix(kubernetes-agent): detect severity in Monolog and zap log lines
- PR: #3534
- Fix prettier formatting in SourceMapIngestAPI.test.ts
- PR: #3539
- fix(discovery): harden reverse-DNS naming after an adversarial review
- PR: #3540
- test: cover the identity rate limiter and the markdown converters
- PR: #3541
- chore: update version to 12.0.31
- PR: #3542
- fix(ci): the two flakes that failed master at 12.0.31
- PR: #3543