Commit Graph
81 Commits
Author SHA1 Message Date
Francis Cao 18a6c2995a move multiple init guard to be per website ID not window 2026-04-08 10:45:32 -07:00
Mike Cao f8f86d72aa Merge branch 'dev' into tracker-fetch-priority-low 2026-04-04 17:12:29 -04:00
Mike Cao 224bbbb8de Merge pull request #3606 from fauzora/fix/tracker-single-init
fix(tracker): prevent multiple initialization when script injected more than once
2026-03-29 20:05:32 -07:00
Francis Cao de739c66a1 correct performance tracker inconsistency issues 2026-03-23 16:39:15 -07:00
Francis Cao 551e04b487 update calculations to Google's current web vitals spec 2026-03-15 17:40:22 -07:00
Francis Cao 9d72f8803a update ttfb calc to industry standard, fix LCP bug 2026-03-05 12:35:01 -08:00
Francis Cao 1730d495e5 fix performance reset bug 2026-03-05 10:23:00 -08:00
Mike Cao 8c1ee0b3ce Progress check-in. Updated tracker and recorder scripts. 2026-03-04 12:21:36 -08:00
Mike Cao e73d827d21 Merge branch 'session-recording' into dev 2026-02-25 02:32:07 -08:00
Mike CaoandClaude Opus 4.6 ce9e2416fb Add Web Vitals performance tracking (LCP, INP, CLS, FCP, TTFB)
End-to-end performance metrics tracking: dedicated database table with
percentile aggregation, tracker collection behind data-perf attribute,
/api/send handling, report API endpoints, and Performance dashboard page
with threshold-based metric cards, time-series chart, and per-page breakdown.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 19:25:20 -08:00
Mike CaoandClaude Opus 4.6 72b5c658e2 Add rrweb-based session recording feature.
Implements full session recording with rrweb for DOM capture and rrweb-player
for playback. Includes: Prisma schema for SessionRecording model, chunked
gzip-compressed storage, recorder script built via Rollup, collection API
endpoint, recordings list/playback UI pages, website recording settings,
and cascade delete support.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 15:49:59 -08:00
GochoMugo 8cc571f548 fix: handle denied storage access 2025-12-11 08:53:13 +03:00
Chairil Fauzi F. 4abd277bc8 Merge branch 'umami-software:master' into fix/tracker-single-init 2025-12-01 19:16:25 +07:00
Mike Cao fa8d8055df Reformatted files with biome. 2025-11-22 22:42:42 -08:00
Mike Cao 5ded9abbfe Added data-fetch-credentials attribute. Closes #3644 2025-11-13 19:42:04 -08:00
Mike Cao 592f7c0ae7 Added check for REDIS_URL. Closes #3677. 2025-11-10 21:08:55 -08:00
Antti Hilja e85ef4a9c5 Set tracker’s fetch call priority to low
Analytic is important activity but not as important as main business
logic. Setting low priority doesn't mean the fetch call will be more
likely to be discarded etc. it's just a hint to the browser.
2025-10-04 17:33:15 +02:00
Mike Cao 3acb34d599 Merge branch 'master' into dev 2025-09-16 22:45:10 -07:00
Mike Cao 6799bd113a Allow async beforeSend function. Closes #3584 2025-09-09 15:23:49 -07:00
Chairil Fauzi Firmansyah c5298d5d45 fix(hash): improve URL normalization and handling in tracking functions 2025-09-04 18:00:28 +07:00
Chairil Fauzi Firmansyah 29c384f0bb fix(tracker): prevent multiple initialization when script injected more than once 2025-09-04 16:23:41 +07:00
Mike Cao 5ed1d710cb Merge branch 'master' into jajaja
# Conflicts:
#	package.json
#	pnpm-lock.yaml
#	src/lib/detect.ts
2025-07-08 18:45:02 -07:00
Sov3rain 42c0ccc2eb Add keepalive option to tracker fetch request 2025-06-23 15:17:22 +02:00
Mike Cao 94b4b66a3d Merge branch 'dev' into jajaja
# Conflicts:
#	package.json
#	pnpm-lock.yaml
2025-05-09 21:56:07 -07:00
Mike Cao 64505bb417 Added before-send attribute to tracker. 2025-05-07 16:16:38 -07:00
Mike Cao 9101f8a478 Merge branch 'dev' into script-simplification 2025-05-05 18:59:11 -05:00
Ali Khaleqi Yekta 9b9cf32ee7 Script simplification: Final minor cleanups 2025-05-04 12:24:23 +03:30
Ali Khaleqi Yekta 5369144b64 Script simplification: Less nesting 2025-05-04 12:18:49 +03:30
Ali Khaleqi Yekta b26fc15fa0 Script simplification: Greatly clarify element tracking logic 2025-05-04 12:17:08 +03:30
Ali Khaleqi Yekta 671dcfceb5 Script simplification: Use Element.closest + less nesting 2025-05-04 12:13:15 +03:30
Ali Khaleqi Yekta e12e5b0d2e Script simplification: In-place headers + re-order 2025-05-04 12:12:23 +03:30
Ali Khaleqi Yekta 1f36726f73 Minor enhancements and clarifications 2025-05-01 18:34:18 +03:30
Ali Khaleqi Yekta 130c024c3e Simplify title: No need to observe 2025-05-01 17:33:46 +03:30
Mike Cao be1b2fc272 Merge dev. 2025-04-28 20:09:58 -07:00
Mike Cao e8a933f80e Updated id logic. 2025-04-25 03:19:37 -07:00
perso182 d966668257 Added type check for id 2025-04-01 16:56:17 +02:00
perso182 37ae0374d8 Added id as a parameter to identify and include it in the payload. Removed the usage of localstorage 2025-04-01 11:24:06 +02:00
perso182 224961447c Refactored index.js 2025-03-31 11:04:57 +02:00
perso182 109e8d6d31 Added error handling for JSON.parse 2025-03-31 10:14:31 +02:00
perso182 2c80aa0b24 Use props passed to identify to define session 2025-03-28 11:02:56 +01:00
Mike Cao 0f6cdf8b80 Updated reports components. 2025-03-26 21:54:23 -07:00
Mike Cao cb7eef200c Added check for do not track to tracker. 2025-03-01 17:18:46 -08:00
Mike Cao 21adbc29d4 Added hostname back to tracker. 2025-02-10 17:43:52 -08:00
Mike Cao a2a39b7ecd Updated tracker to send full url. 2025-02-07 23:10:27 -08:00
Mike Cao 99edacebf4 Handle target=_top links. Closes #3187 2025-02-07 12:08:42 -08:00
Mike Cao 628e1aa5eb Merge pull request #3176 from iffa/fix/tracker-omit-credentials
Omit credentials in tracker fetch request
2025-01-21 13:04:32 -08:00
Santeri Elo 5ed622760c Omit credentials in fetch request 2025-01-17 07:04:26 +02:00
Mike Cao fbea08ae59 Removed encoding. 2025-01-10 09:10:41 -08:00
Mike Cao c0a67dadd5 Updated send logic. 2025-01-08 17:00:59 -08:00
Mike Cao 4ddf8d0d56 Added option to exclude hash. 2024-12-25 21:01:15 -08:00