2026-02-03 - 2026-08-03

Overview

101 Active Pull Requests
18 Active Issues
Excluding merges, 1 author has pushed 1 commit to main and 150 commits to all branches. On main, 41 files have changed and there have been 4195 additions and 0 deletions.

101 Pull requests merged by 2 users

Merged #118 feat(shard)!: Protocol 3.0 cutover — visibility framework, spawn atlas, marketplace 2026-08-01 07:19:35 +00:00

Merged #119 fix(shard): answer with the instance name when the shard is unnamed 2026-08-01 06:04:23 +00:00

Merged #117 feat(shard)!: declare wire protocol 3 2026-07-30 03:02:26 +00:00

Merged #116 feat(shard): the player-vendor marketplace 2026-07-29 20:03:24 +00:00

Merged #115 feat(shard): resolve cliloc names for items and reward titles 2026-07-29 11:58:56 +00:00

Merged #114 feat(shard): ingest points.board and publish the leaderboards 2026-07-29 07:52:54 +00:00

Merged #113 feat(atlas): serve the spawn atlas and give operators a panel for it 2026-07-29 00:53:23 +00:00

Merged #112 feat(atlas): derive a spawn atlas from the shard tree on every boot 2026-07-28 21:51:30 +00:00

Merged #111 feat(shard): ingest world.ruleset and publish it at /site/rules 2026-07-28 20:50:37 +00:00

Merged #110 fix(shard): enforce visibility on the REST reads that bypassed it 2026-07-28 15:58:31 +00:00

Merged #109 feat(shard): admin-configurable visibility for every shard surface 2026-07-28 15:08:14 +00:00

Merged #108 feat(auth): honor and establish trusted devices on the SSO login paths 2026-07-28 06:13:00 +00:00

Merged #107 fix(shard): stop an undecryptable uo-link token 500ing every live-shard route 2026-07-28 05:33:35 +00:00

Merged #106 refactor(server): split public, player and residual auth into capability routers (PR 5) 2026-07-28 02:04:59 +00:00

Merged #105 refactor(server): split admin shard, uo-link, email, discord-bot, settings and dashboard into capability routers (PR 4) 2026-07-28 01:33:48 +00:00

Merged #104 refactor(server): split admin posts, uploads, wiki and pages into capability routers (PR 3) 2026-07-28 00:36:29 +00:00

Merged #103 refactor(server): split admin moderation, bot-activity and activity into capability routers (PR 2) 2026-07-28 00:12:04 +00:00

Merged #101 build(swagger): normalize and sort generated OpenAPI path keys 2026-07-27 21:00:59 +00:00

Merged #102 refactor(server): split admin users, account, invites and auth providers into capability routers 2026-07-27 21:00:07 +00:00

Merged #100 feat(security): soak the tightened CSP on report-only, with a same-origin sink 2026-07-27 20:31:33 +00:00

Merged #99 chore(server): freeze the URL surface with a generated route manifest (PR 0) 2026-07-27 20:07:32 +00:00

Merged #98 ci(docs): auto-sync PROJECT_TREE.md to the docs repo on push to main 2026-07-22 21:31:50 +00:00

Merged #97 fix(moderation): windowValue must not fall back to the 30d total on a null column 2026-07-22 18:15:48 +00:00

Merged #96 fix(admin): restore digit match in discordId route validation 2026-07-22 18:11:44 +00:00

Merged #95 fix(ntfy): publish ntfy host port so the external reverse proxy can reach it 2026-07-22 09:08:15 +00:00

Merged #94 fix(player): open the player self-service surface to staff 2026-07-22 08:36:15 +00:00

Merged #93 feat(auth): trusted devices, recovery codes, and admin MFA management 2026-07-22 05:09:06 +00:00

Merged #92 docs(readme): add architecture mermaid diagram 2026-07-22 02:17:19 +00:00

Merged #91 chore(dev): stub OAuth IdP tooling for local mobile SSO testing 2026-07-21 21:43:01 +00:00

Merged #90 fix(footer): point Shard Status link to /site/shard 2026-07-21 19:10:50 +00:00

Merged #89 refactor(server): dedupe shard-state shaping, upsert builder, and config DB models 2026-07-21 17:49:33 +00:00

Merged #88 chore(quality): resolve SonarQube code smells across website 2026-07-21 14:28:00 +00:00

