Usman Baig
2d3388546f
fix: pass CSRF token to switch-context call in refresh route
...
The auth API requires CSRF tokens on POST requests. The switch-context
call was failing silently with 403, causing refreshed tokens to lack
org_id.
2026-03-13 11:29:45 +01:00
Usman Baig
34c80d0857
fix: restore org context during token refresh
...
After refreshing the base token, call switch-context to get an
org-scoped token. This prevents 403 errors on Pulse API requests
when the access token is refreshed mid-session.
2026-03-13 11:18:26 +01:00
Usman Baig
1c26e4cc6c
fix: resolve intermittent auth errors when navigating between tabs
...
Token refresh race condition: when multiple requests got 401 simultaneously,
queued retries reused stale headers and the initiator fell through without
throwing on retry failure. Now retries regenerate headers (fresh request ID
and CSRF token), and both retry failure and refresh failure throw explicitly.
SWR cache is now invalidated after token refresh so stale error responses
are not served from cache.
2026-03-13 10:52:02 +01:00
Usman Baig
f7340fa763
fix: include URL in outbound/download events, exclude form inputs from dead clicks
2026-03-13 09:11:23 +01:00
Usman Baig
6e213539ea
feat: filter headless browsers and zero-screen bots client-side
2026-03-13 09:07:49 +01:00
Usman Baig
f69248ecfa
fix: strip utm_id from page paths to prevent fragmentation
2026-03-13 08:58:33 +01:00
Usman Baig
360d6e7e71
fix: preserve UTM params for backend attribution, only strip ad click IDs
2026-03-13 08:43:55 +01:00
Usman Baig
63144a136e
fix: only attribute referrer to landing page and strip Meta ad params
2026-03-13 01:31:14 +01:00
Usman Baig
1d71a13df4
fix: normalize page paths — strip UTM params and trailing slashes
2026-03-13 01:19:23 +01:00
Usman Baig
6edd5ac0b6
fix: skip pageview tracking for prerendered pages
2026-03-13 01:17:12 +01:00
Usman Baig
a57ed871f1
fix: screen size shadowing, popstate double pageview, custom event self-referrals
2026-03-13 01:09:45 +01:00
Usman Baig
765f8ec63e
fix: strip self-referrals from tracking script
2026-03-13 01:06:14 +01:00
Usman Baig
aae1714b02
fix: deduplicate pageviews on page refresh
2026-03-13 00:50:13 +01:00
Usman
484300c307
Merge pull request #43 from ciphera-net/staging
...
Release 0.15.0-alpha
0.15.0-alpha
2026-03-13 00:13:41 +01:00
Usman Baig
9fb19c18e8
chore: release 0.15.0-alpha
2026-03-13 00:12:13 +01:00
Usman Baig
0112004457
fix: depth default 3 max 5, min_sessions 2, 5 nodes per column, stricter labels
2026-03-12 23:58:56 +01:00
Usman Baig
063a21adeb
feat: cap nodes per column, dynamic SVG height, smart labels, thinner exit node
2026-03-12 23:46:24 +01:00
Usman Baig
90de83ad6d
fix: lower min_sessions from 3 to 1 for journey data
2026-03-12 23:30:12 +01:00
Usman Baig
a3fa48732a
fix: correct ribbon y-offset — d3-sankey y0/y1 are center, not top
2026-03-12 23:20:33 +01:00
Usman Baig
a637d32446
revert: remove frontend same-page filter, backend fix handles this
2026-03-12 23:12:12 +01:00
Usman Baig
df394b85ef
fix: filter out same-page transitions (reloads) from Sankey
2026-03-12 23:08:30 +01:00
Usman Baig
4e7c495160
fix: use SVG-level onMouseMove with data attrs for reliable hover
2026-03-12 23:04:08 +01:00
Usman Baig
9c8943d1e3
fix: rewrite hover state to single object, fix link dimming on node hover
2026-03-12 22:56:13 +01:00
Usman Baig
e7debdeb41
fix: consolidate exit nodes into single (exit) node
2026-03-12 22:52:24 +01:00
Usman Baig
3df93bb227
fix: link color from source node, fix hover dimming, labels trigger hover
2026-03-12 22:48:31 +01:00
Usman Baig
3bde3fd4e1
fix: only highlight links on node hover, not other nodes
2026-03-12 22:40:40 +01:00
Usman Baig
5cdf353233
feat: add node hover highlighting with connection dimming
2026-03-12 22:37:40 +01:00
Usman Baig
683bbce817
fix: thick node bars, multi-hue palette, higher link opacity, more padding
2026-03-12 22:31:05 +01:00
Usman Baig
828e930a69
fix: Sankey visual overhaul — lower link opacity, column color gradient, breathing room
...
- Links: 18% opacity default (was 60%), 45% on hover, grey for exit links
- Nodes: column-based orange gradient (bright entry → dark deep), stroke outline
- Labels: larger font, better padding, higher contrast backgrounds
- Layout: more vertical padding, wider node gap (24px)
2026-03-12 22:23:52 +01:00
Usman Baig
54daf14c6a
feat: replace MUI X Charts Pro with d3-sankey custom Sankey
...
Remove paid MUI dependency. Use d3-sankey (MIT, ~5KB) for layout
algorithm + custom SVG rendering. Same visual quality: smooth bezier
ribbon links, proper node spacing via sankeyJustify, label backgrounds,
hover dimming, exit nodes.
2026-03-12 22:17:16 +01:00
Usman Baig
281a9f237a
feat: replace custom Sankey SVG with MUI X Charts Pro Sankey
2026-03-12 22:07:20 +01:00
Usman Baig
4b10f8c1fc
fix: refine Sankey visual — thinner nodes, subtle links, orange on hover
2026-03-12 21:58:50 +01:00
Usman Baig
31286c45f4
fix: use brand orange for Sankey diagram nodes and links
2026-03-12 21:51:07 +01:00
Usman Baig
908606ade2
fix: make journey empty states consistent with dashboard blocks
2026-03-12 21:49:31 +01:00
Usman Baig
4cd9544672
fix(journeys): use correct session_count property in entry point dropdown
2026-03-12 21:39:31 +01:00
Usman Baig
49aa8aae60
docs: update frontend changelog for user journeys
2026-03-12 21:37:07 +01:00
Usman Baig
b3e335ec6c
feat(journeys): add skeleton and error boundary
2026-03-12 21:36:27 +01:00
Usman Baig
e7e76bb3db
feat(journeys): add Journeys tab to site navigation
2026-03-12 21:35:43 +01:00
Usman Baig
dc1030036c
feat(journeys): add Journeys page with controls and layout
2026-03-12 21:35:05 +01:00
Usman Baig
0fa6c4aaf4
feat(journeys): add top paths table component
2026-03-12 21:32:18 +01:00
Usman Baig
c669035718
feat(journeys): add Sankey diagram SVG component
2026-03-12 21:29:45 +01:00
Usman Baig
7336f9126e
feat(journeys): add frontend API client and SWR hooks
2026-03-12 21:24:39 +01:00
Usman Baig
6964be9610
refactor: remove realtime visitors detail page
...
Remove the individual session journey page and make the live visitor
count a static indicator. Prepares for the new aggregated User Journeys
feature (v0.17).
2026-03-12 20:45:58 +01:00
Usman Baig
bae492e8d9
style: show only percentage badge on hover in frustration tables
2026-03-12 20:31:21 +01:00
Usman Baig
03e3f41e48
refactor: use bundled /behavior endpoint via useBehavior SWR hook
...
Replaces 4 separate frustration API calls with single useBehavior hook.
Removes manual fetchData, loading/error state, and refresh interval—SWR
handles caching, revalidation, and error state automatically.
2026-03-12 20:24:28 +01:00
Usman Baig
eb17e8e8d6
fix: hide scroll depth and trend chart when rate-limited
...
Frustration APIs and dashboard API are separate — when frustration
calls fail, Scroll Depth still rendered from cached SWR data,
creating a broken mixed state. Now tracks error state and hides
the bottom section entirely on failure.
2026-03-12 18:35:36 +01:00
Usman Baig
540c774100
fix: custom tooltip with inline fill color, dynamic subtitle
...
- Replace ChartTooltipContent with custom tooltip that reads fill
directly from payload — guaranteed to show the slice color
- Subtitle adapts: shows 'current and previous period' only when
previous period data exists, otherwise 'rage vs dead breakdown'
- Filter out zero-count slices from chart data
2026-03-12 18:29:43 +01:00
Usman Baig
3bf832af92
style: use transparent orange tones for frustration pie chart
...
Rage clicks: warm orange at 70% opacity
Dead clicks: darker amber at 70% opacity
Previous period: same hues at 35% opacity
2026-03-12 18:27:57 +01:00
Usman Baig
5050422a60
refactor: match frustration tables to dashboard pattern
...
- Remove column headers for cleaner look
- Show secondary info (avg, sessions, last seen) on hover
- Add orange percentage badge that slides in on hover
- Add empty row padding for consistent card height
2026-03-12 18:27:20 +01:00
Usman Baig
13f6f53868
fix: tooltip indicator dot not showing slice color
...
bg-[--color-bg] doesn't resolve in Tailwind v4 — needs var() wrapper.
Changed to bg-[var(--color-bg)] and border-[var(--color-border)].
2026-03-12 18:25:15 +01:00