Repository navigation
Conversation
Bilb
added a commit
that referenced
this pull request
Oct 15, 2026
Bilb
force-pushed
the
feat/platform-stats
branch
from
October 16, 2026 08:29
f24e162 to
53eee94
Compare
Bilb
marked this pull request as ready for review
November 3, 2026 02:52
mau merges the Play Console and App Store Connect exports handed to /mau-upload into a daily history, scales iOS by Apple's opt-in rate, adds GitHub APK and Desktop downloads and an F-Droid estimate, and answers the asker alone. `enabled = false` in jobs.toml keeps a job off; mau ships off.
Bilb
force-pushed
the
feat/platform-stats
branch
from
November 3, 2026 03:28
ee9c6f7 to
f71e8ee
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
/maufor monthly active users per platform, and/mau-uploadto hand it the store exports. Stacked on #81, which adds the relay,/runand/versions.mau lands off (
enabled = falseinjobs.toml):/mauand/mau-uploadare not registered and no mau unit is enabled until that line is removed. Deploying this changes nothing until then./mau: monthly active usersNo timer: mau runs only when someone asks with
/mau(optionallymonth:YYYY-MM). The silence checker leaves it alone.Answers
/mau, nothing is posted in the channel.alerts.env's channel, a systemd stop at the 5-minute timeout included.Sources
/mau-upload.Flow
inbox/request.json(the interaction's application id and token, and the month) and asks for the unit as/rundoes. It acknowledges Discord with an ephemeral deferral, and removesrequest.jsonif the unit did not start.request.json, checks its shape (digits for the id, no/in the token), merges every export ininbox/into a dailyhistory.jsonand files them indone/, then answers by editing the acknowledgement. It retries a 404, since its first edit can reach Discord before the relay's acknowledgement. The token never reaches an alert or the journal./maucompares against that day.Relay changes
/mau-upload file:<csv>downloads the attachment from Discord's CDN, checks it withmau.parse_export, and only then renames it into mau's inbox. It replies to the uploader alone, saying whether the export has last month's final figure./runno longer offers mau: started any other way, it has nobody to answer./mauand/mau-uploadare registered hidden from everyone but server administrators, like/run, and only while mau is on.sessionops:opsbot 0770).Registry and install
jobs.toml:enabled(defaulttrue; a job setfalsegets no units, is refused by the runner, and is offered nowhere).session-ops list --offlists those jobs.install.sh: mau's inbox,mau.envand an emptyasc-key.p8.Deploy
/etc/session-ops/mau.env:ASC_ISSUER_ID,ASC_KEY_ID;/etc/session-ops/asc-key.p8, mode 600 (install.shcreates it empty, and an empty one fails the run naming it).session-ops discord-registeragain once mau is on.Not yet done:
/mau-uploadrefusals ran against a test app, before/mauanswered through the interaction. Nothing has run on the host. Once mau is on:/mauwith no exports tells only you what is missing; with both, it shows you the figures, and no one else sees them.Tests
uv run --locked python -m unittest discover -s tests -t .(991 OK, 1 skipped),ruff check .clean.