Commit Graph
2364 Commits
Author SHA1 Message Date
Francis Cao b7e1d902f4 seperate revenue queries for better api/performance. Fix realtime css/ui issues. 2026-05-12 16:44:12 -07:00
Francis Cao c6ec8385c9 Add revenue chart cumulative mode. 2026-05-12 10:32:43 -07:00
Francis Cao 21b56d2922 add LLM channel logic 2026-05-11 10:31:04 -07:00
Mike Cao 216cf6c448 Migrate test suite from Cypress and Jest to Playwright and Vitest 2026-05-09 01:23:20 -07:00
Mike Cao 2fd319f910 Add configurable internal API URL 2026-05-09 01:06:52 -07:00
Francis Cao fa182d0947 implement URL pageview metric/expanded metric 2026-05-07 16:59:30 -07:00
Francis Cao 1b61ee4692 Merge pull request #4247 from anvme/perf/tracker-inp-defer-sort
perf(tracker): defer INP percentile computation to flush time
2026-05-07 16:57:04 -07:00
Francis Cao 73c045118b Merge branch 'dev' into fix/pages-url-query 2026-05-07 16:15:46 -07:00
Mike Cao 6c2155d496 Merge branch 'dev' of https://github.com/umami-software/umami into dev 2026-05-07 14:54:25 -07:00
Mike Cao 9b18511af0 Merge branch 'heatmaps' into dev
# Conflicts:
#	db/clickhouse/schema.sql
2026-05-07 14:49:21 -07:00
Mike Cao eef10dd897 Use unknown icon for generic browser 2026-05-07 14:34:10 -07:00
Mike Cao 6672ea04f0 Label generic browser as unknown 2026-05-07 14:30:43 -07:00
Mike Cao 3d9e116424 Guard recorder custom events until ready 2026-05-07 14:28:14 -07:00
Francis Cao 17e7a4a63a exclude performance events from non-performance metrics/lists 2026-05-07 14:17:03 -07:00
Mike Cao 6be5b61442 Wait for heatmap snapshot before overlay 2026-05-07 14:06:49 -07:00
Mike Cao abac89b57f Fix heatmap snapshot timestamp query 2026-05-07 14:01:45 -07:00
Mike Cao 923b94ae8e Render heatmaps from replay snapshots 2026-05-07 13:59:30 -07:00
Francis Cao b7084bb90a Merge branch 'dev' into fix/delete-cascade 2026-05-07 13:58:29 -07:00
Mike Cao 9c31e7b601 Fix heatmap iframe sizing 2026-05-07 13:52:41 -07:00
Francis Cao 9b099408c2 add share page options enable filtering and enforce theme 2026-05-07 13:24:45 -07:00
Francis Cao 5ccfb6d0a5 implement datatable sorting on non-analytics tables. (website/board/link/pixel/team/admin) 2026-05-07 10:46:03 -07:00
Stanislaw 3f9de35907 perf(tracker): defer INP percentile computation to flush time
The INP observer sorted Object.values(interactions) on every event entry,
even though metrics.inp is only read when sendPerformance() flushes.
Defer the sort + p98 computation to flush, and drain queued observer
entries via observer.takeRecords() to capture the most recent
interactions on pagehide/visibilitychange.

Output is identical (same INP value computed). Savings are largest on
interaction-heavy pages and low-end devices where the per-event sort
compounds.
2026-05-07 15:31:49 +02:00
Stanislaw 71ee000f21 fix: avoid restamping deletedAt + skip Redis DEL for already-soft-deleted slugs
Address Greptile review feedback on #4243.

- Cloud-mode link.updateMany / pixel.updateMany now filter where: { ..., deletedAt: null } so a previously soft-deleted row keeps its original deletion timestamp instead of being restamped with the current time.
- Pre-transaction findMany now selects deletedAt; the Redis invalidation list filters to only live slugs, avoiding harmless but wasted DEL calls for already-soft-deleted entries.

Note: the share.deleteMany cleanup still uses the broad entityId list (not filtered by deletedAt) so that orphan share rows of already-soft-deleted links/pixels are still cleaned up. Filtering the prefetch itself, as Greptile's exact suggestion proposed, would skip those shares while link.deleteMany still hard-deletes the rows, leaving orphan share rows behind. Verified empirically with a 3-scenario reproduction.
2026-05-07 04:14:38 +02:00
Stanislaw a57abbe039 fix: clean up link, pixel, board rows on user/team deletion
deleteUser and deleteTeam left link/pixel/board rows (and their share rows)
in the database after the owner was removed. /q/<slug> and /p/<slug>
also kept serving deleted entries because the routes did not filter
deletedAt and Redis cached lookups for 24h.

