Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
620 commits
Select commit Hold shift + click to select a range
6b18213
Start passing official installs that are using legacy .compat script …
apata Oct 16, 2025
5976a6a
Sampling Cache: ensure consolidated values are reported; cache all si…
aerosol Oct 20, 2025
3d1f1ec
Ensure `conn` from `Plug.Conn.read_body` is always passed down the pi…
zoldar Oct 20, 2025
80244e5
Avoid crashing telemetry handler for persistor on recv Finch errors (…
zoldar Oct 20, 2025
559c07d
Use embed-friendly secure headers for HelpScout integration endpoints…
zoldar Oct 21, 2025
f01ce1b
Script v2: Identify detection attempt (#5818)
apata Oct 22, 2025
bce0890
Integrate consolidated view UI (#5798)
aerosol Oct 22, 2025
d1c5f19
Explicitly enable Nagle's algorithm for persistor HTTP client (#5820)
zoldar Oct 23, 2025
0abad8b
Add metric for decode duration in remote persistor client (#5821)
zoldar Oct 23, 2025
9e3102d
Add controller-level tests for timezone handling in Query (#5809)
ukutaht Oct 23, 2025
49317f5
Stop docs info icon hovering over account menu (#5823)
apata Oct 24, 2025
51b56f4
Fix 2FA disable dialog (#5827)
apata Oct 24, 2025
f3ccfde
Adjust persistor metrics buckets and remove decode measurement (#5831)
zoldar Oct 27, 2025
ad2c8e8
Verification Fixes (#5822)
RobertJoonas Oct 27, 2025
a83b4f3
Clean up legacy verification code and script v2 flag (#5824)
RobertJoonas Oct 27, 2025
7540511
Clean up detection sentry events + tests (#5833)
RobertJoonas Oct 27, 2025
0e0415f
Broadcast tracker script config updates (#5806)
apata Oct 27, 2025
ce02ab0
Crop big consolidated views (#5835)
aerosol Oct 27, 2025
7de63a0
Set Consolidated View's timezone to what majority of sites has (#5834)
aerosol Oct 27, 2025
fc34357
CRM: 24h charts + minor extensions (#5832)
aerosol Oct 27, 2025
46f05d8
Verification / Detection follow-ups (#5836)
RobertJoonas Oct 27, 2025
91363a2
Improve dark mode (#5819)
sanne-san Oct 28, 2025
2a6720c
Update deps (#5837)
apata Oct 28, 2025
1eda271
Bump actions/upload-artifact from 4 to 5 (#5830)
dependabot[bot] Oct 28, 2025
5754f2b
Bump actions/download-artifact from 5 to 6 (#5829)
dependabot[bot] Oct 28, 2025
90404c4
Fix dark mode improvements oversights (#5839)
sanne-san Oct 28, 2025
2a5850a
Bump actions/setup-node from 5 to 6 (#5813)
dependabot[bot] Oct 28, 2025
89c8cb3
Make graphs dependant on centrally determined theme (#5840)
apata Oct 28, 2025
59839d2
Declare favicon external resource properly (#5841)
apata Oct 28, 2025
638a59b
Add border to tab component (#5848)
sanne-san Oct 29, 2025
ce424bf
Update site switcher UI to accommodate for consolidated view (#5838)
sanne-san Oct 29, 2025
d1b6817
Change domain flow improvements (#5850)
RobertJoonas Oct 30, 2025
546f0c3
Update the onboarding email copy (#5789)
metmarkosaric Oct 30, 2025
c9cbea7
Add JSDoc types (#5842)
apata Oct 31, 2025
2ad3c18
Released tracker script version 0.4.4
apata Oct 31, 2025
0405055
Improve HelpScout integration layout (#5853)
zoldar Oct 31, 2025
a204c89
Stop trying to compile detector and verifier on CE (#5857)
apata Nov 3, 2025
457c483
Omit Subscription and Invoices menu on CE (#5856)
apata Nov 3, 2025
51ce8a4
Fix migration for CE 3.0.1 to current (#5844)
apata Nov 3, 2025
64aa243
Update CE-facing changelog about script v2 related changes (#5845)
apata Nov 3, 2025
d7c641e
Move shared link form to modal (#5849)
sanne-san Nov 3, 2025
a44ce24
Fix tracker script config backfill (#5860)
apata Nov 3, 2025
7de8526
Fix regression in shared link settings form (#5862)
sanne-san Nov 3, 2025
d0ba8f7
Consolidated view settings (#5795)
RobertJoonas Nov 4, 2025
592dc8e
Add migration adding `teams.policy` to CE (#5868)
zoldar Nov 4, 2025
a07aaa6
Add ability to enforce 2FA for all members of the team (#5855)
zoldar Nov 4, 2025
16cbc07
Use Prima for invitation modal (#5843)
ukutaht Nov 4, 2025
040fb34
Update bamboo, bamboo_mua & co (#5871)
apata Nov 5, 2025
2ca24e7
Make sure imported data switch appears on Safari (#5872)
apata Nov 5, 2025
af7dd46
Fix shared link hostname (#5870)
apata Nov 5, 2025
1a5eba8
Reduce noise in 2FA enforce notifications and update docs link (#5869)
zoldar Nov 5, 2025
839aebd
Update README.md (#5873)
metmarkosaric Nov 5, 2025
49c9cab
Minor crm fixes (#5863)
aerosol Nov 5, 2025
62e9ec5
Add `recovery_id` column to `sessions_v2` and `events_v2` (#5875)
zoldar Nov 7, 2025
0274f25
Limit consolidated site access to specific site routes (#5867)
RobertJoonas Nov 10, 2025
f24aa4f
Consolidated view email reports (#5876)
RobertJoonas Nov 11, 2025
b0e8c8b
Migration: team membership user preferences table (#5881)
aerosol Nov 12, 2025
dfbf0a9
remove external page links from consolidated views (#5880)
RobertJoonas Nov 12, 2025
08c7d2e
Consolidated View life cycle + billing integration (#5866)
aerosol Nov 12, 2025
b624f39
Release 3.1.0 (#5883)
apata Nov 13, 2025
024e6bb
Prevent email reports when consolidated view ineligible (#5882)
RobertJoonas Nov 13, 2025
35f1cea
Migration: add consolidated views feature to enterprise plans (#5878)
aerosol Nov 17, 2025
a2ba125
Show revenue data in all breakdowns (#5767)
zoldar Nov 18, 2025
dec382c
Make various UI improvements (#5890)
sanne-san Nov 18, 2025
1df08a2
Change header dropdown copy to sentence case (#5887)
sanne-san Nov 18, 2025
a29f0a3
Fix login link being invisible on hover in dark mode (#5898)
sanne-san Nov 20, 2025
a9050ab
Add hover state for location bars (#5896)
sanne-san Nov 20, 2025
25d4015
Fix Safari bug where `+ Add another step` button wasn't hidden proper…
sanne-san Nov 20, 2025
b8d64e2
Updated empty states across settings (#5874)
sanne-san Nov 24, 2025
6d5951f
Consolidated Views: flip CTA flow, ask to upgrade first (#5905)
aerosol Nov 24, 2025
7a11f5e
Refactor building the Query struct (#5893)
RobertJoonas Nov 24, 2025
26e5c41
CRM: enable team search by identifier via `team:{UUID}` (#5904)
aerosol Nov 24, 2025
f2bc96d
Consolidated view CTA variant for insufficient custom plans (#5907)
aerosol Nov 24, 2025
2c00acc
Update goal settings design (#5886)
sanne-san Nov 24, 2025
5fe2be8
Remove :consolidated_view feature flag (#5908)
aerosol Nov 24, 2025
0eea55d
Slurp common test modules into exunit templates (#5909)
aerosol Nov 24, 2025
8082b69
Remove background color from demo CTA (#5911)
sanne-san Nov 26, 2025
111a8b9
Enforce max limit for goals per site (#5917)
aerosol Nov 27, 2025
3c9ba41
Use prima modal in ip_rules settings (#5910)
ukutaht Nov 27, 2025
8a7d681
CRM: allow searching sites by `domain_changed_from` (#5918)
aerosol Dec 1, 2025
b64a235
Platform upgrade: elixir 1.19.4 and otp 27.3.4.6 (#5920)
aerosol Dec 1, 2025
5b69061
Consolidated views <> revenue goals: add comment + fix typespec (#5921)
RobertJoonas Dec 1, 2025
b1f21a2
Upgrade dependencies (#5922)
aerosol Dec 2, 2025
85d9e59
Bump actions/checkout from 5 to 6 (#5903)
dependabot[bot] Dec 2, 2025
fa09b73
Fix postgrex disconnection during async tests (#5926)
aerosol Dec 2, 2025
98632ae
Don't multiply average revenue metric by sampling rate in the query (…
zoldar Dec 3, 2025
12d818a
Refactoring preparation for DashboardQueryParser (#5929)
RobertJoonas Dec 3, 2025
98e0f72
Bring autoconfigure notification a step forwards in custom events cre…
sanne-san Dec 3, 2025
1ff2b52
Add :segment_id field to shared_links schema (#5924)
apata Dec 4, 2025
007155b
Validate password cookie for password-protected shared links on inter…
apata Dec 8, 2025
16f1eb3
Add necessary scaffolding for enabling LV on dashboard (#5930)
zoldar Dec 8, 2025
d9456d7
Give voice to humans against robotic oppression (#5934)
aerosol Dec 8, 2025
d6673fb
DashboardQueryParser & DashboardQuerySerializer (#5938)
RobertJoonas Dec 9, 2025
c4ea07d
Fix /change-domain page permissions (#5939)
apata Dec 10, 2025
ee906f4
Improvements to LV dashboard scaffolding (#5937)
zoldar Dec 10, 2025
e4bc6b8
Temporary: make room for pre/post migration constraint names (#5942)
aerosol Dec 11, 2025
b299aa3
Migration: goal custom props + revamped unique constraints (#5940)
aerosol Dec 11, 2025
b6b9c2c
Goals with custom props (Stats API queries, funnels) (#5936)
aerosol Dec 11, 2025
45116bd
Revert "Goals with custom props (Stats API queries, funnels) (#5936)"…
aerosol Dec 11, 2025
e4b282a
Fix broken v1 filters redirect (#5941)
apata Dec 11, 2025
40f0d4b
Migration: make `goals.custom_props` non-null (#5945)
aerosol Dec 11, 2025
c78ddf6
Update migration that failed to run (#5946)
aerosol Dec 11, 2025
3838119
Reapply+bugfix: goals with custom props (#5936) (#5944)
aerosol Dec 11, 2025
f07dc8d
Display segment filters to anyone that can see the dashboard being fi…
apata Dec 15, 2025
aed90f7
Make CI vigilant about uncaptured logs during test runs (#5676)
aerosol Dec 15, 2025
810b956
Bump tj-actions/changed-files from 47.0.0 to 47.0.1 (#5950)
dependabot[bot] Dec 16, 2025
6446e15
Bump actions/upload-artifact from 5 to 6 (#5948)
dependabot[bot] Dec 16, 2025
dfeda94
Add report percentages to dashboard and details view (#5923)
sanne-san Dec 16, 2025
9978f9b
Bump actions/download-artifact from 6 to 7 (#5951)
dependabot[bot] Dec 16, 2025
69d8d22
Bump actions/cache from 4 to 5 (#5949)
dependabot[bot] Dec 16, 2025
9aa6a8a
Add comparisons to DashboardQueryParser (#5955)
RobertJoonas Dec 17, 2025
99fd335
Expose goals w/ custom props through Sites/Plugins API (#5952)
aerosol Dec 18, 2025
10b1169
Fix visitors being invisible in OR report on mobile (#5961)
sanne-san Dec 18, 2025
121ef8d
Fix CE tracker script cache issue (#5956)
apata Dec 18, 2025
127b50c
Fix SamplingCache read concurrency (#5959)
apata Dec 18, 2025
0b5596e
Adjust percentage hover effect to only show when hovering rows (#5965)
sanne-san Dec 18, 2025
f7027b5
Fix filter modal overflow bug (#5966)
sanne-san Dec 19, 2025
6d72c18
Prevent Salts server from dirty postgres disconnects during tests (#5…
aerosol Dec 22, 2025
981dc85
DashboardQueryParser: Labels and segments (#5964)
RobertJoonas Dec 22, 2025
9648296
Remove internal query api schema (#5969)
RobertJoonas Dec 22, 2025
f2766e0
Allow creating and editing limited views (#5925)
apata Dec 23, 2025
b735382
QueryBuilder follow-up (#5971)
RobertJoonas Dec 23, 2025
4d5372b
adding scheduled exports to the enterprise feature list (#5963)
metmarkosaric Dec 23, 2025
c11d47a
Introduce LV version of pages breakdown (#5953)
zoldar Dec 23, 2025
6007859
Fix up flaky tests (#5970)
aerosol Jan 3, 2026
bf1971e
Live.Dashboard.Pages continued (#5975)
RobertJoonas Jan 5, 2026
708c89d
Improve reports layout (#5962)
sanne-san Jan 5, 2026
b1523d3
Migration: include custom props in pageview goal unique index (#5978)
aerosol Jan 5, 2026
6fef0ad
Update PostgreSQL image version to 18 for non CE (#5958)
cnkk Jan 5, 2026
6dfcfbc
Make minor improvements to the dashboard (#5979)
sanne-san Jan 5, 2026
beac14c
Fix tooltips in modals showing behind the modal (#5981)
sanne-san Jan 5, 2026
b551997
run tests only for postgres:18 (#5982)
cnkk Jan 5, 2026
a0bd5f8
Fix comparison line color in dark mode (#5984)
sanne-san Jan 6, 2026
0d3ba51
Fix special reports (#5985)
apata Jan 7, 2026
97665e5
Fix search input placeholder regression (#5988)
sanne-san Jan 7, 2026
8795a3e
Center the dashboard map in the container (#5987)
sanne-san Jan 7, 2026
997546f
Another iteration of Dashboard.Live.Pages (#5986)
RobertJoonas Jan 7, 2026
f2ac57d
Stop queries for cancelled HTTP requests (#5998)
apata Jan 12, 2026
8d57489
Add team ID to debug metadata (#5990)
apata Jan 12, 2026
f1b4391
Use `assign` instead of `assign_async` for pages breakdown query resu…
zoldar Jan 12, 2026
1260d17
Increase tab and details button hit area (#5992)
sanne-san Jan 13, 2026
36d3a65
Revert aed90f7ffc (#6008)
aerosol Jan 19, 2026
31f8c71
OpenTelemetry improvements (#6007)
cnkk Jan 19, 2026
28c4a49
Update changelog for 3.2.0 (#6005)
apata Jan 20, 2026
400bdec
Enforce stats requests limit by team (#6010)
apata Jan 21, 2026
ffccd7b
Don't crash when a super-admin is trying to render feature gate (#6016)
aerosol Jan 22, 2026
446c48a
Add burst rate limit (#6013)
apata Jan 23, 2026
2175b32
Bump `ch` to 0.7.1 (via bumping `ecto_ch`) for improved DB disconnect…
zoldar Jan 26, 2026
59e3cab
Limit ClickhouseRepo queries max_execution_time (#6018)
apata Jan 26, 2026
b257898
Allow "Unknown" (ZZ) on country code block shield (#6021)
aerosol Jan 26, 2026
0e7f366
Upgrade clickhouse server (#5947)
cnkk Jan 26, 2026
ebb0b05
Otel improvements (#6014)
cnkk Jan 26, 2026
c6757c1
Update OpenTelemetry dependencies for improved tracing support (LiveV…
cnkk Jan 27, 2026
8e38acb
Ensure stable sort in flaky tests (#6031)
apata Jan 28, 2026
ac69e7e
Update deps in assets (#6025)
apata Jan 28, 2026
66a2a3e
Cleanup liveview dashboard code (#6027)
RobertJoonas Jan 28, 2026
c323a1c
refactor feature availability check (#6034)
cnkk Jan 29, 2026
697dc9a
Fix feature that allows marking events as non-interactive (#6001)
apata Jan 30, 2026
0e1fcb1
Fix permissions for guests (#5957)
ukutaht Jan 30, 2026
3355b5f
Goals with custom props (settings+filtering UI integration) (#5977)
aerosol Feb 2, 2026
03fa177
Fix map on Chrome (#6037)
apata Feb 3, 2026
a92833f
Filter out driver disconnect error messages (#6047)
zoldar Feb 3, 2026
e303a90
Fix dev postgres (#6048)
aerosol Feb 4, 2026
d618ca3
Bump fjogeleit/http-request-action from 1 to 2 (#6044)
dependabot[bot] Feb 4, 2026
533649c
Handle case of empty metrics (#6050)
zoldar Feb 5, 2026
2a9e0a3
Fix mixed goals conversions crash (#6049)
aerosol Feb 5, 2026
c292057
Implement basics for E2E tests driven by playwright (#6038)
zoldar Feb 5, 2026
7fb6993
Local dev: make Postgres visible through ClickHouse (#6052)
aerosol Feb 9, 2026
a740b7e
Add usage progress bar for plan limits (#6058)
sanne-san Feb 10, 2026
26df522
Setup state directly from playwright in E2E tests (#6054)
zoldar Feb 11, 2026
eedb339
Add `conversation_id` column and make `customer_id` nullable in mappi…
zoldar Feb 11, 2026
db83948
Avoid applying customer mapping to HelpScout conversations when in ex…
zoldar Feb 11, 2026
176234f
Add 24h time range to dashboard and Stats API v2 (#6062)
aerosol Feb 11, 2026
052c6bb
Bump ecto_ch (#6064)
aerosol Feb 11, 2026
c7eaba1
A major renaming: DashboardQuery -> DashboardState (#6059)
RobertJoonas Feb 12, 2026
d4f6ee4
Adding a note to contact the person who sent the invite in case of an…
metmarkosaric Feb 12, 2026
95cf978
Add trace propagation to persistor events (#6066)
cnkk Feb 13, 2026
3119839
Add usage notifications for billing limits (#6056)
sanne-san Feb 16, 2026
a67aee7
Add centralized Icons component with custom SVG icons (#6074)
sanne-san Feb 17, 2026
46752f1
Use xargs to trim first_line/co_authors (#6078)
aerosol Feb 17, 2026
33b6bd0
Refactor commit message extraction (#6079)
cnkk Feb 17, 2026
d56f067
Include time on page and bounce rate in top stats with page filter an…
RobertJoonas Feb 18, 2026
15af9f6
Update seeds (#6081)
aerosol Feb 19, 2026
0036aa1
Removing a typo (#6084)
metmarkosaric Feb 19, 2026
689f195
Don't display Funnels tab on consolidated view dashboard (#6082)
aerosol Feb 19, 2026
93ce68c
Improve subscription settings layout (#6076)
sanne-san Feb 19, 2026
2e98bd5
Wire up progress bars for pageview and plan limits (#6085)
sanne-san Feb 19, 2026
c0a0ba7
Fix singular views per visit (#6088)
ukutaht Feb 19, 2026
3c30376
Remove email truncation from activate screen (#6087)
ukutaht Feb 20, 2026
b1e0cdb
Load site sparklines in parallel (#6075)
aerosol Feb 23, 2026
b48bb69
Fix several flaky LV tests logging connection errors (#6091)
aerosol Feb 23, 2026
7eb7d9a
Move invoices into subscription settings (#6092)
sanne-san Feb 23, 2026
e865499
Wire up usage notifications (#6093)
sanne-san Feb 25, 2026
5a83987
Move invitations away from site cards (#6053)
aerosol Feb 25, 2026
47f331d
Redirect `/billing/invoices` to subscription settings (#6095)
sanne-san Feb 25, 2026
37a75f4
Tolerate users trying to add domain they already own (#6096)
aerosol Feb 25, 2026
9eb884e
Add per-site pageview breakdown to pageview usage section (#6097)
sanne-san Feb 26, 2026
40c1f86
Autofocus filter bars and don't insert "/" when activated via keyboar…
aerosol Feb 26, 2026
fbe2df0
Remove unnecessary ok_to_display? check from consolidated view templa…
ukutaht Feb 26, 2026
4cc4fb2
Prima dropdown sites page (#6063)
ukutaht Feb 26, 2026
60adbe6
Fix funnel tooltip not showing on hover (#6104)
sanne-san Feb 26, 2026
f27a2cd
Fixes https://github.com/open-telemetry/opentelemetry-erlang-contrib/…
cnkk Feb 26, 2026
8954871
[dev] Add debug annotations to liveview and ecto (#6102)
ukutaht Feb 26, 2026
1ceebd2
Remove autofocus from filter bars (#6107)
aerosol Feb 27, 2026
8e546b8
Move Top Stats to new internal stats endpoint (#6035)
RobertJoonas Mar 3, 2026
898439b
hotfix (#6122)
RobertJoonas Mar 3, 2026
0442403
Visually improve funnel tooltip (#6120)
sanne-san Mar 3, 2026
5a26631
Add dashboard links to monthly pageview usage breakdown (#6117)
sanne-san Mar 4, 2026
f72b151
Reduce imported opts queries (#6106)
ukutaht Mar 4, 2026
75ec6e2
Refactor remaining Floki usage to LazyHTML (#6125)
ukutaht Mar 4, 2026
b75d678
24h sort by traffic in CRM (#6124)
aerosol Mar 5, 2026
114c8d9
Rebuild sparklines on page load (#6129)
aerosol Mar 5, 2026
4bb13bf
Allow deep linking to password protected shared links (#5954)
apata Mar 5, 2026
d88b5a1
CRM: fix preserving index on pagination (#6130)
aerosol Mar 5, 2026
710381e
Make `Sites.list_guests_query` ordering deterministic to avoid flaky …
zoldar Mar 5, 2026
42071aa
Extend E2E dashboard tests (#6077)
zoldar Mar 9, 2026
965986c
Skip meta.key/meta.value reads when no goal has custom props (#6144)
ukutaht Mar 10, 2026
edae717
Optimize name filter (#6145)
ukutaht Mar 10, 2026
58c737e
Enable optimization for dashboard queries as well (#6149)
ukutaht Mar 10, 2026
1ed9a89
Remove unused CSS in app.css (#6150)
sanne-san Mar 10, 2026
4c8446b
feat: enable conversion optimization for all sites, remove feature fl…
ukutaht Mar 10, 2026
bf477e5
Improve monthly usage breakdown component (#6134)
sanne-san Mar 10, 2026
6950812
Cache visitor graph results locally (#6119)
apata Mar 11, 2026
a9ddbd3
Migration: store site index sorting preference per user (#6148)
aerosol Mar 11, 2026
011e687
Enable WHERE name optimization for all queries, remove feature flag (…
ukutaht Mar 11, 2026
567aeb3
Use WHERE name filter in more places (#6157)
ukutaht Mar 12, 2026
c67c316
Fix limited view issue (#6161)
apata Mar 16, 2026
dbd4131
Silently ignore missing goals (#6162)
apata Mar 16, 2026
cf2d252
Changing the note on top of a new dashboard (#6147)
metmarkosaric Mar 16, 2026
0121fc9
Update csv_import.ex (#6160)
metmarkosaric Mar 16, 2026
85a61ef
Bugfix: Enter on team creation form should submit, not crash (#6153)
aerosol Mar 16, 2026
4858209
Fix regression: Drop revenue metrics when not allowed on the dashboar…
RobertJoonas Mar 17, 2026
4ef4bc6
Migration extracted form #6143 (#6166)
aerosol Mar 17, 2026
b498aeb
Remove app.html layout from error templates (#6165)
ukutaht Mar 17, 2026
d34b683
Use Sites.Index on /sites (#6143)
aerosol Mar 17, 2026
5d857fa
Main graph fixes (#6169)
RobertJoonas Mar 17, 2026
22a1fee
Bring back trigger showing first dashboard launch banner (#6168)
zoldar Mar 18, 2026
85b39ee
Changes to the trial emails (#6108)
metmarkosaric Mar 18, 2026
5d93835
Api v2 improvements (#6164)
RobertJoonas Mar 18, 2026
842c40a
Fix off-by-one error in date calculation for grace period notice (#6175)
ukutaht Mar 18, 2026
592d2b2
Move subscription settings page content into a LiveView (#6170)
sanne-san Mar 19, 2026
779f286
Allow underscores in site domain names (#6182)
zoldar Mar 23, 2026
bd37150
Fix flaky test (#6183)
aerosol Mar 23, 2026
40c4fd2
At least this is hand crafted apology, not some AI slop (#6185)
aerosol Mar 23, 2026
fe736a3
Update ua_inspector (#6177)
cnkk Mar 23, 2026
7cb4f44
Escape goal name in the funnel tooltip to prevent XSS (#6181)
cnkk Mar 23, 2026
fca00f9
pin github actions versions by commit hash (#6186)
cnkk Mar 23, 2026
dc51b4c
Export BEAM processes to OTLP metrics endpoint (#6188)
cnkk Mar 24, 2026
5be98b7
Merge remote-tracking branch 'upstream/master' into sync-upstream
JacobCoffee Mar 24, 2026
ec3f81d
Merge branch 'v3.0.1-psf' into sync-upstream
JacobCoffee Mar 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 6 additions & 0 deletions .credo.exs
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,11 @@
{Credo.Check.Refactor.Apply, []},
{Credo.Check.Refactor.CondStatements, []},
{Credo.Check.Refactor.CyclomaticComplexity, false},
{Credo.Check.Refactor.FilterCount, []},
{Credo.Check.Refactor.FilterFilter, []},
{Credo.Check.Refactor.MatchInCondition, []},
{Credo.Check.Refactor.RedundantWithClauseResult, []},
{Credo.Check.Refactor.RejectReject, []},
{Credo.Check.Refactor.FunctionArity, []},
{Credo.Check.Refactor.LongQuoteBlocks, []},
{Credo.Check.Refactor.MatchInCondition, []},
Expand All @@ -133,6 +138,7 @@
#
## Warnings
#
{Credo.Check.Warning.Dbg, []},
{Credo.Check.Warning.ApplicationConfigInModuleAttribute, []},
{Credo.Check.Warning.BoolOperationOnSameValues, []},
{Credo.Check.Warning.ExpensiveEmptyEnumCheck, []},
Expand Down
1 change: 1 addition & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ npm-debug.log

# Auto-generated tracker files
/priv/tracker/js/*.js
/priv/tracker/installation_support/

# Dializer
/priv/plts/*.plt
Expand Down
2 changes: 1 addition & 1 deletion .formatter.exs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
plugins: [Phoenix.LiveView.HTMLFormatter],
import_deps: [:ecto, :ecto_sql, :phoenix],
import_deps: [:ecto, :ecto_sql, :phoenix, :polymorphic_embed],
subdirectories: ["priv/*/migrations"],
inputs: [
"*.{heex,ex,exs}",
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/all-checks-pass.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,6 @@ jobs:
checks: read
steps:
- name: GitHub Checks
uses: poseidon/wait-for-status-checks@v0.6.0
uses: poseidon/wait-for-status-checks@899c768d191b56eef585c18f8558da19e1f3e707 # v0.6.0
with:
token: ${{ secrets.GITHUB_TOKEN }}
token: ${{ secrets.GITHUB_TOKEN }}
30 changes: 23 additions & 7 deletions .github/workflows/build-private-images-ghcr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
steps:
- name: Docker meta
id: meta
uses: docker/metadata-action@v5.0.0
uses: docker/metadata-action@96383f45573cb7f253c731d3b3ab81c87ef81934 # v5.0.0
env:
DOCKER_METADATA_PR_HEAD_SHA: true
with:
Expand All @@ -35,18 +35,18 @@ jobs:
type=sha

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3.12.0

- name: Login to GitHub Container Registry
uses: docker/login-action@v3
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3.7.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build and push
id: docker_build
uses: docker/build-push-action@v6
uses: docker/build-push-action@10e90e3645eae34f1e60eeb005ba3a3d33f178e8 # v6.19.2
with:
push: true
tags: ${{ steps.meta.outputs.tags }}
Expand All @@ -62,22 +62,38 @@ jobs:

- name: Notify team on failure
if: ${{ failure() && github.ref == 'refs/heads/master' }}
uses: fjogeleit/http-request-action@v1
uses: fjogeleit/http-request-action@551353b829c3646756b2ec2b3694f819d7957495 # v2.0.0
with:
url: ${{ secrets.BUILD_NOTIFICATION_URL }}
method: 'POST'
customHeaders: '{"Content-Type": "application/json"}'
data: '{"content": "<a href=\"https://github.com/plausible/analytics/actions/workflows/build-private-images.yml\">Build failed</a>"}'

- name: Get first line and Co-Authored-By lines of the commit message
if: ${{ success() && github.ref == 'refs/heads/master' }}
id: commitmsg
env:
COMMIT_MSG: ${{ github.event.head_commit.message }}
run: |
first_line=$(printf '%s\n' "$COMMIT_MSG" | head -n1 | xargs)
co_authors=$(printf '%s\n' "$COMMIT_MSG" | grep -h 'Co-authored-by:' | sort -u | cut -d: -f2- | paste -sd, - | xargs)
{
echo "first_line=$first_line"
echo "co_authors=$co_authors"
} >> $GITHUB_OUTPUT

- name: Notify team on success
if: ${{ success() && github.ref == 'refs/heads/master' }}
uses: fjogeleit/http-request-action@v1
uses: fjogeleit/http-request-action@551353b829c3646756b2ec2b3694f819d7957495 # v2.0.0
with:
url: ${{ secrets.BUILD_NOTIFICATION_URL }}
method: 'POST'
customHeaders: '{"Content-Type": "application/json"}'
escapeData: 'true'
data: '{"content": "<h1>🚀 New changes are about to be deployed to production!</h1><br/><h3>👷 Author: ${{ github.actor }}</h3><br/><p>📝 Commit message: ${{ github.event.head_commit.message }}</p><br/>"}'
data: |
{
"content": "<h1>🚀 Deploying ${{ steps.commitmsg.outputs.first_line }}</h1><p>Author(s): ${{ github.event.head_commit.author.name }}<br/>${{ steps.commitmsg.outputs.co_authors}}</p><p>Commit: <a href=\"${{ github.event.head_commit.url }}\">${{ github.sha }}</a></p>"
}

- name: Set Honeycomb marker on success
if: ${{ success() && github.ref == 'refs/heads/master' }}
Expand Down
20 changes: 10 additions & 10 deletions .github/workflows/build-public-images-ghcr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,23 +32,23 @@ jobs:

- name: Docker meta
id: meta
uses: docker/metadata-action@v5
uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5.10.0
with:
images: ${{ env.GHCR_REPO }}

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3.12.0

- name: Login to GitHub Container Registry
uses: docker/login-action@v3
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3.7.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build
id: docker_build
uses: docker/build-push-action@v6
uses: docker/build-push-action@10e90e3645eae34f1e60eeb005ba3a3d33f178e8 # v6.19.2
with:
labels: ${{ steps.meta.outputs.labels }}
outputs: type=image,name=${{ env.GHCR_REPO }},push-by-digest=true,name-canonical=true,push=true
Expand All @@ -68,7 +68,7 @@ jobs:
touch "${{ runner.temp }}/digests/${digest#sha256:}"

- name: Upload digest
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
with:
name: digests-${{ env.PLATFORM_PAIR }}
path: ${{ runner.temp }}/digests/*
Expand All @@ -77,7 +77,7 @@ jobs:

- name: Notify team on failure
if: ${{ failure() }}
uses: fjogeleit/http-request-action@v1
uses: fjogeleit/http-request-action@551353b829c3646756b2ec2b3694f819d7957495 # v2.0.0
with:
url: ${{ secrets.BUILD_NOTIFICATION_URL }}
method: "POST"
Expand All @@ -91,21 +91,21 @@ jobs:

steps:
- name: Download digests
uses: actions/download-artifact@v4
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
with:
path: ${{ runner.temp }}/digests
pattern: digests-*
merge-multiple: true

- uses: docker/login-action@v3
- uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3.7.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- uses: docker/setup-buildx-action@v3
- uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3.12.0

- uses: docker/metadata-action@v5
- uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5.10.0
id: meta
with:
images: ${{ env.GHCR_REPO }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/codespell.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ jobs:
codespell:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: codespell-project/actions-codespell@v2
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: codespell-project/actions-codespell@406322ec52dd7b488e48c1c4b82e2a8b3a1bf630 # v2.1
with:
check_filenames: true
ignore_words_file: .codespellignore
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/comment-preview-url.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Comment with preview URL
uses: thollander/actions-comment-pull-request@v3.0.1
uses: thollander/actions-comment-pull-request@24bffb9b452ba05a4f3f77933840a6a841d1b32b # v3.0.1
with:
message: |
<div align="center">
Expand Down
Loading
Loading