aecsocket
306eee3a21
Fix changing Delphi report issue detail verdict if already exists ( #5172 )
...
* Fix changing Delphi report issue detail verdict if already exists
* cargo sqlx prepare
2026-01-21 16:12:21 +00:00
Zefir
08fcc61d35
Make Maven file resolution case-insensitive ( #4917 )
...
* Make Maven file resolution case-insensitive
* fix string reference
* fixed formatting
---------
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com >
Co-authored-by: aecsocket <aecsocket@tutanota.com >
2026-01-21 01:15:33 +00:00
François-Xavier Talbot
a9641dadff
Meilisearch task management, improved task o11y, timeout & batch size adjustments ( #5158 )
...
* Better observability
* Search management routes
* Probably fluke
* Use utoipa routes
* Update apps/labrinth/src/routes/internal/search.rs
Co-authored-by: aecsocket <aecsocket@tutanota.com >
Signed-off-by: François-Xavier Talbot <108630700+fetchfern@users.noreply.github.com >
* Update apps/labrinth/src/search/indexing/mod.rs
Co-authored-by: aecsocket <aecsocket@tutanota.com >
Signed-off-by: François-Xavier Talbot <108630700+fetchfern@users.noreply.github.com >
* Update apps/labrinth/src/routes/internal/search.rs
Co-authored-by: aecsocket <aecsocket@tutanota.com >
Signed-off-by: François-Xavier Talbot <108630700+fetchfern@users.noreply.github.com >
* Fix
---------
Signed-off-by: François-Xavier Talbot <108630700+fetchfern@users.noreply.github.com >
Co-authored-by: aecsocket <aecsocket@tutanota.com >
2026-01-20 19:06:37 +00:00
aecsocket
c94dde9b47
Fix updating mod version if file hash is the same ( #5138 )
...
* Start fixing infinite update glitch
* adjust app cache logic
* more cache logic
* cleanup
* add v2 redirect
* add v2 version file route to config
2026-01-19 21:40:44 +00:00
aecsocket
c37bf75853
Implement replied/unreplied filter for tech review ( #5006 )
...
* Implement replied/unreplied filter for tech review
* project status filter
* wip: issue type filter
* correct filter field
* wip: break up tech review query
* Improve tech review query
* Get tech review working more properly
* Add get single project reports endpoint
2026-01-15 11:54:20 +00:00
François-Xavier Talbot
3ffa78aa07
Allow many Meilisearch write addrs ( #5102 )
...
* Write to many Meilisearch write addrs
* Keep client results ordered
* Attach Read Meilisearch client to actix data
* Load balanced meilisearch Compose profile
* Nginx config (round_robin)
* Fix nginx
* Meilisearch + nginx in same net
* Fix env vars example
* Fix env example again
* Fix env again
* Use try_collect with FuturesOrdered
* maybe fix remove_documents
* Clippy
2026-01-15 01:38:09 +01:00
aecsocket
f85a2d3ec1
Make changelog in version response optional ( #5115 )
...
* Make changelog on version routes optional
* fix clippy
* fix ci
2026-01-14 10:55:20 +00:00
aecsocket
d055dc68dc
Payout flows in backend - fix Tremendous forex cards ( #5001 )
...
* wip: payouts flow api
* working
* Finish up flow migration
* vibe-coded frontend changes
* fix typos and vue
* fix: types
---------
Co-authored-by: Calum H. (IMB11) <contact@cal.engineer >
2026-01-14 10:53:35 +00:00
Calum H.
b46f6d0141
feat: moderation locking ( #5070 )
...
* feat: base locking impl
* feat: lock logic in place in rev endpoint + fetch rev
* feat: frontend impl and finalize
* feat: auto skip if using the moderation queue page
* fix: qa issues
* fix: async state + locking fix
* fix: lint
* fix: fmt
* fix: qa issue
* fix: qa + redirect bug
* fix: lint
* feat: delete all locks endpoint for admins
* fix: dedupe
* fix: fmt
* fix: project redirect move to middleware
* fix: lint
2026-01-12 17:08:30 +00:00
François-Xavier Talbot
3bf5a6ebec
Allow projects in tech review to still show up in moderation queue ( #5068 )
...
* Don't prevent projects from appearing in moderation queue if there are pending delphi reports
* Update query cache
2026-01-08 20:47:32 +01:00
aecsocket
ad3edf541b
Replace MaxMind with CloudFlare headers ( #4934 )
...
* Replace MaxMind with CloudFlare headers
* Remove MaxMind env vars
* Fix test harness
2025-12-30 16:49:49 +00:00
François-Xavier Talbot
9924faab84
Fix tech rev rejection query ( #4963 )
2025-12-29 21:06:47 +00:00
aecsocket
cace1a54cd
Fix tech review query routes ( #4946 )
2025-12-21 09:23:21 +00:00
aecsocket
39f2b0ecb6
Technical review queue ( #4775 )
...
* chore: fix typo in status message
* feat(labrinth): overhaul malware scanner report storage and routes
* chore: address some review comments
* feat: add Delphi to Docker Compose `with-delphi` profile
* chore: fix unused import Clippy lint
* feat(labrinth/delphi): use PAT token authorization with project read scopes
* chore: expose file IDs in version queries
* fix: accept null decompiled source payloads from Delphi
* tweak(labrinth): expose base62 file IDs more consistently for Delphi
* feat(labrinth/delphi): support new Delphi report severity field
* chore(labrinth): run `cargo sqlx prepare` to fix Docker build errors
* tweak: add route for fetching Delphi issue type schema, abstract Labrinth away from issue types
* chore: run `cargo sqlx prepare`
* chore: fix typo on frontend generated state file message
* feat: update to use new Delphi issue schema
* wip: tech review endpoints
* wip: add ToSchema for dependent types
* wip: report issues return
* wip
* wip: returning more data
* wip
* Fix up db query
* Delphi configuration to talk to Labrinth
* Get Delphi working with Labrinth
* Add Delphi dummy fixture
* Better Delphi logging
* Improve utoipa for tech review routes
* Add more sorting options for tech review queue
* Oops join
* New routes for fetching issues and reports
* Fix which kind of ID is returned in tech review endpoints
* Deduplicate tech review report rows
* Reduce info sent for projects
* Fetch more thread info
* Address PR comments
* fix ci
* fix postgres version mismatch
* fix version creation
* Implement routes
* fix up tech review
* Allow adding a moderation comment to Delphi rejections
* fix up rebase
* exclude rejected projects from tech review
* add status change msg to tech review thread
* cargo sqlx prepare
* also ignore withheld projects
* More filtering on issue search
* wip: report routes
* Fix up for build
* cargo sqlx prepare
* fix thread message privacy
* New tech review search route
* submit route
* details have statuses now
* add default to drid status
* dedup issue details
* fix sqlx query on empty files
* fixes
* Dedupe issue detail statuses and message on entering tech rev
* Fix qa issues
* Fix qa issues
* fix review comments
* typos
* fix ci
* feat: tech review frontend (#4781 )
* chore: fix typo in status message
* feat(labrinth): overhaul malware scanner report storage and routes
* chore: address some review comments
* feat: add Delphi to Docker Compose `with-delphi` profile
* chore: fix unused import Clippy lint
* feat(labrinth/delphi): use PAT token authorization with project read scopes
* chore: expose file IDs in version queries
* fix: accept null decompiled source payloads from Delphi
* tweak(labrinth): expose base62 file IDs more consistently for Delphi
* feat(labrinth/delphi): support new Delphi report severity field
* chore(labrinth): run `cargo sqlx prepare` to fix Docker build errors
* tweak: add route for fetching Delphi issue type schema, abstract Labrinth away from issue types
* chore: run `cargo sqlx prepare`
* chore: fix typo on frontend generated state file message
* feat: update to use new Delphi issue schema
* wip: tech review endpoints
* wip: add ToSchema for dependent types
* wip: report issues return
* wip
* wip: returning more data
* wip
* Fix up db query
* Delphi configuration to talk to Labrinth
* Get Delphi working with Labrinth
* Add Delphi dummy fixture
* Better Delphi logging
* Improve utoipa for tech review routes
* Add more sorting options for tech review queue
* Oops join
* New routes for fetching issues and reports
* Fix which kind of ID is returned in tech review endpoints
* Deduplicate tech review report rows
* Reduce info sent for projects
* Fetch more thread info
* Address PR comments
* fix ci
* fix ci
* fix postgres version mismatch
* fix version creation
* Implement routes
* feat: batch scan alert
* feat: layout
* feat: introduce surface variables
* fix: theme selector
* feat: rough draft of tech review card
* feat: tab switcher
* feat: batch scan btn
* feat: api-client module for tech review
* draft: impl
* feat: auto icons
* fix: layout issues
* feat: fixes to code blocks + flag labels
* feat: temp remove mock data
* fix: search sort types
* fix: intl & lint
* chore: re-enable mock data
* fix: flag badges + auto open first issue in file tab
* feat: update for new routes
* fix: more qa issues
* feat: lazy load sources
* fix: re-enable auth middleware
* feat: impl threads
* fix: lint & severity
* feat: download btn + switch to using NavTabs with new local mode option
* feat: re-add toplevel btns
* feat: reports page consistency
* fix: consistency on project queue
* fix: icons + sizing
* fix: colors and gaps
* fix: impl endpoints
* feat: load all flags on file tab
* feat: thread generics changes
* feat: more qa
* feat: fix collapse
* fix: qa
* feat: msg modal
* fix: ISO import
* feat: qa fixes
* fix: empty state basic
* fix: collapsible region
* fix: collapse thread by default
* feat: rough draft of new process/flow
* fix labrinth build
* fix thread message privacy
* New tech review search route
* feat: qa fixes
* feat: QA changes
* fix: verdict on detail not whole issue
* fix: lint + intl
* fix: lint
* fix: thread message for tech rev verdict
* feat: use anim frames
* fix: exports + typecheck
* polish: qa changes
* feat: qa
* feat: qa polish
* feat: fix malic modal
* fix: lint
* fix: qa + lint
* fix: pagination
* fix: lint
* fix: qa
* intl extract
* fix ci
---------
Signed-off-by: Calum H. <contact@cal.engineer >
Co-authored-by: Alejandro González <me@alegon.dev >
Co-authored-by: aecsocket <aecsocket@tutanota.com >
---------
Signed-off-by: Calum H. <contact@cal.engineer >
Co-authored-by: Alejandro González <me@alegon.dev >
Co-authored-by: Calum H. <contact@cal.engineer >
2025-12-20 11:43:04 +00:00
François-Xavier Talbot
8fb38ba0f2
Remove tag="type" on PaymentRequestMetadata ( #4931 )
...
This would conflict with the flattened kind: PaymentRequestMetadataKind
enum, which itself is internally tagged with "type", leading to two
"type" fields being serialized, confusing the deserializer.
Deserialization would fail, be silenced in the stripe webhook and lead
to the incorrect region being assigned to a server.
2025-12-19 00:52:43 +01:00
Prospector
5bbc3872f3
Revert "Use alt CDN URL when request header is passed ( #4921 )" ( #4923 )
...
This reverts commit 609e3896eb .
2025-12-18 18:40:27 +00:00
aecsocket
8d894541e8
Add affiliate code revenue analytics ( #4883 )
...
* Add affiliate code revenue analytics
* clean up some error handling
* Add conversions to affiliate code analytics
* Only include affiliate subscriptions which have an associated successful charge
* wip: affiliate code clicks
* affiliate code click ingest route
* Add affiliate code clicks to analytics
* add new cols
2025-12-18 18:02:49 +00:00
aecsocket
609e3896eb
Use alt CDN URL when request header is passed ( #4921 )
...
* Use alt CDN URL when request header is passed
* Modify version routes to use alt CDN
2025-12-17 18:12:29 +00:00
aecsocket
ddcc14d99f
Add details to Mural API errors ( #4886 )
2025-12-11 12:49:59 +00:00
aecsocket
9aa06fbc26
Fix Mural payout status syncing ( #4853 )
...
* Fix Mural payout status syncing
* Make Mural payout code more resilient
* prepare sqlx
* fix test
2025-12-08 20:34:41 +00:00
Prospector
16a6f7b352
Modrinth Hosting rebrand ( #4846 )
...
* Modrinth Hosting rebranding
* fix capitalization issue
* fix issues
2025-12-03 22:15:36 +00:00
aecsocket
79c2633011
Fix slug/project ID collisions ( #4844 )
...
* wip: tool to create project with id
* fix
* fix id/slug collision for orgs
2025-12-03 00:30:18 +00:00
aecsocket
783aaa6553
Add revenue split to affiliate codes v2 ( #4672 )
...
* wip: affiliate payouts again
* Implement affiliate payout queue
* Deactivate subscription affiliations on cancellation
* Remove a test that never compiled in the first place
* Update sqlx cache
* address some PR comments
* more comments
* wip: handle refund charges
* cargo sqlx prepare
* Address PR comments
* cargo sqlx prepare
2025-12-02 00:01:24 +00:00
aecsocket
dfe087df20
Enforce 2dp on payout withdrawals ( #4829 )
...
* fix mural withdraw amount
* Enforce 2dp on all payout logic
2025-11-27 10:03:34 +00:00
François-Xavier Talbot
e837d9fa30
Add route to reprocess a refund charge's tax record ( #4791 )
2025-11-18 11:36:55 +00:00
aecsocket
089cca60ce
Fix PayPal SSO OAuth callback ( #4758 )
...
* Maybe fix PayPal SSO
* cargo sqlx prepare
* maybe works
* Attempt 2 of fixing
* Fix vue
* Try adding more logging to flow
2025-11-16 21:49:48 +00:00
aecsocket
c27f787c91
Task to retroactively update Mural statuses ( #4769 )
...
* Task to retroactively update Mural statuses
* cargo sqlx prepare
* wip: add tests
* Prepare
* Fix up test
* start on muralpay mock
* Move mocking to muralpay crate
2025-11-13 18:16:41 +00:00
aecsocket
98b4970680
Store method ID for payouts ( #4752 )
...
* Store method ID for payouts
* Fixes
2025-11-10 16:41:06 +00:00
aecsocket
9706f1597b
Supporting documents for Mural payouts ( #4721 )
...
* wip: gotenberg
* Generate and provide supporting docs for Mural payouts
* Correct docs
* shear
* update cargo lock because r-a complains otherwise
* Remove local Gotenberg queue and use Redis instead
* Store platform_id in database correctly
* Address PR comments
* Fix up CI
* fix rebase
* Add timeout to default env vars
2025-11-08 23:27:31 +00:00
aecsocket
608ab988f0
Fetch more data for moderation endpoints ( #4727 )
...
* Moderation endpoints fetch ownership data
* fix up endpoint configs
* add some docs
2025-11-07 18:50:29 +00:00
aecsocket
2d218d79c6
Mural fixes ( #4709 )
2025-11-04 01:12:30 +01:00
aecsocket
17f395ee55
Mural Pay integration ( #4520 )
...
* wip: muralpay integration
* Basic Mural Pay API bindings
* Fix clippy
* use dotenvy in muralpay example
* Refactor payout creation code
* wip: muralpay payout requests
* Mural Pay payouts work
* Fix clippy
* add mural pay fees API
* Work on payout fee API
* Fees API for more payment methods
* Fix CI
* Temporarily disable Venmo and PayPal methods from frontend
* wip: counterparties
* Start on counterparties and payment methods API
* Mural Pay multiple methods when fetching
* Don't send supported_countries to frontend
* Add countries to muralpay fiat methods
* Compile fix
* Add exchange rate info to fees endpoint
* Add fees to premium Tremendous options
* Add delivery email field to Tremendous payouts
* Add Tremendous product category to payout methods
* Add bank details API to muralpay
* Fix CI
* Fix CI
* Remove prepaid visa, compute fees properly for Tremendous methods
* Add more details to Tremendous errors
* Add fees to Mural
* Payout history route and bank details
* Re-add legacy PayPal/Venmo options for US
* move the mural bank details route
* Add utoipa support to payout endpoints
* address some PR comments
* add CORS to new utoipa routes
* Immediately approve mural payouts
* Add currency support to Tremendous payouts
* Currency forex
* add forex to tremendous fee request
* Add Mural balance to bank balance info
* Add more Tremendous currencies support
* Transaction payouts available use the correct date
* Address my own review comment
* Address PR comments
* Change Mural withdrawal limit to 3k
* maybe fix tremendous gift cards
* Change how Mural minimum withdrawals are calculated
* Tweak min/max withdrawal values
---------
Co-authored-by: Calum H. <contact@cal.engineer >
Co-authored-by: Alejandro González <me@alegon.dev >
2025-11-03 14:19:46 -08:00
aecsocket
ab886a5ea8
Fix CORS ( #4610 )
2025-10-24 18:27:44 +00:00
aecsocket
03b0eba695
Add utoipa Swagger UI support ( #4602 )
...
* Add utoipa Swagger UI support
* remove unused code
* remove unused code
* consistency with trailing slash
2025-10-24 14:44:50 +00:00
François-Xavier Talbot
c379e4b173
admin/credit: don't credit unprovisioned subscriptions ( #4594 )
...
* Remove pointless sorting
* Filter subscriptions by labrinth's provisioned state
2025-10-20 20:31:20 +00:00
François-Xavier Talbot
eeed4e572d
Credit subscriptions ( #4575 )
...
* Implement subscription crediting
* chore: query cache, clippy, fmt
* Improve code, improve query for next open charge
* chore: query cache, clippy, fmt
* Move server ID copy button up
* Node + region crediting
* Make it less ugly
* chore: query cache, clippy, fmt
* Bugfixes
* Fix lint
* Adjust migration
* Adjust migration
* Remove billing change
* Move DEFAULT_CREDIT_EMAIL_MESSAGE to utils.ts
* Lint
* Merge
* bump clickhouse, disable validation
* tombi fmt
* Update cargo lock
2025-10-20 17:35:44 +00:00
François-Xavier Talbot
79502a19d6
bump clickhouse, disable validation ( #4593 )
...
* bump clickhouse, disable validation
* tombi fmt
2025-10-20 17:30:28 +00:00
François-Xavier Talbot
3dbfd69bdd
Fix clickhouse ( #4592 )
2025-10-20 19:07:23 +02:00
aecsocket
24bec6baba
Fix MaxMind ( #4590 )
2025-10-20 15:58:31 +00:00
François-Xavier Talbot
8a30b7978d
Support ctoken_ in PATCH subscription ( #4578 )
2025-10-20 10:03:20 +00:00
François-Xavier Talbot
4b17eb5d35
Gotenberg/PDF gen implementation ( #4574 )
...
* Gotenberg/PDF gen implementation
* Security, PDF type enum, propagate client
* chore: query cache, clippy, fmt
* clippy fixes + tombi
* Update env example, add GOTENBERG_CALLBACK_URL
* Remove test code
* Fix .env, docker-compose
* Update purpose of payment
* Add internal networking guards to gotenberg webhooks
* Fix error
* Fix lint
2025-10-19 23:56:26 +00:00
François-Xavier Talbot
7796273529
Clearer error on TIN mismatch ( #4579 )
...
* Clearer error on TIN mismatch
* Remove ctoken code (how did that end up there)
* polish: frontend for TIN/SSN mismatch
* fix: lint
* polish: only banner + change text
* fix: logic
* fix: lint
---------
Co-authored-by: Calum H. (IMB11) <contact@cal.engineer >
2025-10-19 21:03:21 +00:00
François-Xavier Talbot
5db5bf4c4c
Changes to handling of refunds in Anrok ( #4556 )
...
* Use negations, track transaction version/accounting time, use original charge accounting time in refunds
* query cache
* chore: query cache, clippy, fmt
* Fix tax drift calculation
* Fix migration
* Increase update_tax_transactions rate
2025-10-17 15:57:36 +00:00
Josiah Glosson
b23d3e674f
Update Rust & Java dependencies ( #4540 )
...
* Update Java dependencies
* Baselint lint fixes
* Update Rust version
* Update actix-files 0.6.6 -> 0.6.8
* Update actix-http 3.11.0 -> 3.11.2
* Update actix-rt 2.10.0 -> 2.11.0
* Update async_zip 0.0.17 -> 0.0.18
* Update async-compression 0.4.27 -> 0.4.32
* Update async-trait 0.1.88 -> 0.1.89
* Update async-tungstenite 0.30.0 -> 0.31.0
* Update const_format 0.2.34 -> 0.2.35
* Update bitflags 2.9.1 -> 2.9.4
* Update bytemuck 1.23.1 -> 1.24.0
* Update typed-path 0.11.0 -> 0.12.0
* Update chrono 0.4.41 -> 0.4.42
* Update cidre 0.11.2 -> 0.11.3
* Update clap 4.5.43 -> 4.5.48
* Update data-url 0.3.1 -> 0.3.2
* Update discord-rich-presence 0.2.5 -> 1.0.0
* Update enumset 1.1.7 -> 1.1.10
* Update flate2 1.1.2 -> 1.1.4
* Update hyper 1.6.0 -> 1.7.0
* Update hyper-util 0.1.16 -> 0.1.17
* Update iana-time-zone 0.1.63 -> 0.1.64
* Update image 0.25.6 -> 0.25.8
* Update indexmap 2.10.0 -> 2.11.4
* Update json-patch 4.0.0 -> 4.1.0
* Update meilisearch-sdk 0.29.1 -> 0.30.0
* Update clickhouse 0.13.3 -> 0.14.0
* Fix some prettier things
* Update lettre 0.11.18 -> 0.11.19
* Update phf 0.12.1 -> 0.13.1
* Update png 0.17.16 -> 0.18.0
* Update quick-xml 0.38.1 -> 0.38.3
* Update redis 0.32.4 -> 0.32.7
* Update regex 1.11.1 -> 1.11.3
* Update reqwest 0.12.22 -> 0.12.23
* Update rust_decimal 1.37.2 -> 1.38.0
* Update rust-s3 0.35.1 -> 0.37.0
* Update serde 1.0.219 -> 1.0.228
* Update serde_bytes 0.11.17 -> 0.11.19
* Update serde_json 1.0.142 -> 1.0.145
* Update serde_with 3.14.0 -> 3.15.0
* Update sentry 0.42.0 -> 0.45.0 and sentry-actix 0.42.0 -> 0.45.0
* Update spdx 0.10.9 -> 0.12.0
* Update sysinfo 0.36.1 -> 0.37.2
* Update tauri 2.7.0 -> 2.8.5
* Update tauri-build 2.3.1 -> 2.4.1
* Update tauri-plugin-deep-link 2.4.1 -> 2.4.3
* Update tauri-plugin-dialog 2.3.2 -> 2.4.0
* Update tauri-plugin-http 2.5.1 -> 2.5.2
* Update tauri-plugin-opener 2.4.0 -> 2.5.0
* Update tauri-plugin-os 2.3.0 -> 2.3.1
* Update tauri-plugin-single-instance 2.3.2 -> 2.3.4
* Update tempfile 3.20.0 -> 3.23.0
* Update thiserror 2.0.12 -> 2.0.17
* Update tracing-subscriber 0.3.19 -> 0.3.20
* Update url 2.5.4 -> 2.5.7
* Update uuid 1.17.0 -> 1.18.1
* Update webp 0.3.0 -> 0.3.1
* Update whoami 1.6.0 -> 1.6.1
* Note that windows and windows-core can't be updated yet
* Update zbus 5.9.0 -> 5.11.0
* Update zip 4.3.0 -> 6.0.0
* Fix build
* Enforce rustls crypto provider
* Refresh Cargo.lock
* Update transitive dependencies
* Bump Gradle usage to Java 17
* Use ubuntu-latest consistently across workflows
* Fix lint
* Fix lint in Rust
* Update native-dialog 0.9.0 -> 0.9.2
* Update regex 1.11.3 -> 1.12.2
* Update reqwest 0.12.23 -> 0.12.24
* Update rust_decimal 1.38.0 -> 1.39.0
* Remaining lock-only updates
* chore: move TLS impl of some other dependencies to aws-lc-rs
The AWS bloatware "virus" expands by sheer force of widespread adoption
by the ecosystem... 🫣
* chore(fmt): run Tombi
---------
Co-authored-by: Alejandro González <me@alegon.dev >
2025-10-15 20:45:47 +00:00
aecsocket
4cd8ccd319
Taplo and typos in CI, TOML cleanup ( #4510 )
...
* Taplo and typos in CI
* Clean up Cargo.toml files
* Fix CI
* Fix CI
* Run typos in CI
* Loosen typos a bit
* Fix typos
* Fix taplo
* Switch to Tombi
* Fix Tombi errors
* Remove unused typos config
* Tombi fmt
* Remove extraneous cargo fmt
* fix typos
2025-10-12 20:18:38 +00:00
aecsocket
e66b131a5d
See available funds history and withdrawls in user payout history ( #4537 )
...
* Add GET /v3/payouts/history
* V3 backwards compat
* Sqlx prepare
* Include user ID in GET /v3/payout
2025-10-11 10:51:38 +00:00
François-Xavier Talbot
0c66fa3f12
Custom Emails ( #4526 )
...
* Dynamic email template
* Set lower cache expiry for templates
* Custom email route
* Fix subject line on custom emails
* chore: query cache, clippy, fmt
* Bugfixes
* Key-based caching on custom emails
* Sequentially process emails prone to causing cache stampede
* Fill variables in dynamic body + subject line
* Update apps/labrinth/src/queue/email/templates.rs
Co-authored-by: aecsocket <aecsocket@tutanota.com >
Signed-off-by: François-Xavier Talbot <108630700+fetchfern@users.noreply.github.com >
* Update apps/labrinth/src/queue/email/templates.rs
Co-authored-by: aecsocket <aecsocket@tutanota.com >
Signed-off-by: François-Xavier Talbot <108630700+fetchfern@users.noreply.github.com >
---------
Signed-off-by: François-Xavier Talbot <108630700+fetchfern@users.noreply.github.com >
Co-authored-by: aecsocket <aecsocket@tutanota.com >
2025-10-10 16:30:38 +00:00
aecsocket
aec49cff7c
Include both analytics v1 and v2 in tree ( #4527 )
...
* Include both analytics v1 and v2 in tree
* fix sqlx cache
* fix tests
2025-10-10 14:58:19 +00:00
Prospector
e9735bd9ba
Revert "Analytics backend V2 ( #4408 )" ( #4524 )
...
This reverts commit 6919c8dea9 .
2025-10-08 19:01:32 +00:00
aecsocket
6919c8dea9
Analytics backend V2 ( #4408 )
...
* start with analytics v2
* the big ass SQL query™
* downloads and views analytics working
* Implement analytics bucketing API
* allow filtering by monetization
* Use a new format for project metrics and bucketing
* revenue API works
* Add country data to analytics API
* Add checks for number of slices and time slice resolution
* work on docs
* wip: fix tests and add docs
* Fix tests
* Fix tests
* Uncomment crates
* feat: frontend CLAUDE.md (#4433 )
* Slight tweaks to time slicing logic
* More tweaks
* Fix error messages
* Fix sqlx cache
---------
Co-authored-by: Calum H. <contact@cal.engineer >
2025-10-07 22:01:10 +00:00