jared
a73afea6b9
Merge pull request 'minecraft: show players online as the bridge bot's status' ( #62 ) from feat/mc-player-status into main
Lint / Shell (shellcheck) (push) Successful in 15s
Lint / JS (eslint) (push) Successful in 14s
Lint / No Hookshot webhook IDs in README (push) Successful in 10s
Lint / No secrets in webhook configs (push) Successful in 9s
Lint / Landing page is rendered (matrix (push) Successful in 13s
Lint / Python (ruff) (push) Successful in 12s
Lint / Secret scan (gitleaks) (push) Successful in 8s
Lint / Python deps (pip-audit) (push) Successful in 1m11s
2026-11-04 22:42:03 -05:00
jared and Claude Opus 5.5
2d2ebf64a5
minecraft: show players online as the bridge bot's status
...
Lint / Shell (shellcheck) (pull_request) Successful in 26s
Lint / JS (eslint) (pull_request) Successful in 23s
Lint / No secrets in webhook configs (pull_request) Successful in 9s
Lint / No Hookshot webhook IDs in README (pull_request) Successful in 11s
Lint / Landing page is rendered (matrix (pull_request) Successful in 13s
Lint / Python (ruff) (pull_request) Successful in 12s
Lint / Secret scan (gitleaks) (pull_request) Successful in 24s
Lint / Shell (shellcheck) (push) Successful in 27s
Lint / JS (eslint) (push) Successful in 23s
Lint / No Hookshot webhook IDs in README (push) Successful in 5s
Lint / Python deps (pip-audit) (pull_request) Successful in 1m43s
Lint / No secrets in webhook configs (push) Successful in 6s
Lint / Landing page is rendered (matrix (push) Successful in 5s
Lint / Python (ruff) (push) Successful in 7s
Lint / Secret scan (gitleaks) (push) Successful in 8s
Lint / Python deps (pip-audit) (push) Successful in 56s
A small service on CT 154 pings the Lotus Minecraft server and sets the result
as the Matrix status of @lotus-mc-bridge, re-sent every 20 s because the mod
syncs with set_presence=offline and Synapse would otherwise drop it to offline.
Uses the mod's own token, so no new account or secret.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01PPmy3tPq869XDW4njjVaKA
2026-11-04 22:37:55 -05:00
jared
c793d4fb29
Merge pull request 'cinny: point the status banner at Kuma's public page' ( #61 ) from fix/status-banner-public-page into main
Lint / Shell (shellcheck) (push) Successful in 30s
Lint / JS (eslint) (push) Successful in 13s
Lint / No Hookshot webhook IDs in README (push) Successful in 9s
Lint / No secrets in webhook configs (push) Successful in 15s
Lint / Landing page is rendered (matrix (push) Successful in 15s
Lint / Python (ruff) (push) Successful in 9s
Lint / Secret scan (gitleaks) (push) Successful in 17s
Lint / Python deps (pip-audit) (push) Successful in 1m44s
2026-11-04 22:21:53 -05:00
jared and Claude Opus 5.5
5268156e48
cinny: point the status banner at Kuma's public page
...
Lint / JS (eslint) (pull_request) Successful in 30s
Lint / No Hookshot webhook IDs in README (pull_request) Successful in 15s
Lint / No secrets in webhook configs (pull_request) Successful in 15s
Lint / Landing page is rendered (matrix (pull_request) Successful in 5s
Lint / Python (ruff) (pull_request) Successful in 8s
Lint / Python deps (pip-audit) (pull_request) Successful in 1m9s
Lint / Secret scan (gitleaks) (pull_request) Successful in 9s
Lint / Shell (shellcheck) (push) Successful in 13s
Lint / JS (eslint) (push) Successful in 11s
Lint / No Hookshot webhook IDs in README (push) Successful in 16s
Lint / Landing page is rendered (matrix (push) Successful in 6s
Lint / Python (ruff) (push) Successful in 6s
Lint / Shell (shellcheck) (pull_request) Successful in 22s
Lint / Python deps (pip-audit) (push) Successful in 1m34s
Lint / No secrets in webhook configs (push) Successful in 7s
Lint / Secret scan (gitleaks) (push) Successful in 7s
The "matrix" status page was merged into "public" on 2026-10-11, so the banner
has read a 404 and stayed silent since. Kuma's Matrix group on "public" is now
split into Homeserver / Voice calls / Discord, and notices are scoped with
noticePrefix "Matrix:" (cinny #486 , already live), so other services'
maintenance and incidents don't reach Lotus users.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01PPmy3tPq869XDW4njjVaKA
2026-11-04 21:53:23 -05:00
jared
dde36cdcd2
Merge pull request 'discord-bridge: Discord presence into Matrix ghosts' ( #60 ) from feat/discord-presence into main
Lint / Shell (shellcheck) (push) Successful in 29s
Lint / JS (eslint) (push) Successful in 27s
Lint / No Hookshot webhook IDs in README (push) Successful in 17s
Lint / No secrets in webhook configs (push) Successful in 15s
Lint / Landing page is rendered (matrix (push) Successful in 17s
Lint / Python (ruff) (push) Successful in 21s
Lint / Secret scan (gitleaks) (push) Successful in 8s
Lint / Python deps (pip-audit) (push) Successful in 1m15s
2026-11-04 19:41:07 -05:00
jared and Claude Opus 5.5
f8f0ca4549
discord-bridge: Discord presence into Matrix ghosts
...
Lint / JS (eslint) (pull_request) Successful in 10s
Lint / Shell (shellcheck) (pull_request) Successful in 11s
Lint / No Hookshot webhook IDs in README (pull_request) Successful in 6s
Lint / No secrets in webhook configs (pull_request) Successful in 6s
Lint / Landing page is rendered (matrix (pull_request) Successful in 6s
Lint / Python (ruff) (pull_request) Successful in 7s
Lint / Secret scan (gitleaks) (pull_request) Successful in 13s
Lint / Shell (shellcheck) (push) Successful in 26s
Lint / JS (eslint) (push) Successful in 18s
Lint / No Hookshot webhook IDs in README (push) Successful in 21s
Lint / No secrets in webhook configs (push) Successful in 12s
Lint / Python deps (pip-audit) (pull_request) Successful in 1m54s
Lint / Landing page is rendered (matrix (push) Successful in 17s
Lint / Python (ruff) (push) Successful in 16s
Lint / Secret scan (gitleaks) (push) Successful in 31s
Lint / Python deps (pip-audit) (push) Successful in 1m37s
mautrix-discord doesn't bridge presence. lotus_presence.py watches the Discord
server (a second gateway session on the bridge's own bot, Guilds + Presence
intents only) and sets presence and a status message on each @discord_* ghost:
online / idle / DND / offline -> online / unavailable / msc3026 busy / offline;
custom status and the first activity become the status message.
Its own appservice registration is non-exclusive on the ghost namespace, so it
can update ghosts but not create them. Synapse drops an unrefreshed user to
offline after about a minute, so live states are re-sent every 20 s; if the
service dies, ghosts go offline rather than stale. The installer generates the
credentials on the server and doesn't restart Synapse. Statuses and activities
are never logged.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01PPmy3tPq869XDW4njjVaKA
2026-11-04 19:36:38 -05:00
jared
ed1300f146
Merge pull request 'feat(synapse): nightly state compression on CT 109' ( #59 ) from feat/synapse-state-compressor into main
Lint / Shell (shellcheck) (push) Successful in 9s
Lint / JS (eslint) (push) Successful in 8s
Lint / No Hookshot webhook IDs in README (push) Successful in 6s
Lint / No secrets in webhook configs (push) Successful in 5s
Lint / Python (ruff) (push) Successful in 5s
Lint / Landing page is rendered (matrix (push) Successful in 6s
Lint / Secret scan (gitleaks) (push) Successful in 6s
Lint / Python deps (pip-audit) (push) Successful in 39s
2026-11-03 19:10:33 -05:00
jared
ded4a30530
Merge pull request 'docs: all 13 Hookshot webhooks rotated' ( #58 ) from docs/rotated-remaining-webhooks into main
Lint / JS (eslint) (push) Successful in 13s
Lint / Shell (shellcheck) (push) Successful in 14s
Lint / No secrets in webhook configs (push) Successful in 8s
Lint / No Hookshot webhook IDs in README (push) Successful in 8s
Lint / Landing page is rendered (matrix (push) Successful in 7s
Lint / Python (ruff) (push) Successful in 10s
Lint / Secret scan (gitleaks) (push) Successful in 25s
Lint / Python deps (pip-audit) (push) Successful in 1m10s
2026-11-03 17:03:09 -05:00
jared
7b01a9fcdc
Merge pull request 'docs: call stack upgraded (lk-jwt-service 0.9.0, LiveKit 1.13.11)' ( #57 ) from docs/call-stack-upgraded into main
Lint / Shell (shellcheck) (push) Successful in 18s
Lint / JS (eslint) (push) Successful in 24s
Lint / No Hookshot webhook IDs in README (push) Successful in 17s
Lint / No secrets in webhook configs (push) Successful in 17s
Lint / Landing page is rendered (matrix (push) Successful in 17s
Lint / Python (ruff) (push) Successful in 23s
Lint / Secret scan (gitleaks) (push) Successful in 20s
Lint / Python deps (pip-audit) (push) Successful in 1m11s
2026-11-03 16:42:04 -05:00
jared
89291f8707
Merge pull request 'docs: note the 2026-11-03 webhook rotation' ( #56 ) from docs/rotated-webhook-prefixes into main
Lint / JS (eslint) (push) Successful in 12s
Lint / Shell (shellcheck) (push) Successful in 18s
Lint / No secrets in webhook configs (push) Successful in 10s
Lint / No Hookshot webhook IDs in README (push) Successful in 10s
Lint / Python (ruff) (push) Successful in 6s
Lint / Landing page is rendered (matrix (push) Successful in 6s
Lint / Secret scan (gitleaks) (push) Successful in 14s
Lint / Python deps (pip-audit) (push) Successful in 55s
2026-11-03 00:57:42 -05:00
jared
a06ebfe6f6
Merge pull request 'docs: stop publishing Hookshot webhook IDs; record Hookshot + call-stack upgrades' ( #55 ) from docs/hookshot-ids-and-upgrades into main
Lint / JS (eslint) (push) Successful in 12s
Lint / Shell (shellcheck) (push) Successful in 13s
Lint / No secrets in webhook configs (push) Successful in 10s
Lint / No Hookshot webhook IDs in README (push) Successful in 12s
Lint / Landing page is rendered (matrix (push) Successful in 7s
Lint / Python (ruff) (push) Successful in 5s
Lint / Secret scan (gitleaks) (push) Successful in 8s
Lint / Python deps (pip-audit) (push) Successful in 39s
2026-11-03 00:36:18 -05:00
jared
8a0e16cabd
Merge pull request 'fix(livekit): graceful restart could restart LiveKit in the middle of a call' ( #54 ) from fix/livekit-graceful-restart-detection into main
Lint / JS (eslint) (push) Successful in 9s
Lint / Shell (shellcheck) (push) Successful in 10s
Lint / No secrets in webhook configs (push) Successful in 5s
Lint / Landing page is rendered (matrix (push) Successful in 5s
Lint / Python (ruff) (push) Successful in 6s
Lint / Secret scan (gitleaks) (push) Successful in 7s
Lint / Python deps (pip-audit) (push) Successful in 49s
2026-11-03 00:28:12 -05:00
jared
d32c74052c
Merge pull request 'voice-bridge: leave Discord within ~8-18 s of the last Matrix person leaving' ( #53 ) from voice-bridge-timing into main
Lint / JS (eslint) (push) Successful in 7s
Lint / Shell (shellcheck) (push) Successful in 7s
Lint / Landing page is rendered (matrix (push) Successful in 4s
Lint / No secrets in webhook configs (push) Successful in 4s
Lint / Python (ruff) (push) Successful in 6s
Lint / Secret scan (gitleaks) (push) Successful in 4s
Lint / Python deps (pip-audit) (push) Failing after 5m4s
2026-10-29 21:12:00 -04:00
jared
8eb3201b38
Merge pull request 'docs: voice bridge live — bot profile, room setup, upgrade steps' ( #52 ) from docs/voice-bridge-live into main
Lint / JS (eslint) (push) Successful in 9s
Lint / Shell (shellcheck) (push) Successful in 9s
Lint / No secrets in webhook configs (push) Successful in 5s
Lint / Landing page is rendered (matrix (push) Successful in 4s
Lint / Python (ruff) (push) Successful in 5s
Lint / Secret scan (gitleaks) (push) Successful in 6s
Lint / Python deps (pip-audit) (push) Successful in 34s
2026-10-29 13:24:35 -04:00
jared
b2cab883d6
voice-bridge: Discord voice ↔ Lotus voice room (patched nether-voicebridge)
Lint / JS (eslint) (push) Successful in 10s
Lint / Shell (shellcheck) (push) Successful in 10s
Lint / No secrets in webhook configs (push) Successful in 4s
Lint / Landing page is rendered (matrix (push) Successful in 4s
Lint / Python (ruff) (push) Successful in 6s
Lint / Secret scan (gitleaks) (push) Successful in 6s
Lint / Python deps (pip-audit) (push) Successful in 32s
2026-10-29 12:56:04 -04:00
jared
db2f523028
Merge pull request 'docs: bot profiles (names, avatars, where each is set)' ( #50 ) from docs/bot-profiles into main
Lint / JS (eslint) (push) Successful in 6s
Lint / Shell (shellcheck) (push) Successful in 7s
Lint / No secrets in webhook configs (push) Successful in 4s
Lint / Landing page is rendered (matrix (push) Successful in 4s
Lint / Python (ruff) (push) Successful in 11s
Lint / Secret scan (gitleaks) (push) Successful in 8s
Lint / Python deps (pip-audit) (push) Successful in 42s
2026-10-29 01:32:54 -04:00
jared
f2d8a12aa7
Merge pull request 'docs: the Discord bot login stays on @jared ' ( #49 ) from docs/discord-login-owner into main
Lint / Shell (shellcheck) (push) Successful in 15s
Lint / JS (eslint) (push) Successful in 12s
Lint / No secrets in webhook configs (push) Successful in 5s
Lint / Landing page is rendered (matrix (push) Successful in 5s
Lint / Python (ruff) (push) Successful in 5s
Lint / Python deps (pip-audit) (push) Successful in 1m53s
Lint / Secret scan (gitleaks) (push) Successful in 6s
2026-10-28 22:19:19 -04:00
jared
894dd5277e
Merge pull request 'discord-bridge: bot profile, down alert, login-owner account' ( #48 ) from discord-bridge-profile into main
Lint / JS (eslint) (push) Successful in 8s
Lint / Shell (shellcheck) (push) Successful in 8s
Lint / No secrets in webhook configs (push) Successful in 8s
Lint / Landing page is rendered (matrix (push) Successful in 8s
Lint / Python (ruff) (push) Successful in 15s
Lint / Secret scan (gitleaks) (push) Successful in 7s
Lint / Python deps (pip-audit) (push) Successful in 55s
2026-10-28 22:00:30 -04:00
jared
b8a088d2a6
Merge pull request 'discord-bridge: Matrix avatars on Discord, catch up missed messages' ( #47 ) from discord-bridge-avatars into main
Lint / Shell (shellcheck) (push) Successful in 11s
Lint / JS (eslint) (push) Successful in 11s
Lint / No secrets in webhook configs (push) Successful in 6s
Lint / Landing page is rendered (matrix (push) Successful in 5s
Lint / Python (ruff) (push) Successful in 7s
Lint / Secret scan (gitleaks) (push) Successful in 6s
Lint / Python deps (pip-audit) (push) Successful in 52s
2026-10-28 21:53:34 -04:00
jared
1e4922d6a3
Merge pull request 'docs: Discord bridge is live; linking notes' ( #46 ) from docs/discord-bridge-live into main
Lint / Shell (shellcheck) (push) Successful in 9s
Lint / JS (eslint) (push) Successful in 9s
Lint / Landing page is rendered (matrix (push) Successful in 5s
Lint / No secrets in webhook configs (push) Successful in 6s
Lint / Python (ruff) (push) Successful in 8s
Lint / Secret scan (gitleaks) (push) Successful in 6s
Lint / Python deps (pip-audit) (push) Successful in 47s
2026-10-28 21:48:00 -04:00
jared
7c10c9591e
Merge pull request 'Add mautrix-discord bridge config and installer' ( #44 ) from discord-bridge into main
Lint / JS (eslint) (push) Successful in 10s
Lint / Shell (shellcheck) (push) Successful in 12s
Lint / No secrets in webhook configs (push) Successful in 7s
Lint / Landing page is rendered (matrix (push) Successful in 6s
Lint / Python (ruff) (push) Successful in 17s
Lint / Secret scan (gitleaks) (push) Successful in 10s
Lint / Python deps (pip-audit) (push) Successful in 1m47s
2026-10-28 21:25:52 -04:00
jared
3ad2fef28e
Merge branch 'main' into discord-bridge
Lint / Shell (shellcheck) (push) Successful in 14s
Lint / JS (eslint) (push) Successful in 31s
Lint / No secrets in webhook configs (push) Successful in 7s
Lint / Landing page is rendered (matrix (push) Successful in 5s
Lint / Python (ruff) (push) Successful in 5s
Lint / Secret scan (gitleaks) (push) Successful in 7s
Lint / Shell (shellcheck) (pull_request) Successful in 10s
Lint / JS (eslint) (pull_request) Successful in 12s
Lint / No secrets in webhook configs (pull_request) Successful in 8s
Lint / Landing page is rendered (matrix (pull_request) Successful in 7s
Lint / Python (ruff) (pull_request) Successful in 7s
Lint / Python deps (pip-audit) (push) Successful in 1m19s
Lint / Secret scan (gitleaks) (pull_request) Successful in 10s
Lint / Python deps (pip-audit) (pull_request) Successful in 1m19s
2026-10-28 21:21:59 -04:00
jared
e16ce42785
Merge pull request 'ci(pip-audit): audit on Python 3.13 instead of ignoring filelock CVEs' ( #45 ) from ci/pip-audit-py313 into main
Lint / JS (eslint) (push) Successful in 10s
Lint / Shell (shellcheck) (push) Successful in 10s
Lint / Landing page is rendered (matrix (push) Successful in 6s
Lint / No secrets in webhook configs (push) Successful in 6s
Lint / Python (ruff) (push) Successful in 12s
Lint / Secret scan (gitleaks) (push) Successful in 14s
Lint / Python deps (pip-audit) (push) Successful in 1m31s
2026-10-28 21:21:37 -04:00
jared
3213f8c41b
Merge pull request 'docs: Synapse 1.164.1' ( #43 ) from docs/synapse-1.164.1 into main
Lint / JS (eslint) (push) Successful in 15s
Lint / Shell (shellcheck) (push) Successful in 15s
Lint / Landing page is rendered (matrix (push) Successful in 11s
Lint / No secrets in webhook configs (push) Successful in 13s
Lint / Python (ruff) (push) Successful in 12s
Lint / Secret scan (gitleaks) (push) Successful in 6s
Lint / Python deps (pip-audit) (push) Successful in 49s
2026-10-28 15:05:11 -04:00
jared
6b39bd931e
Merge pull request 'fix: explicit m.mentions for ticket notifications and roasts (ahead of Synapse 1.164)' ( #42 ) from fix/explicit-mentions into main
Lint / JS (eslint) (push) Successful in 10s
Lint / Shell (shellcheck) (push) Successful in 10s
Lint / Landing page is rendered (matrix (push) Successful in 5s
Lint / No secrets in webhook configs (push) Successful in 5s
Lint / Python (ruff) (push) Successful in 8s
Lint / Secret scan (gitleaks) (push) Successful in 6s
Lint / Python deps (pip-audit) (push) Successful in 42s
2026-10-27 20:06:14 -04:00
jared
54bdada04d
Merge pull request 'docs: Synapse 1.163.2 (Pillow 13 security update)' ( #41 ) from docs/synapse-1.163.2 into main
Lint / JS (eslint) (push) Successful in 14s
Lint / Shell (shellcheck) (push) Successful in 16s
Lint / No secrets in webhook configs (push) Successful in 11s
Lint / Landing page is rendered (matrix (push) Successful in 11s
Lint / Python (ruff) (push) Successful in 22s
Lint / Secret scan (gitleaks) (push) Successful in 9s
Lint / Python deps (pip-audit) (push) Successful in 50s
2026-10-26 19:30:06 -04:00
jared
2e6e8e72b8
Merge pull request 'fix(cinny-nginx): own rate budget for content-hashed app files' ( #40 ) from fix/asset-rate-limit into main
Lint / Shell (shellcheck) (push) Successful in 11s
Lint / JS (eslint) (push) Successful in 7s
Lint / No secrets in webhook configs (push) Successful in 4s
Lint / Landing page is rendered (matrix (push) Successful in 4s
Lint / Python (ruff) (push) Successful in 7s
Lint / Python deps (pip-audit) (push) Successful in 37s
Lint / Secret scan (gitleaks) (push) Successful in 5s
2026-10-24 17:39:18 -04:00