0.10.0 - 2026-04-06
Important
✨ New features
- (backend): Implement user notification preferences by @anupcowkur in #3295
- (backend): Implement MCP server by @anupcowkur in #3254
- (backend): Add ingest service (#3249) by @detj in #3249
- (backend): Add error rate spike thresholds prefs & make threshold prefs app specific by @anupcowkur in #3233
- (backend): Implement app api key rotation by @anupcowkur in #3188
- (backend): Send alerts on bug reports by @anupcowkur in #3183
- (backend): Add test Slack alerts by @anupcowkur in #2898
- (backend): Add common path for Crashes and ANRs by @anupcowkur in #2894
- (frontend): Add network performance tab (#3281) by @abhaysood in #3281
- (frontend): Add llms.txt and llms-full.txt by @anupcowkur in #3289
- (frontend): Add docs to website by @anupcowkur in #3284
- (frontend): Implement dynamic config (#3007) by @abhaysood in #3007
🐛 Bug fixes
- (backend): Handle lost valkey connection while fetching sdk config (#3417) by @detj in #3417
- (backend): Panic when dart exceptions is missing (#3414) by @detj in #3414
- (backend): Order crash/ANR details by descending timestamp by @anupcowkur in #3393
- (backend): Prevent SSRF in proxy attachment and symbol endpoints by @anupcowkur in #3390
- (backend): Skip daily snapshots for non-billable teams by @anupcowkur in #3388
- (backend): Calculate correct month names for usage chart by @anupcowkur in #3372
- (backend): Account for retention in billing meter by @anupcowkur in #3357
- (backend): Add missing libs in alerts dockerfile (#3304) by @detj in #3304
- (backend): Allow more characters for screen view event (#3301) by @detj in #3301
- (backend): Handle panic for unsolvable malformed sdk request (#3278) by @detj in #3278
- (backend): Add
team_idto app retention query in cleanup (#3236) by @detj in #3236 - (backend): Journey api would return inaccurate results sometimes (#3213) by @detj in #3213
- (backend): Crash/anr groups list api would return inaccurate results sometimes (#3212) by @detj in #3212
- (backend): Onboard app synchronously during ingest (#3205) by @detj in #3205
- (backend): Populate session attributes for trace only sessions (#3196) by @detj in #3196
- (backend): Fix syntax error in migration (#3181) by @detj in #3181
- (backend): Migrate ingestion metrics synchronously (#3180) by @detj in #3180
- (backend): Update migration for device manufacturer attribute (#3097) by @detj in #3097
- (backend): Allow larger values for device manufacturer attribute (#3094) by @detj in #3094
- (backend): Issue free metrics would not show for some cases (#3093) by @detj in #3093
- (backend): Update migrations for 0.10.x release (#3084) by @abhaysood in #3084
- (backend): Support empty filters in certain dashboard apis by @detj in #3043
- (backend): Size metrics will fail sometimes (#3035) by @detj in #3035
- (backend): Handle panic on invalid exception payload (#3031) by @detj in #3031
- (backend): Prevent duplicate sessions on search (#3026) by @detj in #3026
- (backend): Improve handling of launch metrics delta nans by @detj in #2985
- (backend): Only show sessions having many events (#2979) by @detj in #2979
- (backend): Fix broken remember query (#2971) by @detj in #2971
- (backend): Some attachments were not getting uploaded (#2967) by @detj in #2967
- (backend): Move to async ingestion flow for higher throughput (#2964) by @detj in #2964
- (backend): Fix default user auth error on clickhouse 25.8 migration (#2925) by @anupcowkur in #2925
- (backend): Avoid long running database transaction during ingest (#2929) by @detj in #2929
- (backend): Only use request context till parsing of body in ingest (#2927) by @detj in #2927
- (backend): Update last_seen for API key by @anupcowkur in #2903
- (frontend): Fix cookie banner privacy policy link by @anupcowkur in #3397
- (frontend): Show full date in monthly plot x-axis labels by @anupcowkur in #3387
- (frontend): Replace invalid
<p>nesting with<div>in network overview by @anupcowkur in #3378 - (frontend): Render HTML tags in markdown with rehype-raw by @anupcowkur in #3373
- (frontend): Fix overlapping text in session timeline (#3313) by @abhaysood in #3313
- (frontend): Fix illegible text colour in user profile initials by @anupcowkur in #3279
- (frontend): Copy correct api base url based on env variable by @anupcowkur in #3268
- (frontend): Fix plot render errors by @anupcowkur in #3207
- (frontend): Set posthog blocked status to true by default by @anupcowkur in #3179
- (frontend): Handle posthog canary fetch non-200 status case by @anupcowkur in #3177
- (frontend): Fix cookie banner issues by @anupcowkur in #3154
- (frontend): Fix date filters by @anupcowkur in #3116
- (frontend): Suppress theme change hydration warnings by @anupcowkur in #3101
- (frontend): Take users to overview page on team change by @anupcowkur in #2885
🔨 Misc
- (backend): Update production compose.yml (#3421) by @detj in #3421
- (backend): Update all workflow dependencies (#3420) by @detj in #3420
- (backend): Modify validation of ingest batch size (#3415) by @detj in #3415
- (backend): Update root go work (#3412) by @detj in #3412
- (backend): Remove unknown file (#3403) by @detj in #3403
- (backend): Remove ingestion from api service (#3402) by @detj in #3402
- (backend): Update go.mod files again (#3400) by @detj in #3400
- (backend): Update go dependencies (#3399) by @detj in #3399
- (backend): Add workflow for ingest-worker (#3395) by @detj in #3395
- (backend): Update ingest-worker go dependencies (#3394) by @detj in #3394
- (backend): Introduce event driven ingestion pipeline via iggy & pub/sub (#3314) by @detj in #3314
- (backend): Use attachment size from SDK when available by @anupcowkur in #3385
- (backend): Tidy billing deps by @anupcowkur in #3358
- (backend): Add more billing tests by @anupcowkur in #3344
- (backend): Revert validations for http urls (#3326) by @abhaysood in #3326
- (backend): Fix invalid urls in session data (#3322) by @abhaysood in #3322
- (backend): Update billing to GB days by @anupcowkur in #3319
- (backend): Upgrade to clickhouse v25.12 (#3307) by @detj in #3307
- (backend): Add missing libs to alerts in compose.yml (#3305) by @abhaysood in #3305
- (backend): Fix migrations & ready for next release (#3288) by @detj in #3288
- (backend): Show unit-days used in pro plan by @anupcowkur in #3282
- (backend): Remove clickhouse read pool from alerts (#3273) by @detj in #3273
- (backend): Remove proxy symbol method from ingest service (#3276) by @detj in #3276
- (backend): Reverse proxy urls using recommended api (#3274) by @detj in #3274
- (backend): Close readonly connection pool in api service (#3271) by @detj in #3271
- (backend): Use clickhouse read pool in api service (#3270) by @detj in #3270
- (backend): Add ingest allow check tests to ingest service by @anupcowkur in #3267
- (backend): Add session start time attribute to events and spans (#3240) by @abhaysood in #3240
- (backend): Add usage threshold banners by @anupcowkur in #3223
- (backend): Reset free plan limit to 1M units by @anupcowkur in #3222
- (backend): Reduce free plan limit to 1000 for testing by @anupcowkur in #3220
- (backend): Remove max_threads setting (#3218) by @detj in #3218
- (backend): Replace deprecated async insert to modern alternative (#3217) by @detj in #3217
- (backend): Add actor to cloud-deploy dispatch trigger job (#3214) by @detj in #3214
- (backend): Implements custom error thresholds by @anupcowkur in #3210
- (backend): Use dynamic time groupings for plots by @anupcowkur in #3206
- (backend): Update daily summary time range and email by @anupcowkur in #3198
- (backend): Update authz roles & UI checks by @anupcowkur in #3189
- (backend): Update self-host gitignore (#3187) by @detj in #3187
- (backend): Use additional context for inter dependencies in go services (#3156) by @detj in #3156
- (backend): Implement cloud billing by @anupcowkur in #3151
- (backend): Optimize & improve dashboard read queries (#3139) by @detj in #3139
- (backend): Update /usage api response in docs by @anupcowkur in #3108
- (backend): Update ingestion metrics by @anupcowkur in #3107
- (backend): Update go dependencies (#3098) by @detj in #3098
- (backend): Update retention periods by @anupcowkur in #3091
- (backend): Add migration guide entry for v0.10.x (#3074) by @abhaysood in #3074
- (backend): Sync go.work (#3050) by @detj in #3050
- (backend): Update go image tag (#3032) by @detj in #3032
- (backend): Handle an invalid payload condition to debug panics (#3029) by @detj in #3029
- (backend): Fix a code comment (#2981) by @detj in #2981
- (backend): No waiting for background tasks in debug (#2980) by @detj in #2980
- (backend): Remove redis command from production compose (#2983) by @detj in #2983
- (backend): Integrate with redis-go (#2973) by @abhaysood in #2973
- (backend): Improve ingest flow & tracing (#2970) by @detj in #2970
- (backend): Set exec bit for postgres init script (#2921) by @detj in #2921
- (backend): Set execute bit for clickhouse init script (#2918) by @detj in #2918
- (backend): Fix shebang in clickhouse init script (#2916) by @detj in #2916
- (backend): Upgrade to latest clickhouse lts version (#1982) by @detj in #1982
- (backend): Use correct ddl state for fresh installs (#2914) by @detj in #2914
- (backend): Improve robustness of ingestion de-duplication (#2891) by @detj in #2891
- (backend): Delete pending alerts older than 24 hours by @anupcowkur in #2902
- (backend): Stop Slack channel removal on
channel_not_foundby @anupcowkur in #2900 - (deps): Bump go.opentelemetry.io/otel/sdk in /backend/libs (#3411) by @dependabot[bot] in #3411
- (deps): Bump github.com/go-jose/go-jose/v4 in /backend/symboloader (#3410) by @dependabot[bot] in #3410
- (deps): Bump github.com/go-jose/go-jose/v4 in /backend/cleanup (#3409) by @dependabot[bot] in #3409
- (deps): Bump github.com/go-jose/go-jose/v4 in /backend/api (#3408) by @dependabot[bot] in #3408
- (deps): Bump github.com/go-jose/go-jose/v4 (#3407) by @dependabot[bot] in #3407
- (deps): Bump github.com/go-jose/go-jose/v4 in /backend/libs (#3406) by @dependabot[bot] in #3406
- (deps): Bump github.com/go-jose/go-jose/v4 in /backend/ingest (#3405) by @dependabot[bot] in #3405
- (deps): Bump github.com/go-jose/go-jose/v4 (#3404) by @dependabot[bot] in #3404
- (deps): Bump github.com/modelcontextprotocol/go-sdk (#3401) by @dependabot[bot] in #3401
- (deps): Bump google.golang.org/grpc in /self-host/sessionator (#3398) by @dependabot[bot] in #3398
- (deps): Bump google.golang.org/grpc in /backend/libs (#3396) by @dependabot[bot] in #3396
- (deps): Bump golang.org/x/crypto in /backend/api (#3023) by @dependabot[bot] in #3023
- (deps): Bump golang.org/x/crypto in /self-host/sessionator (#3022) by @dependabot[bot] in #3022
- (deps): Bump golang.org/x/crypto in /backend/alerts (#3021) by @dependabot[bot] in #3021
- (deps): Bump golang.org/x/crypto in /backend/cleanup (#3020) by @dependabot[bot] in #3020
- (deps): Bump golang.org/x/crypto in /backend/metering (#3019) by @dependabot[bot] in #3019
- (deps): Bump golang.org/x/crypto in /backend/symboloader (#3018) by @dependabot[bot] in #3018
- (frontend): Display kv pairs as pills by @anupcowkur in #3418
- (frontend): Refactor pricing calculator & add tests by @anupcowkur in #3386
- (frontend): Add stripe portal link in usage page by @anupcowkur in #3382
- (frontend): Update landing page logos & display by @anupcowkur in #3377
- (frontend): Remove http method from generic filters (#3323) by @abhaysood in #3323
- (frontend): Reverse proxy all dashboard posthog requests (#3298) by @detj in #3298
- (frontend): Add and link slack integration feature doc by @anupcowkur in #3297
- (frontend): Remove custom colour override for slack switch by @anupcowkur in #3296
- (frontend): Update llms.txt title by @anupcowkur in #3290
- (frontend): Update search term dark highlight colour by @anupcowkur in #3286
- (frontend): Improve pricing card UI by @anupcowkur in #3280
- (frontend): Add test for ingest url fallback display by @anupcowkur in #3266
- (frontend): Show subscription info for pro plans by @anupcowkur in #3234
- (frontend): Show billing usage progress bar for free plans by @anupcowkur
- (frontend): Add billing unit explanation to usage page by @anupcowkur
- (frontend): Remove uneeded filters from api calls by @anupcowkur in #3224
- (frontend): Update pricing breakdown labels by @anupcowkur in #3112
- (frontend): Change label size of usage pie chart by @anupcowkur in #3111
- (frontend): Show combined events in usage by @anupcowkur in #3110
- (frontend): Update layout snapshot rendering (#3106) by @abhaysood in #3106
- (frontend): Update layout snapshot rendering by @anupcowkur in #3104
- (frontend): Disable team name change ui for below admin users by @anupcowkur in #3099
- (frontend): Update website by @anupcowkur in #2968
- (frontend): Add note to session list about filtering by @anupcowkur in #3049
- (frontend): Show size metric with disclaimer on multi app version select by @anupcowkur in #3048
- (frontend): Send empty filters when all values are selected by @anupcowkur
- (frontend): Default to latest app version filter by @anupcowkur in #3034
- (frontend): Update next js to 14.2.35 (#3024) by @anupcowkur in #3024
- (frontend): Show app size delta using appropriate size units (#2997) by @detj in #2997
- (frontend): Handle nan for delta & value separately in launch metrics by @anupcowkur in #2989
- (frontend): Rename DangerConfirmationModal to DangerConfirmationDialog by @anupcowkur in #2901
- Add biome config (#3300) by @detj in #3300
⚡ Performance
- (backend): Pre-sign attachment urls async in batches (#3200) by @detj in #3200
- (backend): Fetch user defined attribute keys concurrently (#3186) by @detj in #3186
- (backend): Improve performance of read queries (#3042) by @detj in #3042
📚 Documentation
- (backend): Update v0.10.x migration guide (#3419) by @detj in #3419
- Update billing flow diagram to include env var by @anupcowkur in #3176
- Add upgrade docs for sdks (#3142) by @abhaysood in #3142
- Update sdk integration guide (#3109) by @abhaysood in #3109
- Clarify http headers collection (#3133) by @abhaysood in #3133
- Update outdated sdk docs (#3004) by @abhaysood in #3004
- Fix placeholder key for API URL (#2896) by @Shabinder in #2896