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
aecsocket
31417a2aa1
more logging on sync payouts task ( #4814 )
2025-11-23 21:48:15 +01:00
aecsocket
2f0ef07944
Add logging and change limit of Mural payouts task ( #4798 )
2025-11-19 12:38:30 +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
f8a5a77daa
Expose test utils to Labrinth dependents ( #4703 )
...
* Expose test utils to Labrinth dependents
* Feature gate `labrinth::test`
* Unify db migrators
* Expose `NotificationBuilder::insert_many_deliveries`
* Add logging utils to common crate
* Remove unused console-subscriber layer
* fix CI
2025-11-08 20:26:24 +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
cb47bc97c7
Logging hotfix for canceling Mural payout requests ( #4730 )
...
* Logging hotfix for canceling payout requests
* Remove Tombi CI step for now
2025-11-07 12:07:10 +01:00
François-Xavier Talbot
7437a833ef
Fix payout notifications ( #4707 )
...
* Add limit to payouts_values_notifications synchronizer
* Set payout notification threshold to $1
* Fix formatting
* Query cache
2025-11-05 19:43:59 +00:00
aecsocket
23d098eee5
Fix error chain logging and withdrawal fees ( #4718 )
...
* Log Labrinth errors properly
* Tweak how we do Tremendous fees
* Fix maths for Tremendous fees
2025-11-04 17:50:54 -08:00
aecsocket
6e47de06bb
Address withdrawal QA changes ( #4711 )
...
* Add Mural to balance monitoring
* Add back Visa prepaid Tremendous cards
* cargo sqlx prepare
2025-11-04 16:40:15 +00:00
aecsocket
c38751a38a
cargo sqlx prepare ( #4710 )
2025-11-04 01:34:39 +01:00
aecsocket
2d218d79c6
Mural fixes ( #4709 )
2025-11-04 01:12:30 +01:00
Calum H.
3765a6ded8
feat: creator revenue page overhaul ( #4204 )
...
* feat: start on tax compliance
* feat: avarala1099 composable
* fix: shouldShow should be managed on the page itself
* refactor: move show logic to revenue page
* feat: security practices rather than info
* feat: withdraw page lock
* fix: empty modal bug & lint issues
* feat: hide behind feature flag
* Use standard admonition components, make casing consistent
* modal title
* lint
* feat: withdrawal check
* feat: tax cap on withdrawals warning
* feat: start on revenue page overhaul
* feat: segment generation for bar
* feat: tooltips and links
* fix: tooltip border
* feat: finish initial layout, start on withdraw modal
* feat: start on withdrawal limit stage
* feat: shade support for primary colors
* feat: start on withdraw details stage
* fix: convert swatches to hex
* feat: payout method/region dropdown temporarily using multiselect
* feat: fix modal open issues and use teleport dropdowns
* feat: hide transactions section if there are no transactions
* refactor: NavStack surfaces
* feat: new dropdown component
* feat: remove teleport dropdown modal in favour of new combobox component
* fix: lint
* refactor: dashboard sidebar layout
* feat: cleanup
* fix: niche bugs
* fix: ComboBox styling
* feat: first part of qa
* feat: animate flash rather than tooltip
* fix: lint
* feat: qa border gradient
* fix: seg hover flashes
* feat: i18n
* feat: i18n and final QA
* fix: lint
* feat: QA
* fix: lint
* fix: merge conflicts
* fix: intl
* fix: blue hover
* fix: transfers page
* feat: surface variables & gradients
* feat: text vars
* fix: lint
* fix: intl
* feat: stages
* fix: lint
* feat: region selection
* feat: method selection btns
* fix: flex col on transactions
* feat: hook up method selection to ctx
* feat: muralpay kyc stage info
* 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
* feat: progress
* fix: broken tax form stage logic
* polish: tax form stage and method selection stage layout
* add mural pay fees API
* Work on payout fee API
* Fees API for more payment methods
* Fix CI
* polish: muralpay qa
* refactor: clean up combobox component
* polish: change from critical -> warning admonition in MuralpayDetailsStage
* Temporarily disable Venmo and PayPal methods from frontend
* polish: clean up transaction component & page
* polish: navbar qa, text color-contrast in chips type buttonstyled, mb on rev/index.vue page
* fix: incorrectly using available balance as tax form withdraw limit after tax forms submitted
* wip: counterparties
* Start on counterparties and payment methods API
* polish: combobox component
* polish: fix broken scroll logic using a composable & web:fix
* fix: lint
* polish: various QA fixes
* feat: hook up with backend (wip)
* feat: draft muralpay rails dynamic logic
* polish: modify rails to support backend changes
* Mural Pay multiple methods when fetching
* Don't send supported_countries to frontend
* Mural Pay multiple methods when fetching
* Don't send supported_countries to frontend
* feat: fees & methods endpoint hookup
* chore: remove duplicates fix
* polish: qa changes + figma match
* Add countries to muralpay fiat methods
* Compile fix
* Add exchange rate info to fees endpoint
* Add fees to premium Tremendous options
* polish: i18n and better document type dropdown -> id input labels
* feat: tremendous
* fix: lint & i18n
* feat: reintroduce tin mismatch logic to index.vue
* polish: qa
* fix: i18n
* feat: remove teleport dropdown menu - combobox should be used
* fix: lint
* fix: jsdoc
* feat: checkbox for reward program terms
* Add delivery email field to Tremendous payouts
* Add Tremendous product category to payout methods
* Add bank details API to muralpay
* Fix CI
* Fix CI
* polish: qa changes
* feat: i18n pass
* feat: deduplicate methods endpoint & fix i18n issues
* chore: deduplicate i18n strings into common-messages.ts
* fix: lint
* fix: i18n
* feat: estimates
* polish: more QA
* Remove prepaid visa, compute fees properly for Tremendous methods
* Add more details to Tremendous errors
* feat: withdraw endpoint impl & internals refactor
* Add more details to Tremendous errors
* feat: completion stage
* Add fees to Mural
* feat: transactions page match figma
* fix: i18n
* polish: QA changes
* polish: qa
* Payout history route and bank details
* polish: autofill and requirements checks
* fix: i18n + lint
* fix: fiat rail fees
* polish: move scroll fade stuff into NewModal rather than just CreatorWithdrawModal
* feat: simplify action btn logic & tax form error
* fix: tax -> Tax form
* Re-add legacy PayPal/Venmo options for US
* feat: mobile responsiveness fixes for modal
* fix: responsiveness issues
* feat: navstack responsiveness
* fix: responsiveness
* move the mural bank details route
* fix: generated state cleanup & bank details input
* fix: lint & i18n
* Add utoipa support to payout endpoints
* address some PR comments
* polish: qa
* add CORS to new utoipa routes
* feat: legacy paypal/venmo stage
* polish: reset amount on back qa
* revert: navstack mr changes
* polish: loading indicator on method selection stage
* fix: paypal modal doesnt reopen after auth
* fix: lint & i18n
* fix: paypal flow
* polish: qa changes
* fix: gitignore
* polish: qa fixes
* fix: payouts_available in payouts.rs
* fix: bug when limit is zero
* polish: qa changes
* fix: qa stuff & muralpay sub-division fix
* Immediately approve mural payouts
* Add currency support to Tremendous payouts
* Currency forex
* add forex to tremendous fee request
* polish: qa & currency support for paypal tremendous
* polish: fx qa
* feat: demo mode flag
* fix: i18n & padding issues
* polish: qa changes
* fix: ml
* Add Mural balance to bank balance info
* polish: show warning for paypal international USD withdrawals + more currencies
* Add more Tremendous currencies support
* fix: colors on balance bars
* fix: empty states
* fix: pl-8 mobile issue
* fix: hide see all
* Transaction payouts available use the correct date
* Address my own review comment
* Address PR comments
* Change Mural withdrawal limit to 3k
* fix: empty state + paypal warning
* maybe fix tremendous gift cards
* Change how Mural minimum withdrawals are calculated
* Tweak min/max withdrawal values
* fix: segment brightness
* fix: min & max for muralpay & legacy paypal
* Fix some icon issues
* more issues
* fix user menu
* fix: remove + network
---------
Signed-off-by: Calum H. <contact@cal.engineer >
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com >
Co-authored-by: aecsocket <aecsocket@tutanota.com >
Co-authored-by: Alejandro González <me@alegon.dev >
2025-11-03 15:15:25 -08:00
François-Xavier Talbot
92698e4bb5
Update tax change notification timings ( #4706 )
2025-11-03 22:15:16 +00: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
b7f0988399
Decouple project deletion from thread deletion ( #4673 )
...
* Decouple project deletion from thread deletion
* Allow a thread to exist without a project
* attempt 2
* Modify migration to set orphaned threads' mods to NULL instead of removing constraint entirely
* Use mod PAT for mod threads
2025-10-31 19:04:01 +00:00
aecsocket
bcc36362be
Expose utilities for setting up the database ( #4657 )
...
* Expose utilities for setting up the database
* Expose migrator directly
* Make some test utils publicly accessible
* expose migrator
* more test fixture utils
* more test fixture utils
* more test fixture utils
* fix
* fix lint
2025-10-30 10:10:25 +00: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
aecsocket
707ff2146b
Update appropriate rows when removing a user ( #4597 )
...
* Update appropriate rows when removing a user
* Update sqlx cache
* Delete rows from payouts_values_notifications instead of make ghost user
2025-10-24 14:19:53 +00:00
François-Xavier Talbot
f375913c62
Adjust some values in tax-related tasks ( #4598 )
...
* Adjust some values for tax processing
* chore: query cache, clippy, fmt
2025-10-21 15:55:54 +00:00
François-Xavier Talbot
977de0e18a
Fix MaxMind ( #4595 )
...
* add maxmind to app data
* add back maxmind account id check
2025-10-21 00:24:47 +02: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
Michael H.
752f68124c
fix: sync debian version with rust image
2025-10-19 18:11:41 +02:00
aecsocket
fa7d1d7942
Use new MaxMind env vars on Labrinth ( #4573 )
...
* Bring in modrinth-maxmind
* integrate modrinth-maxmind into labrinth
* Fix CI
2025-10-18 18:38:19 +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
Alejandro González
6dbd1e5236
fix(labrinth): make orgs with a single user and only approved projects visible to non-logged-in people ( #4557 )
...
I made a typo on PR https://github.com/modrinth/code/pull/4426 by making
the corresponding SQL query filter by projects with an unexisting
`public` status, instead of `approved`. During my testing, I used the
`archived` status, so I didn't notice it back then.
2025-10-15 18:16:44 +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
François-Xavier Talbot
2a61916d1e
Mark charges from stripe customers with no address as unresolvable ( #4521 )
2025-10-11 18:24:21 +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
Alejandro González
15a7815ec3
perf(Dockerfile): improve Docker cache mounts usage ( #4507 )
...
As described in
https://hackmd.io/jgkoQ24YRW6i0xWd73S64A#Using-Docker-cache-mounts ,
cache mounts need to be used with a fairly specific syntax for caching
of previously build Rust artifacts to be as effective as it can be.
2025-10-08 16:03:15 +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
François-Xavier Talbot
9589e23118
Link customer ID to Anrok transaction ( #4509 )
...
* Mark transactions with unresolvable addresses as unresolved
* Add customer_name + customer_id to anrok transactions
* Increase rate of Anrok syn
* Remove timer from update_tax_transactions
* chore: query cache, clippy, fmt
2025-10-06 16:06:57 +00:00
aecsocket
e303655727
Fix using a private serde_with re-export ( #4489 )
2025-10-04 18:10:42 +00:00
Alejandro González
ab6e9dd5d7
fix(app-lib, labrinth): stricter mrpack file path validation ( #4482 )
...
* fix(app-lib, labrinth): stricter mrpack file path validation
* chore: run `cargo fmt`
* tweak: reject reserved Windows device names in mrpacks too
2025-10-04 10:35:30 +00:00