Merged #87 ci(sonarqube): populate the "Unit Tests" measure via a test-execution report 2026-07-21 06:26:43 +00:00

Merged #86 test: meaningful unit tests for server models/controllers + client logic 2026-07-21 05:55:49 +00:00

Merged #85 ci(sonarqube): generate and report server test coverage 2026-07-21 04:57:08 +00:00

Merged #84 fix(security): add SPA CSP, drop x-powered-by, strengthen dedupe hash 2026-07-21 04:13:43 +00:00

Merged #83 ci(sonarqube): non-blocking SonarQube analysis on push to main 2026-07-21 02:54:16 +00:00

Merged #82 fix(db): strip inline -- comments before splitting schema statements 2026-07-21 00:31:15 +00:00

Merged #81 feat(mobile-sso): serve assetlinks.json + App Links redirect allowlist 2026-07-20 23:57:55 +00:00

Merged #80 feat(auth): native SSO authorization bridge for the Android app (M9 Part 1) 2026-07-20 22:27:24 +00:00

Merged #79 feat(settings): surface push.ntfyUrl in /public/settings for the app 2026-07-20 20:55:58 +00:00

Merged #78 feat(push): M7 backend — opt-in push notifications via self-hosted ntfy 2026-07-20 15:28:01 +00:00

Merged #77 feat(public): version/health surfacing + typed brand block 2026-07-19 17:38:22 +00:00

Merged #76 feat(auth): role-agnostic self-service surface under /auth/me 2026-07-19 16:34:42 +00:00

Merged #75 feat(auth): self-service password reset (backend + web) 2026-07-19 09:36:37 +00:00

Merged #74 Moderation appeals (Phase 6c) + Discord auto-reversal (Phase 6d) 2026-07-19 05:18:20 +00:00

Merged #73 docs: generalize deployment section to any reverse proxy 2026-07-19 03:20:03 +00:00

Merged #72 fix(shard): restrict staff in-game location to admins/moderators 2026-07-19 02:39:25 +00:00

Merged #71 chore: add open-source governance files (GPLv3 + contributing docs) 2026-07-19 00:31:05 +00:00

Merged #70 fix(brand): link "Runic Gateway" footer badge to Gitea org 2026-07-18 23:36:48 +00:00

Merged #69 feat(brand): default emblem — favicon, hero medallion, footer credit 2026-07-18 22:20:29 +00:00

Merged #68 feat(brand): BRAND_* env scheme — instance branding without a rebuild 2026-07-18 07:40:07 +00:00

Merged #67 docs: move design docs to RunicGateway/docs 2026-07-18 05:51:32 +00:00

Merged #66 chore(org): retarget org paths to RunicGateway 2026-07-18 05:06:46 +00:00

Merged #65 Protocol 2.0/2.1 uo-link integration — boards, cross-links, news gump, account provisioning 2026-07-18 02:34:27 +00:00

Merged #64 ci(deploy): correct deploy runner label to uom-deploy-runner 2026-07-17 10:52:02 +00:00

Merged #63 ci(deploy): auto-deploy prod stack after image build on merge to main 2026-07-17 10:29:06 +00:00

Merged #62 fix(bot): retry boot-time config fetch so bot self-heals on cold start 2026-07-15 19:17:25 +00:00

Merged #61 fix(public): always show real hero + drop nav from landing page 2026-07-15 11:03:53 +00:00

Merged #58 feat(shard): admin write plane, help-page queue, and public champion board 2026-07-14 18:46:52 +00:00

Merged #57 ci: gate PRs into main on server tests + client build 2026-07-12 15:40:19 +00:00

Merged #56 feat(admin): view a user's shard footprint at /admin/users/:id 2026-07-12 14:42:01 +00:00

Merged #55 deploy: split build into docker-compose.dev.yml (prod compose pulls only) 2026-07-11 23:45:42 +00:00

Merged #54 deploy: pull prebuilt registry images in compose (IMAGE_TAG) + dev/prod split 2026-07-11 23:36:57 +00:00

Merged #53 ci: build & publish app + bot images to Gitea registry on merge 2026-07-11 23:01:05 +00:00

Merged #52 News post → town crier + Discord announcement pipeline 2026-07-11 21:58:34 +00:00

