13312d7fc3fix(teams): make "replace the whole set" actually replace itwtclaude2026-08-18 18:01:59 -05:00
5fa88baa0atest(teams): the refusals, which is most of what a notification feature iswtclaude2026-08-18 14:35:23 -05:00
b458c1f46ffeat(teams): the web surface — a notifications screen that did not existwtclaude2026-08-18 14:35:08 -05:00
2a56cbf22afeat(teams): fire the four events, and the routes that configure themwtclaude2026-08-18 14:34:54 -05:00
686a214979feat(teams): email as the third sink, with a digest that keeps no queuewtclaude2026-08-18 14:34:38 -05:00
26c23bd603feat(teams): the notification core — four streams, and a recipient setwtclaude2026-08-18 14:34:24 -05:00
0467c71ea1Merge pull request 'feat(teams): phase 5 — Forum 5b, discussion + moderation + reports' (#155) from feature/teams-phase5-discussion into edgeColby Whitlock2026-08-18 18:36:50 +00:00
c970caee16fix(teams): let a post-moderation mistake reach the model that explains itwtclaude2026-08-18 13:25:21 -05:00
3f7e61af1cfeat(teams): the phase 5 surface — discussion, replies, reports, and two admin screenswtclaude2026-08-18 13:08:59 -05:00
128de0ff2etest(teams): phase 5's server surface, and the negative property under itwtclaude2026-08-18 12:58:15 -05:00
fff14848f1feat(moderation): member-raised abuse reports, to site staff onlywtclaude2026-08-18 12:51:42 -05:00
ae0d27cf27feat(teams): discussion threads, replies, the edit window and post moderationwtclaude2026-08-18 10:43:09 -05:00
763de66ebbMerge pull request 'fix(teams): four defects the live rig found in the phase 4 forum' (#154) from fix/teams-phase4-live-rig into edgeColby Whitlock2026-08-18 15:21:55 +00:00
5baada08effix(teams): four defects the live rig found in the forumwtclaude2026-08-18 09:54:05 -05:00
16e31de087Merge pull request 'feat(teams): phase 4 — the forum access model, announcements and the operator's controls' (#153) from feature/teams-phase4-forum-access into edgeColby Whitlock2026-08-18 14:18:08 +00:00
57286594e7test(teams): the four acceptance criteria, and regenerate the API artifactswtclaude2026-08-18 07:24:24 -05:00
cbb7339a3afeat(teams): the forum panel core fills, and the operator's controlswtclaude2026-08-18 07:24:24 -05:00
4ac353684afeat(teams): harden the upload path for an uploader who is not an adminwtclaude2026-08-18 07:24:02 -05:00
e27c368234feat(teams): the grant flow, announcements, and the routes behind both guardswtclaude2026-08-18 07:23:47 -05:00
fb70013adffeat(teams): the forum's own HTML profile, and core's image rendererwtclaude2026-08-18 07:23:32 -05:00
11fd9821bffeat(teams): the forum schema, the operator's two switches, and the ack gatewtclaude2026-08-18 07:23:15 -05:00
7ed2ac9983Merge pull request 'feat(teams): the activity feed, the roster projection, and the inverted slot' (#152) from feat/teams-phase3-pages-activity into edgeColby Whitlock2026-08-18 02:11:06 +00:00
5d9d10b245refactor(teams)!: Teams is a contract, not a surface — invert the slotswtclaude2026-08-17 20:58:07 -05:00
203ce9c654chore(teams): regenerate the OpenAPI spec and the route manifestswtclaude2026-08-17 20:16:04 -05:00
8f4aff6946feat(teams): the public Team pages, the two slots and the nav flagwtclaude2026-08-17 20:15:54 -05:00
03631d7d40feat(teams): the roster's audience projection, and optionalAuth to resolve itwtclaude2026-08-17 20:15:36 -05:00
aa332eda82feat(teams): the activity feed, its two writers and its retentionwtclaude2026-08-17 20:15:18 -05:00
1f175786a7Merge pull request 'feat(teams): Team core — the reconciler, the four authority paths, and the impersonation controls' (#151) from feat/teams-phase2-team-core into edgeColby Whitlock2026-08-17 22:20:31 +00:00
cf2666e5bcfeat(teams): the Team read API, the moderation routes, and Admin -> Teamswtclaude2026-08-17 15:27:02 -05:00
8fe2e01466feat(teams): reserved-name screening, auto-hide, and the admin-approval gatewtclaude2026-08-17 15:08:58 -05:00
bfd844e8fbfeat(teams): the four-path access resolver and staff leadership overrideswtclaude2026-08-17 14:57:23 -05:00
92631347f9feat(teams): the reconciler, its four refusal gates, and ctx.teams (API 1.6.0)wtclaude2026-08-17 14:53:52 -05:00
8b63ffc725feat(modules): registerTeamProvider, and a call path that cannot answer "empty"wtclaude2026-08-17 14:44:45 -05:00
225663d62efeat(teams): core schema for Teams, membership, sync state and moderationwtclaude2026-08-17 14:40:26 -05:00
e0c961c690Merge pull request 'feat(modules)!: the module system cutover — a game-agnostic core reaches main' (#150) from edge into mainColby Whitlock2026-08-12 23:10:29 +00:00
3669696532Merge pull request 'chore(modules): declare the UO module for the UOMysticmoon instance' (#149) from chore/declare-uo-module-for-uomm into edgeColby Whitlock2026-08-12 22:57:42 +00:00
953d0c25f6chore(modules): declare the UO module for the UOMysticmoon instancewtclaude2026-08-12 17:56:52 -05:00
4ad8b2bb0eMerge pull request 'feat(modules): PublicLayout takes a shell, MODULE_API_VERSION 1.5.0' (#148) from fix/public-layout-shell into edgeColby Whitlock2026-08-12 19:26:42 +00:00
1433b60d6cfeat(modules): PublicLayout takes a shell, MODULE_API_VERSION 1.5.0wtclaude2026-08-12 14:23:26 -05:00
1b692bf624Merge pull request 'chore(modules): bump MODULE_API_VERSION to 1.4.0 — the sidecar rule' (#147) from chore/module-api-1.4.0 into edgeColby Whitlock2026-08-12 14:41:26 +00:00
5410e7e0b3chore(modules): bump MODULE_API_VERSION to 1.4.0 — the sidecar rulewtclaude2026-08-12 09:37:47 -05:00
c3120ea3daMerge pull request 'fix(modules): stop a module before purging its tables' (#146) from fix/module-uninstall-stop-before-purge into edgeColby Whitlock2026-08-12 14:18:47 +00:00
a4da1cc438fix(modules): stop a module before purging its tableswtclaude2026-08-12 09:05:21 -05:00
12df79430fMerge pull request 'test(login): stop the backoff-guard test racing its own one-second lock' (#145) from fix/login-backoff-flake into edgeColby Whitlock2026-08-12 13:39:50 +00:00
ec2b530be7test(login): stop the backoff-guard test racing its own one-second lockwtclaude2026-08-12 08:04:56 -05:00
7a236cad8bMerge pull request 'refactor(modules)!: move the UO server half out to module-uo (phase 3, slice 1)' (#137) from feature/module-extract-server into edgeColby Whitlock2026-08-11 21:06:23 +00:00
f5e6025dcctest: re-point core's suite at what core still ownswtclaude2026-08-11 12:08:26 -05:00
39d731d87arefactor(modules)!: move the UO server half out to module-uowtclaude2026-08-11 12:08:03 -05:00
f50541f374feat(modules): ctx additions and the post-hook registry (API 1.1.0)wtclaude2026-08-11 12:07:45 -05:00
b649345484Merge pull request 'feat(modules): mount the modules directory as a volume (phase 2, PR 9)' (#136) from feature/module-compose-volume into edgeColby Whitlock2026-08-11 05:58:18 +00:00
a103e0ce10feat(modules): mount the modules directory as a volume (phase 2, PR 9)wtclaude2026-08-11 00:48:48 -05:00
0a3f1eb9faMerge pull request 'feat(modules): interleave module nav items and derive moderator confinement (phase 2, PR 8)' (#135) from feature/module-nav-interleave into edgeColby Whitlock2026-08-11 05:29:40 +00:00
a45a3d120afeat(modules): interleave module nav, derive moderator confinementwtclaude2026-08-10 23:42:02 -05:00
e3c999b704Merge pull request 'feat(modules): the client registry, window.__rg and the chunk's script injection' (#134) from feature/module-client-registry into edgeColby Whitlock2026-08-11 04:01:59 +00:00
e0927bc255feat(modules): the client registry, window.__rg and the chunk's script injectionwtclaude2026-08-10 22:54:16 -05:00
fe83c91ba9Merge pull request 'feat(modules): publish the installed-module list at /api/v1/public/modules' (#133) from feature/module-public-endpoint into edgeColby Whitlock2026-08-11 03:16:49 +00:00
291c30f6fffeat(modules): publish the installed-module list at /api/v1/public/moduleswtclaude2026-08-10 22:03:22 -05:00
85f563fc16Merge pull request 'feat(modules): boot/shutdown hook dispatch and the installed_modules reconcile' (#132) from feature/module-lifecycle into edgeColby Whitlock2026-08-11 02:34:46 +00:00
32ed8e4411fix(test): stop the suite reaching a real database, and make it exitwtclaude2026-08-10 21:27:47 -05:00
21196466edfeat(modules): boot/shutdown hook dispatch and the installed_modules reconcilewtclaude2026-08-10 20:32:00 -05:00
39eaae90a8Merge pull request 'feat(modules): the three de-entanglement registries, with core as the registrant' (#131) from feature/module-registries into edgeColby Whitlock2026-08-10 23:18:57 +00:00
97f19b4221docs(modules): note that registerExtension's spec-file argument is core-onlywtclaude2026-08-10 17:53:59 -05:00
6195c76d61feat(modules): the three de-entanglement registries, with core as the registrantwtclaude2026-08-10 17:47:59 -05:00
bd749d4f1fMerge pull request 'feat(modules): replay module schema fragments after core's (phase 2, PR 3)' (#130) from feat/modules-schema into edgeColby Whitlock2026-08-10 22:06:44 +00:00
2892d01b24feat(modules): replay module schema fragments after core'swtclaude2026-08-10 16:56:58 -05:00
7780fb033bMerge pull request 'feat(modules): the filesystem module loader (phase 2, PR 2)' (#129) from feat/modules-loader into edgeColby Whitlock2026-08-10 21:31:24 +00:00
ec1ca7e794feat(modules): the filesystem module loaderwtclaude2026-08-10 14:35:27 -05:00
dcf6ef1886Merge pull request 'feat(modules): installed_modules and the module state machine (phase 2, PR 1)' (#128) from feat/modules-state into edgeColby Whitlock2026-08-10 19:04:58 +00:00
3add0063bffeat(modules): installed_modules and the module state machinewtclaude2026-08-10 06:35:22 -05:00
f1dda8fe66Merge pull request 'ci: run PR checks on pull requests into edge as well as main' (#127) from ci/pr-checks-on-edge into mainColby Whitlock2026-08-10 07:42:15 +00:00
4691fd6633ci: run PR checks on pull requests into edge as well as mainwtclaude2026-08-10 02:31:43 -05:00
265042eaa5Merge pull request 'feat(theming): admin-configurable theme, brand assets and navigation (edge → main)' (#126) from edge into mainColby Whitlock2026-08-08 06:19:34 +00:00
18815f4c7aMerge pull request 'feat(theming): dropdown sections and added links in the public header (phase 10)' (#125) from feat/theming-nav-phase-10 into edgeColby Whitlock2026-08-08 06:07:15 +00:00
15cefe5ea1fix(theme): state .pill's line-height so a button pill matches a link pillwtclaude2026-08-08 00:56:50 -05:00
b517d7b2dffeat(theming): dropdown sections and added links in the public headerwtclaude2026-08-08 00:42:19 -05:00
78f994955cMerge pull request 'feat(theming): nav wiring and the admin nav builder (phases 6-8)' (#124) from feat/theming-nav-phase-6-8 into edgeColby Whitlock2026-08-08 05:11:33 +00:00
32a3ff104afeat(theming): wire the three navs and add the admin nav builderwtclaude2026-08-08 00:02:33 -05:00
42a403ad2eMerge pull request 'feat(theming): brand-asset overrides and a cached, settings-aware HTML shell (phase 5)' (#123) from feat/theming-nav-phase-5 into edgeColby Whitlock2026-08-08 02:12:46 +00:00
847cfd2d2bfeat(theming): brand-asset overrides and a cached, settings-aware HTML shellwtclaude2026-08-07 20:09:56 -05:00
02580ebda3Merge pull request 'feat(theming): server-resolved theme engine and admin appearance UI (phases 3-4)' (#122) from feat/theming-nav-phase-3-4 into edgeColby Whitlock2026-08-08 00:22:31 +00:00