- deleteUser: clean up link/pixel/board + shares for the deleted user.
  Cloud mode: soft-delete link/pixel, hard-delete board, only userId-owned.
  Non-cloud: hard-delete everything matching userId or owned teamIds.
- deleteTeam: same cleanup, scoped to teamId.
- /q and /p route handlers: filter deletedAt: null at the call sites
  (not in findLink/findPixel helpers, which would null-deref the
  permission checks at src/permissions/link.ts and pixel.ts).
- Post-transaction Redis invalidation mirrors deleteWebsite.
2026-05-07 03:37:22 +02:00
Francis Cao 71893e4f89 fix maxheight on DialogButton 2026-05-06 09:51:28 -07:00
Francis Cao f463a4ce3f rename propertyName parameter 2026-05-05 10:48:56 -07:00
Mike Cao 1b69ce6e90 Add scroll heatmaps. 2026-05-05 10:43:39 -07:00
Mike Cao c7f71e5758 Make heatmaps report always available. 2026-05-05 10:43:39 -07:00
Mike Cao 2ffa655097 Merge pull request #4224 from JLUpengjiaji/V2.0
Flatten JSON data
2026-05-04 19:38:47 -04:00
Mike Cao 0e586dc2f9 Merge pull request #4223 from JLUpengjiaji/V1.0
Remove redundant search logic
2026-05-04 19:37:17 -04:00
Francis Cao fbac7518fc Add MAX_PAGING_RESULTS on hooks for performance improvements. 2026-05-04 15:43:05 -07:00
Francis Cao a8c1f26775 remove duration from session property stats 2026-05-04 14:26:27 -07:00
Mike Cao 12c10c48cd Gate heatmaps report on UMAMI_SELF_RECORD. 2026-05-04 13:29:53 -07:00
Francis Cao a113f5be79 query optimizations on session property filters 2026-05-04 12:42:25 -07:00
Francis Cao 5fc02b6aef fix formatting and css for session property screen 2026-05-04 10:54:58 -07:00
Mike Cao 8723cf3307 Merge pull request #4228 from manuelfesantos/feat/auto-pageview-attribute
feat: add data-auto-pageview attribute to tracker script
2026-05-02 03:09:54 -04:00
Francis Cao 946a969df6 fix syntax error 2026-05-01 13:25:54 -07:00
Francis CaoandCopilot 00c0273500 fix clickhouse filtering on event_name
Co-authored-by: Copilot <copilot@github.com>
2026-05-01 13:16:30 -07:00
Francis Cao d5c48ee75f clean-up session property string charts and insights. 2026-05-01 12:09:22 -07:00
Francis Cao 1f2bd7cad9 fix property filter css. format date columns in pivot table 2026-05-01 10:00:30 -07:00
Manuel Fé Santos 8ce833c93b fix: suppress SPA pageview tracking when auto-pageview is disabled
The handlePush function was still calling track() on SPA navigations
regardless of the auto-pageview setting. Gate that call behind the
autoPageview flag while keeping URL state and performance flush active.
2026-04-30 11:22:30 +01:00
Manuel Fé Santos 790354d3ac Add data-auto-pageview attribute to tracker script
Allow disabling the automatic initial pageview while keeping
performance tracking, click handling, and path change detection active.
2026-04-30 11:04:26 +01:00
Francis Cao ea52adea6b Merge branch 'dev' of https://github.com/umami-software/umami into dev 2026-04-29 13:11:06 -07:00
Francis Cao 680a1ca1a2 refactor Property components to be resused for both session/event data. Implement session-data screens + filtering. Remove all event-data specific compoenents/queries 2026-04-29 13:11:03 -07:00
JLUpengjiaji f6703d3d6d refactor(data): 重构 JSON 扁平化函数并添加测试
- 将 flattenJSON 重构为更简洁的递归实现
- 提取 KeyValueData 接口并导出 createKeyValue 函数
- 添加完整的单元测试覆盖所有功能
2026-04-29 15:04:08 +08:00
JLUpengjiaji 17a00f62a4 fix: 移除重复的搜索条件检查并修复搜索查询逻辑 2026-04-29 14:57:24 +08:00
Mike Cao 3ebd5a44e8 Fix 500 on /api/send when client IP is malformed. 2026-04-28 19:47:38 -07:00
Mike Cao a6b13b71db Add click heatmaps report
Extracts click events from rrweb session-replay buffers at write time
into a new heatmap_event table (Prisma + ClickHouse). New /heatmaps
report shows a page picker plus an overlay of click density on the
dominant viewport, with an optional iframe of the live page behind.
2026-04-27 22:20:38 -07:00
Francis Cao 9da332c489 Add Property filters for booleans, dates, arrays 2026-04-27 13:31:47 -07:00
Francis Cao 877945e721 Event data UI/UX polish 2026-04-27 12:09:13 -07:00