Merged #51 Homepage teaser: rich text editor 2026-07-11 16:09:53 +00:00

Merged #50 Frontend theme redo: player portal → Admin sidebar shell + stat-tile My Characters 2026-07-11 16:00:18 +00:00

Merged #49 uo-link: staff-only public presence + admin character access 2026-07-11 14:32:50 +00:00

Merged #47 CMS Page Builder (Wave 1): block-based Pages content type 2026-07-10 02:15:06 +00:00

Merged #46 Modernize email: Gmail OAuth2 sending + admin sidebar redesign 2026-07-08 03:33:44 +00:00

Merged #45 Redesign admin/staff sidebar: collapsible categories, icons, role-accurate nav 2026-07-08 02:56:18 +00:00

Merged #44 Gate /admin to staff roles; role-aware login redirects for players 2026-07-07 01:02:54 +00:00

Merged #43 Player accounts: self-service player role, registration, and portal 2026-07-06 20:29:45 +00:00

Merged #42 Moderation dashboard: staff dashboard, user history, notes, event capture (Phase 6a + 6b) 2026-07-05 20:51:40 +00:00

Merged #41 Fix bot container inheriting site PORT/LOG_FILE from shared .env 2026-07-05 05:40:31 +00:00

Merged #40 Audit and fix Swagger/OpenAPI accuracy; regenerate served spec 2026-07-05 04:33:38 +00:00

Merged #39 Enforce TOTP second factor on SSO login (#31) 2026-07-05 03:34:51 +00:00

Merged #38 Fix SSO flow-token / session type confusion (#32) 2026-07-05 02:56:33 +00:00

Merged #37 Implement web session/token revocation (#30) 2026-07-05 02:08:17 +00:00

Merged #36 Isolate internal bot-config route from the public listener (#33) 2026-07-04 22:50:08 +00:00

Merged #29 Add Discord bot: moderation, filters, scheduling, roles, invites, site integration 2026-07-04 21:19:43 +00:00

Merged #28 Hero editor: fullscreen landing, remove two-card row, quick links into hero 2026-07-04 02:55:52 +00:00

Merged #27 Add Swagger/OpenAPI API docs (swagger-ui + swagger-autogen) 2026-07-03 20:30:16 +00:00

Merged #26 Hero editor: scale text-block fonts with the resize handle (#25) 2026-07-03 20:01:52 +00:00

Merged #24 Add session abstraction, mobile bearer auth, and pluggable SSO (Google/Discord/OIDC) 2026-07-03 15:35:46 +00:00

Merged #23 Add Bot Activity admin panel: banned-IP view + recent events + emergency unban 2026-07-03 08:29:56 +00:00

Merged #22 Update README for today's security hardening and 2FA work 2026-07-03 06:09:56 +00:00

Merged #21 Fail fast when JWT_SECRET is missing in production (closes #14) 2026-07-03 05:58:18 +00:00

Merged #20 Make the hero Moon image configurable (src/alt), backwards-compatible 2026-07-03 04:45:26 +00:00

Merged #19 Admin login hardening: RBAC-safe controls, optional TOTP, bot-scoring + IP ban (closes #9) 2026-07-03 04:27:52 +00:00

Merged #18 Derive uploaded file extension from mimetype, not originalname (fixes #11) 2026-07-03 02:44:30 +00:00

Merged #17 Validate and uniqueness-check username on user update (fixes #13) 2026-07-03 02:39:44 +00:00

Merged #16 Re-validate JWT against the DB in isLoggedIn (fixes #12) 2026-07-03 02:32:08 +00:00

Merged #15 Enforce role-based authorization on admin-only routes (fixes #10) 2026-07-03 02:31:09 +00:00

Merged #8 Fix #6: larger RTE toolbar buttons + bigger, both-axis-scrolling editor 2026-06-30 18:49:24 +00:00

Merged #7 RTE Posts upgrade: TipTap rich-text editing + sanitization for posts 2026-06-30 18:34:04 +00:00

Merged #4 hero-feature 2026-06-28 14:22:43 +00:00

Merged #3 Wiki upgrade: rich-text editing, categories, drafts, links/backlinks, tags, search, revisions 2026-06-27 21:22:48 +00:00

Merged #2 Document full-stack setup; fix dev proxy; drop stray temp script 2026-06-27 07:24:26 +00:00

