5103b74a9dMerge pull request 'feat(shard)!: Protocol 3.0 cutover — visibility framework, spawn atlas, marketplace' (#118) from edge into main
main
Colby Whitlock2026-08-01 07:19:31 +00:00
c91fd128bfMerge pull request 'fix(shard): answer with the instance name when the shard is unnamed' (#119) from fix/ruleset-shard-name into edgeColby Whitlock2026-08-01 06:04:19 +00:00
01a559792cfix(shard): answer with the instance name when the shard is unnamedwtclaude2026-08-01 00:58:21 -05:00
e50fab241fMerge pull request 'feat(shard)!: declare wire protocol 3' (#117) from chore/protocol-3-cutover into edgeColby Whitlock2026-07-30 03:02:20 +00:00
c6c0c257ddMerge pull request 'feat(shard): the player-vendor marketplace' (#116) from feat/vendor-listing into edgeColby Whitlock2026-07-29 20:03:22 +00:00
8771a1cf6cfeat(shard): the player-vendor marketplacewtclaude2026-07-29 09:51:50 -05:00
8da658f223Merge pull request 'feat(shard): resolve cliloc names for items and reward titles' (#115) from feat/cliloc-table into edgeColby Whitlock2026-07-29 11:58:54 +00:00
bda031566afeat(shard): read clilocs from a source SET so shard items get nameswtclaude2026-07-29 06:46:12 -05:00
b61a4d6721feat(shard): resolve cliloc names for items and reward titleswtclaude2026-07-29 04:21:38 -05:00
1e1a3d67c3Merge pull request 'feat(shard): ingest points.board and publish the leaderboards' (#114) from feat/points-board into edgeColby Whitlock2026-07-29 07:52:52 +00:00
26094459aefeat(shard): ingest points.board and publish the leaderboardswtclaude2026-07-28 21:04:44 -05:00
bfa1db58c4Merge pull request 'feat(atlas): serve the spawn atlas and give operators a panel for it' (#113) from feat/spawn-atlas-api into edgeColby Whitlock2026-07-29 00:53:21 +00:00
7c769ea8fdfeat(atlas): serve the spawn atlas and give operators a panel for itwtclaude2026-07-28 19:51:22 -05:00
f3d084e046Merge pull request 'feat(atlas): derive a spawn atlas from the shard tree on every boot' (#112) from feat/spawn-atlas-parse into edgeColby Whitlock2026-07-28 21:51:28 +00:00
a4ef9d676dMerge remote-tracking branch 'origin/edge' into feat/spawn-atlas-parseClaude2026-07-28 16:45:56 -05:00
2801ec8f4drefactor(atlas): derive the atlas from the shard's tree on every bootwtclaude2026-07-28 16:41:33 -05:00
353cce9f26feat(atlas): parse a ServUO tree into a committed spawn atlas artifactwtclaude2026-07-28 16:07:30 -05:00
7b98f1a778Merge pull request 'feat(shard): ingest world.ruleset and publish it at /site/rules' (#111) from feat/shard-ruleset into edgeColby Whitlock2026-07-28 20:50:35 +00:00
61d6bfaca2feat(shard): ingest world.ruleset and publish it at /site/ruleswtclaude2026-07-28 14:35:24 -05:00
6b1396dd2fMerge pull request 'fix(shard): enforce visibility on the REST reads that bypassed it' (#110) from fix/shard-visibility-rest-projection into edgeColby Whitlock2026-07-28 15:58:29 +00:00
f30ea66fcefix(shard): enforce visibility on the REST reads that bypassed itwtclaude2026-07-28 10:49:55 -05:00
cd56af3f12Merge pull request 'feat(shard): admin-configurable visibility for every shard surface' (#109) from feat/shard-visibility-framework into edgeColby Whitlock2026-07-28 15:08:12 +00:00
f3450686e0feat(shard): admin-configurable visibility for every shard surfacewtclaude2026-07-28 10:04:48 -05:00
a3407ae654Merge pull request 'feat(auth): honor and establish trusted devices on the SSO login paths' (#108) from feat/sso-trusted-device into mainColby Whitlock2026-07-28 06:12:57 +00:00
620781b7bcfeat(auth): honor and establish trusted devices on the SSO login pathswtclaude2026-07-28 01:01:12 -05:00
f6611231c4Merge pull request 'fix(shard): stop an undecryptable uo-link token 500ing every live-shard route' (#107) from fix/uolink-client-throw-and-sitemode-gate into mainColby Whitlock2026-07-28 05:33:33 +00:00
a6fd5659c4fix(shard): stop an undecryptable uo-link token 500ing every live-shard routewtclaude2026-07-28 00:22:40 -05:00
068844bfd9Merge pull request 'refactor(server): split public, player and residual auth into capability routers (PR 5)' (#106) from refactor/router-split-5 into mainColby Whitlock2026-07-28 02:04:57 +00:00
565a7d2c20refactor(server): split public, player and residual auth into capability routers (PR 5)wtclaude2026-07-27 20:52:14 -05:00
3fcc64ab96Merge pull request 'refactor(server): split admin shard, uo-link, email, discord-bot, settings and dashboard into capability routers (PR 4)' (#105) from refactor/admin-router-split-4 into mainColby Whitlock2026-07-28 01:33:45 +00:00
8fd0d82580refactor(server): split admin shard, uo-link, email, discord-bot, settings and dashboard into capability routerswtclaude2026-07-27 20:02:28 -05:00
812b895507Merge pull request 'refactor(server): split admin posts, uploads, wiki and pages into capability routers (PR 3)' (#104) from refactor/admin-router-split-3 into mainColby Whitlock2026-07-28 00:36:27 +00:00
00ad16858arefactor(server): split admin posts, uploads, wiki and pages into capability routerswtclaude2026-07-27 19:24:07 -05:00
493843241eMerge pull request 'refactor(server): split admin moderation, bot-activity and activity into capability routers (PR 2)' (#103) from refactor/admin-router-split-2 into mainColby Whitlock2026-07-28 00:12:02 +00:00
bd53a0b8a4refactor(server): split admin moderation, bot-activity and activity into capability routerswtclaude2026-07-27 18:53:15 -05:00
0e11e28ccaMerge pull request 'build(swagger): normalize and sort generated OpenAPI path keys' (#101) from build/swagger-normalize-paths into mainColby Whitlock2026-07-27 21:00:57 +00:00
f7c98b8ba3Merge pull request 'refactor(server): split admin users, account, invites and auth providers into capability routers' (#102) from refactor/admin-router-split-1 into build/swagger-normalize-pathsColby Whitlock2026-07-27 21:00:03 +00:00
8ad892725frefactor(server): split admin users, account, invites and auth providers into capability routerswtclaude2026-07-27 15:54:00 -05:00
1a61cd1638build(swagger): normalize and sort generated OpenAPI path keyswtclaude2026-07-27 15:49:31 -05:00
0dc5af0d8bMerge pull request 'feat(security): soak the tightened CSP on report-only, with a same-origin sink' (#100) from feature/csp-report-only into mainColby Whitlock2026-07-27 20:31:31 +00:00
9b74999610feat(security): soak the tightened CSP on report-only, with a same-origin sinkwtclaude2026-07-27 15:19:26 -05:00
49b70ee04dMerge pull request 'chore(server): freeze the URL surface with a generated route manifest (PR 0)' (#99) from chore/route-manifest into mainColby Whitlock2026-07-27 20:07:29 +00:00
1079b3fc05chore(server): freeze the URL surface with a generated route manifestwtclaude2026-07-27 14:55:38 -05:00
cbe54fcc91Merge pull request 'ci(docs): auto-sync PROJECT_TREE.md to the docs repo on push to main' (#98) from chore/sync-project-tree-ci into mainColby Whitlock2026-07-22 21:31:48 +00:00
9f9bcc6f6eci(docs): auto-sync PROJECT_TREE.md to the docs repo on push to mainwtclaude2026-07-22 16:21:22 -05:00
ebfae765d9Merge pull request 'fix(moderation): windowValue must not fall back to the 30d total on a null column' (#97) from fix/window-value-null-column into mainColby Whitlock2026-07-22 18:15:46 +00:00
c075ab981cfix(moderation): windowValue must not fall back to the 30d total on a null columnwtclaude2026-07-22 13:14:02 -05:00
bcdba4ce0aMerge pull request 'fix(admin): restore digit match in discordId route validation' (#96) from fix/discord-id-validation-regex into mainColby Whitlock2026-07-22 18:11:42 +00:00
e08c0c9736fix(admin): restore digit match in discordId route validationwtclaude2026-07-22 13:01:12 -05:00
5fe7032567Merge pull request 'fix(ntfy): publish ntfy host port so the external reverse proxy can reach it' (#95) from fix/ntfy-published-port into mainColby Whitlock2026-07-22 09:08:13 +00:00
4151f7d44efix(ntfy): publish ntfy host port so the external reverse proxy can reach itwtclaude2026-07-22 03:57:32 -05:00
4f1a4902e8Merge pull request 'fix(player): open the player self-service surface to staff' (#94) from fix/staff-player-self-service into mainColby Whitlock2026-07-22 08:36:13 +00:00
14dfc122bafix(player): open the player self-service surface to staffwtclaude2026-07-22 02:17:29 -05:00
514bc9d23cMerge pull request 'feat(auth): trusted devices, recovery codes, and admin MFA management' (#93) from feature/trusted-devices-mfa into mainColby Whitlock2026-07-22 05:09:04 +00:00
4c13706958Merge pull request 'chore(dev): stub OAuth IdP tooling for local mobile SSO testing' (#91) from feat/m10-native-sso-fix into mainColby Whitlock2026-07-21 21:42:57 +00:00
2306545574chore(dev): add viewport meta to the stub IdP picker pagewtclaude2026-07-21 16:28:46 -05:00
1edef8e6dbMerge pull request 'fix(footer): point Shard Status link to /site/shard' (#90) from fix/footer-shard-status-link into mainColby Whitlock2026-07-21 19:10:48 +00:00
dc90df9ffffix(footer): point Shard Status link to /site/shardwtclaude2026-07-21 14:09:47 -05:00
68126efc0bMerge pull request 'refactor(server): dedupe shard-state shaping, upsert builder, and config DB models' (#89) from refactor/dedupe-shardstate-config-db into mainColby Whitlock2026-07-21 17:49:31 +00:00
401db8f75crefactor(server): dedupe shard-state shaping, upsert builder, and config DB modelswtclaude2026-07-21 12:35:39 -05:00
9b0f2d93d8Merge pull request 'chore(quality): resolve SonarQube code smells across website' (#88) from chore/sonar-code-smells into mainColby Whitlock2026-07-21 14:27:56 +00:00
12d50fd615chore(quality): resolve SonarQube code smells across websitewtclaude2026-07-21 04:35:39 -05:00
4993470fa2Merge pull request 'ci(sonarqube): populate the "Unit Tests" measure via a test-execution report' (#87) from ci/sonar-test-execution-report into mainColby Whitlock2026-07-21 06:26:40 +00:00
2f3e8f7df5ci(sonarqube): report test execution so the Unit Tests measure populateswtclaude2026-07-21 01:12:51 -05:00
68a4e9295bMerge pull request 'test: meaningful unit tests for server models/controllers + client logic' (#86) from test/coverage-meaningful-gaps into mainColby Whitlock2026-07-21 05:55:46 +00:00
886a504152test(client): unit-test the pure-logic modules + wire coverage into CI/Sonarwtclaude2026-07-21 00:38:53 -05:00
35e5269ec5test(server): unit-test auth, invite, password-reset, and public controllerswtclaude2026-07-21 00:33:01 -05:00
99fd9acddbtest(server): unit-test pages, shardState, and moderation model logicwtclaude2026-07-21 00:26:01 -05:00
b474303052Merge pull request 'ci(sonarqube): generate and report server test coverage' (#85) from ci/sonar-test-coverage into mainColby Whitlock2026-07-21 04:57:06 +00:00
e515fc0c9dci(sonarqube): generate and report server test coveragewtclaude2026-07-20 23:46:44 -05:00
c73273f1bcMerge pull request 'fix(security): add SPA CSP, drop x-powered-by, strengthen dedupe hash' (#84) from fix/security-headers-csp into mainColby Whitlock2026-07-21 04:13:41 +00:00
82bf2c972cMerge pull request 'ci(sonarqube): non-blocking SonarQube analysis on push to main' (#83) from ci/sonarqube-analysis into mainColby Whitlock2026-07-21 02:54:14 +00:00
c54bb54834ci(sonarqube): add non-blocking SonarQube analysis on push to mainwtclaude2026-07-20 21:43:00 -05:00
86420661b5Merge pull request 'fix(db): strip inline -- comments before splitting schema statements' (#82) from fix/schema-loader-inline-comment-split into mainColby Whitlock2026-07-21 00:31:13 +00:00
d37c3a46a9Merge pull request 'feat(auth): native SSO authorization bridge for the Android app (M9 Part 1)' (#80) from feature/mobile-sso-bridge into mainColby Whitlock2026-07-20 22:27:22 +00:00
e3dd5358b6feat(auth): Active Devices — view/revoke mobile sessionswtclaude2026-07-20 17:01:47 -05:00
61f4591a6bfeat(auth): native SSO authorization bridge for the Android appwtclaude2026-07-20 16:55:06 -05:00
31b72859ceMerge pull request 'feat(settings): surface push.ntfyUrl in /public/settings for the app' (#79) from feat/settings-push-ntfy-url into mainColby Whitlock2026-07-20 20:55:56 +00:00
a789ee3ac9feat(settings): surface push.ntfyUrl in /public/settings for the appwtclaude2026-07-20 15:25:40 -05:00
4fa73d3ccfMerge pull request 'feat(push): M7 backend — opt-in push notifications via self-hosted ntfy' (#78) from feat/push-notifications-backend into mainColby Whitlock2026-07-20 15:27:59 +00:00