Merged #1 Frontend update 2026-06-27 02:55:48 +00:00

15 Issues closed from 3 users

Closed #59 hero page layout 2026-07-17 09:45:05 +00:00

Closed #48 Homepage Teaser 2026-07-11 16:09:54 +00:00

Closed #31 [SECURITY AUDIT] SSO login bypasses TOTP two-factor for accounts that have 2FA enabled 2026-07-05 03:34:52 +00:00

Closed #32 [SECURITY AUDIT] SSO flow token (sso_tx) validates as a session — token-type confusion in sessionFromDecoded 2026-07-05 02:56:34 +00:00

Closed #30 [SECURITY AUDIT] Session/token revocation is a non-functional stub — logout and password change do not invalidate existing JWTs 2026-07-05 02:08:18 +00:00

Closed #33 [SECURITY AUDIT] Decrypted Discord bot token served from an endpoint on the public API router, guarded only by a shared secret 2026-07-04 22:50:08 +00:00

Closed #25 On the front page/hero page 2026-07-03 20:01:52 +00:00

Closed #14 [Bug][Medium] Server boots with no JWT_SECRET (only a warning) 2026-07-03 05:58:18 +00:00

Closed #5 Hero button bug 2026-07-03 04:45:27 +00:00

Closed #9 Admin path security 2026-07-03 04:27:53 +00:00

Closed #11 [Security][High] Uploaded file extension is attacker-controlled → stored XSS 2026-07-03 02:44:30 +00:00

Closed #13 [Bug][Medium] username unvalidated and not uniqueness-checked on user update 2026-07-03 02:39:44 +00:00

Closed #12 [Security][Medium] Stale JWT: demoted/deleted users keep access until token expiry 2026-07-03 02:32:09 +00:00

Closed #10 [Security][High] No role-based authorization — editor role is never enforced 2026-07-03 02:31:09 +00:00

Closed #6 wiki editor. 2026-06-30 18:49:24 +00:00

18 Issues created by 2 users

Opened #5 Hero button bug 2026-06-29 23:21:13 +00:00

Opened #6 wiki editor. 2026-06-29 23:24:02 +00:00

Opened #9 Admin path security 2026-07-01 04:17:54 +00:00

Opened #10 [Security][High] No role-based authorization — editor role is never enforced 2026-07-02 01:20:44 +00:00

Opened #11 [Security][High] Uploaded file extension is attacker-controlled → stored XSS 2026-07-02 01:20:45 +00:00

Opened #12 [Security][Medium] Stale JWT: demoted/deleted users keep access until token expiry 2026-07-02 01:20:45 +00:00

Opened #13 [Bug][Medium] username unvalidated and not uniqueness-checked on user update 2026-07-02 01:20:46 +00:00

Opened #14 [Bug][Medium] Server boots with no JWT_SECRET (only a warning) 2026-07-02 01:20:46 +00:00

Opened #25 On the front page/hero page 2026-07-03 16:21:29 +00:00

Opened #30 [SECURITY AUDIT] Session/token revocation is a non-functional stub — logout and password change do not invalidate existing JWTs 2026-07-04 22:00:33 +00:00

Opened #31 [SECURITY AUDIT] SSO login bypasses TOTP two-factor for accounts that have 2FA enabled 2026-07-04 22:00:49 +00:00

Opened #32 [SECURITY AUDIT] SSO flow token (sso_tx) validates as a session — token-type confusion in sessionFromDecoded 2026-07-04 22:01:08 +00:00

Opened #33 [SECURITY AUDIT] Decrypted Discord bot token served from an endpoint on the public API router, guarded only by a shared secret 2026-07-04 22:01:30 +00:00

Opened #34 [SECURITY AUDIT] No Content-Security-Policy — stored-HTML XSS defense rests entirely on sanitization 2026-07-04 22:01:47 +00:00

Opened #35 [SECURITY AUDIT] Username enumeration via login timing side-channel (bcrypt runs only for existing users) 2026-07-04 22:02:02 +00:00

Opened #48 Homepage Teaser 2026-07-11 07:28:10 +00:00

Opened #59 hero page layout 2026-07-14 21:00:38 +00:00

Opened #60 side ways scrolling section on hero page. 2026-07-14 21:26:45 +00:00