Commit Graph

  • a481248bc0 Merge pull request 'feat(events): the minimal admin surface (Phase 3)' (#185) from feat/events-phase-3 into edge Colby Whitlock 2026-09-02 15:47:31 +00:00
  • 7b570c8ea1 feat(events): the minimal admin surface (Phase 3) wtclaude 2026-09-02 08:39:35 -05:00
  • 2ba397eff7 Merge pull request 'feat(events): the runner (Phase 2)' (#184) from feat/events-phase-2 into edge Colby Whitlock 2026-09-02 11:35:22 +00:00
  • 2e964cfeee feat(events): the runner (Phase 2) wtclaude 2026-09-02 06:32:24 -05:00
  • d88906e43c Merge pull request 'feat(events): schema, CRUD and the core action registry (Phase 1)' (#183) from feat/events-phase-1 into edge Colby Whitlock 2026-09-02 04:38:54 +00:00
  • 8e03497eb3 feat(events): schema, CRUD and the core action registry (Phase 1) wtclaude 2026-09-01 23:29:07 -05:00
  • 6331b36c45 Merge pull request 'feat(engagement): retention — three sweeps and one recorded refusal (Phase 14)' (#182) from feature/engagement-retention into main Colby Whitlock 2026-09-01 20:57:06 +00:00
  • 5779d15150 feat(engagement): retention — three sweeps and one recorded refusal wtclaude 2026-09-01 15:40:53 -05:00
  • e59a68c152 Merge pull request 'fix(engagement): claim the seed guard atomically, and let a rule name a digest body' (#181) from fix/engagement-seed-claim-and-digest into main Colby Whitlock 2026-09-01 19:39:58 +00:00
  • eec7dbf785 fix(engagement): claim the seed guard atomically, and let a rule name a digest body wtclaude 2026-09-01 14:29:21 -05:00
  • 66bb3b9a3f Merge pull request 'feat(engagement): the engagement system — cutover 3 of 7 (edge → main)' (#180) from edge into main Colby Whitlock 2026-09-01 13:56:53 +00:00
  • 52eac24d17 Merge pull request 'fix(engagement): two defects the Phase 11b live walk found in core' (#179) from fix/engagement-live-walk-core into edge Colby Whitlock 2026-09-01 12:32:29 +00:00
  • c8d45733b6 fix(engagement): two defects the Phase 11b live walk found in core Claude 2026-09-01 07:12:09 -05:00
  • c3783f56f1 Merge pull request 'feat(engagement): let a module ship its own templates and rules (Phase 11b)' (#178) from feature/engagement-module-seeds into edge Colby Whitlock 2026-09-01 06:35:20 +00:00
  • 40ab1ce8d2 fix(modules): bump the CLIENT half of MODULE_API_VERSION to 1.9.0 wtclaude 2026-09-01 01:22:00 -05:00
  • 0a9149a04f fix(engagement): a trigger-bound template may reference the unsubscribe link wtclaude 2026-09-01 01:07:16 -05:00
  • cfd1cb3c3c feat(engagement): let a module ship its own templates and rules (Phase 11b) wtclaude 2026-09-01 00:46:15 -05:00
  • 81e0338a69 Merge pull request 'feat(engagement): the admin ceiling and core's news.post emitter (Phase 11a)' (#177) from feature/engagement-uo-triggers into edge Colby Whitlock 2026-09-01 05:05:56 +00:00
  • 1d4cd4adae feat(engagement): the admin ceiling and core's news.post emitter (Phase 11a) feature/engagement-uo-triggers wtclaude 2026-08-31 20:33:02 -05:00
  • 49a61fdafa Merge pull request 'feat(engagement): deliverability — suppression, bounces and the verification gate (Phase 9)' (#176) from feature/engagement-deliverability into edge Colby Whitlock 2026-08-31 15:52:47 +00:00
  • c208543044 feat(engagement): deliverability — suppression, bounces and the verification gate wtclaude 2026-08-31 10:47:34 -05:00
  • 87c4e71025 Merge pull request 'feat(engagement): the in-app channel, core and web (engagement Phase 7)' (#175) from feature/engagement-inapp-channel into edge Colby Whitlock 2026-08-31 07:22:24 +00:00
  • 24a3cd85b3 feat(engagement): the in-app channel, core and web (engagement Phase 7) wtclaude 2026-08-31 02:07:10 -05:00
  • 5168446c53 Merge pull request 'feat(engagement): the email channel on the engine, and the Teams migration (engagement Phase 6)' (#174) from feature/engagement-email-channel into edge Colby Whitlock 2026-08-31 06:07:14 +00:00
  • 065bec7ad8 feat(engagement): the email channel on the engine, and the Teams migration (engagement Phase 6) wtclaude 2026-08-29 20:11:54 -05:00
  • e2dad3104f Merge pull request 'feat(engagement): the template editor, the trigger catalog and the send log (engagement Phase 5b)' (#173) from feature/engagement-template-editor into edge Colby Whitlock 2026-08-29 23:37:39 +00:00
  • 3f90070566 feat(engagement): the template editor, the trigger catalog and the send log (engagement Phase 5b) wtclaude 2026-08-29 18:13:57 -05:00
  • 42b40fdec2 Merge pull request 'feat(engagement): templates — the email block family, renderer and seeded set (engagement Phase 5a)' (#172) from feature/engagement-templates into edge Colby Whitlock 2026-08-29 18:14:45 +00:00
  • 12ff201ed5 feat(engagement): templates — the email block family, renderer and seeded set (engagement Phase 5a) wtclaude 2026-08-29 13:07:39 -05:00
  • 1d7961e7a2 Merge pull request 'feat(engagement): Admin → Engagement → Rules and Audiences (engagement Phase 4b)' (#171) from feature/engagement-rules-admin into edge Colby Whitlock 2026-08-29 17:28:54 +00:00
  • 3a7a08425c fix(engagement): the six defects the browser pass found (Phase 4b) wtclaude 2026-08-29 12:26:29 -05:00
  • 4b45eddb5d feat(engagement): Admin - Engagement - Rules and Audiences (engagement Phase 4b) wtclaude 2026-08-29 12:10:04 -05:00
  • 4d3f574480 Merge pull request 'feat(engagement): the rules engine, cooldowns and outbox (engagement Phase 4a)' (#170) from feature/engagement-engine into edge Colby Whitlock 2026-08-29 13:24:14 +00:00
  • 2079aaf667 feat(engagement): the rules engine, cooldowns and outbox (engagement Phase 4a) wtclaude 2026-08-29 08:07:27 -05:00
  • 447c9113d3 Merge pull request 'feat(notifications): per-channel preferences and the delivery-channel registry (engagement Phase 3)' (#169) from feature/engagement-channel-prefs into edge Colby Whitlock 2026-08-29 12:12:01 +00:00
  • b13ffd584f feat(notifications): per-channel preferences and the delivery-channel registry (engagement Phase 3) wtclaude 2026-08-29 07:08:17 -05:00
  • ea3499e70b Merge pull request 'feat(modules): event triggers, audiences and the ceiling lattice (engagement Phase 2)' (#168) from feature/engagement-trigger-registry into edge Colby Whitlock 2026-08-29 11:48:22 +00:00
  • 563199a096 feat(modules): event triggers, audiences and the ceiling lattice (engagement Phase 2) wtclaude 2026-08-29 06:40:28 -05:00
  • 6016b325bb Merge pull request 'feat(auth): unique, changeable, verifiable email addresses (engagement Phase 1b)' (#167) from feature/unique-verifiable-email into edge Colby Whitlock 2026-08-29 07:08:43 +00:00
  • fbb4b0bd91 feat(auth): unique, changeable, verifiable email addresses (engagement Phase 1b) wtclaude 2026-08-29 01:53:50 -05:00
  • c2e4df5b3d Merge pull request 'refactor(api): collapse /admin/account and /player/account onto /auth/me/account' (#166) from refactor/collapse-account-surfaces into edge Colby Whitlock 2026-08-29 05:54:26 +00:00
  • 6e61146678 refactor(api): collapse /admin/account and /player/account onto /auth/me/account wtclaude 2026-08-29 00:49:25 -05:00
  • f5aa32e0ed Merge pull request 'feat(email): engagement Phase 1 — remove Gmail OAuth2, SMTP behind a transport registry' (#165) from feat/engagement-phase-1-smtp into edge Colby Whitlock 2026-08-29 02:09:44 +00:00
  • b77e817fb1 Merge pull request 'fix(swagger): hoist the one inline predicate that makes the generator run away' (#164) from fix/swagger-generator-runaway into edge Colby Whitlock 2026-08-29 02:09:28 +00:00
  • c4ab8b9b9d docs(email): SMTP setup, the three postures, and the upgrade note Claude 2026-08-28 20:54:04 -05:00
  • 47c8b37d45 feat(email): remove Gmail OAuth2, put SMTP behind a transport registry Claude 2026-08-28 20:41:43 -05:00
  • e25e7ade80 fix(swagger): hoist the one inline predicate that makes the generator run away Claude 2026-08-28 20:47:25 -05:00
  • 3bca112502 Merge pull request 'fix(env): the documented Compose deploy could not boot' (#163) from fix/env-example-secret-enc-key into main Colby Whitlock 2026-08-24 16:31:12 +00:00
  • c43e092248 fix(env): the documented Compose deploy could not boot wtclaude 2026-08-24 11:19:49 -05:00
  • 0f96a372cf Merge pull request 'fix(admin): style the Teams admin screen with the site's own classes' (#162) from fix/teams-admin-theming into main Colby Whitlock 2026-08-19 19:35:00 +00:00
  • 68f038f456 fix(admin): style the Teams admin screen with the site's own classes wtclaude 2026-08-19 14:03:01 -05:00
  • 963d734dcc Merge pull request 'feat(teams): Teams as a platform primitive — MODULE_API 1.6.0 (Teams cutover 4/6)' (#161) from edge into main Colby Whitlock 2026-08-19 08:57:11 +00:00
  • 48a3e33be4 Merge pull request 'fix(modules): core offers a contribution, never a slot name' (#160) from feature/teams-slot-contributions into edge Colby Whitlock 2026-08-19 06:19:38 +00:00
  • 335d69d122 fix(modules): core offers a contribution, never a slot name wtclaude 2026-08-19 01:15:29 -05:00
  • 9619fdf1e1 Merge pull request 'feat(teams): phase 9 — one voice channel per Team, granted by a role' (#159) from feature/teams-phase9-voice-channels into edge Colby Whitlock 2026-08-19 05:21:15 +00:00
  • f72c92ffbe fix(teams): the two defects the phase 9 rig walk found wtclaude 2026-08-19 00:07:27 -05:00
  • 61abb3ec89 feat(teams): phase 9 — one voice channel per Team, granted by a role wtclaude 2026-08-18 23:49:28 -05:00
  • d1d56cf847 Merge pull request 'feat(teams): phase 8 — the notifications bridge, and the gate §7.2 could not check' (#158) from feature/teams-phase8-notifications-bridge into edge Colby Whitlock 2026-08-19 01:33:13 +00:00
  • 11b4368b57 feat(teams): phase 8 — the notifications bridge, and the gate §7.2 could not check wtclaude 2026-08-18 20:25:30 -05:00
  • 46f43a5fd6 Merge pull request 'feat(teams): phase 7 — the slash-command seam, and the bot's first tests' (#157) from feature/teams-phase7-slash-commands into edge Colby Whitlock 2026-08-19 00:16:29 +00:00
  • aca4d23179 fix(teams): a private answer has to be private, and the deferral decides that Claude 2026-08-18 19:08:12 -05:00
  • cecd72915f feat(teams): the slash-command seam, and the first command through it Claude 2026-08-18 18:53:34 -05:00
  • b1d3b87cd6 Merge pull request 'feat(teams): phase 6 — notifications, and the email sink the web never had' (#156) from feature/teams-phase6-notifications into edge Colby Whitlock 2026-08-18 23:10:20 +00:00
  • 13312d7fc3 fix(teams): make "replace the whole set" actually replace it wtclaude 2026-08-18 18:01:59 -05:00
  • 5fa88baa0a test(teams): the refusals, which is most of what a notification feature is wtclaude 2026-08-18 14:35:23 -05:00
  • b458c1f46f feat(teams): the web surface — a notifications screen that did not exist wtclaude 2026-08-18 14:35:08 -05:00
  • 2a56cbf22a feat(teams): fire the four events, and the routes that configure them wtclaude 2026-08-18 14:34:54 -05:00
  • 686a214979 feat(teams): email as the third sink, with a digest that keeps no queue wtclaude 2026-08-18 14:34:38 -05:00
  • 26c23bd603 feat(teams): the notification core — four streams, and a recipient set wtclaude 2026-08-18 14:34:24 -05:00
  • 0467c71ea1 Merge pull request 'feat(teams): phase 5 — Forum 5b, discussion + moderation + reports' (#155) from feature/teams-phase5-discussion into edge Colby Whitlock 2026-08-18 18:36:50 +00:00
  • c970caee16 fix(teams): let a post-moderation mistake reach the model that explains it wtclaude 2026-08-18 13:25:21 -05:00
  • 3f7e61af1c feat(teams): the phase 5 surface — discussion, replies, reports, and two admin screens wtclaude 2026-08-18 13:08:59 -05:00
  • 128de0ff2e test(teams): phase 5's server surface, and the negative property under it wtclaude 2026-08-18 12:58:15 -05:00
  • fff14848f1 feat(moderation): member-raised abuse reports, to site staff only wtclaude 2026-08-18 12:51:42 -05:00
  • ae0d27cf27 feat(teams): discussion threads, replies, the edit window and post moderation wtclaude 2026-08-18 10:43:09 -05:00
  • 763de66ebb Merge pull request 'fix(teams): four defects the live rig found in the phase 4 forum' (#154) from fix/teams-phase4-live-rig into edge Colby Whitlock 2026-08-18 15:21:55 +00:00
  • 5baada08ef fix(teams): four defects the live rig found in the forum wtclaude 2026-08-18 09:54:05 -05:00
  • 16e31de087 Merge pull request 'feat(teams): phase 4 — the forum access model, announcements and the operator's controls' (#153) from feature/teams-phase4-forum-access into edge Colby Whitlock 2026-08-18 14:18:08 +00:00
  • 57286594e7 test(teams): the four acceptance criteria, and regenerate the API artifacts wtclaude 2026-08-18 07:24:24 -05:00
  • cbb7339a3a feat(teams): the forum panel core fills, and the operator's controls wtclaude 2026-08-18 07:24:24 -05:00
  • 4ac353684a feat(teams): harden the upload path for an uploader who is not an admin wtclaude 2026-08-18 07:24:02 -05:00
  • e27c368234 feat(teams): the grant flow, announcements, and the routes behind both guards wtclaude 2026-08-18 07:23:47 -05:00
  • fb70013adf feat(teams): the forum's own HTML profile, and core's image renderer wtclaude 2026-08-18 07:23:32 -05:00
  • 11fd9821bf feat(teams): the forum schema, the operator's two switches, and the ack gate wtclaude 2026-08-18 07:23:15 -05:00
  • 7ed2ac9983 Merge pull request 'feat(teams): the activity feed, the roster projection, and the inverted slot' (#152) from feat/teams-phase3-pages-activity into edge Colby Whitlock 2026-08-18 02:11:06 +00:00
  • 5d9d10b245 refactor(teams)!: Teams is a contract, not a surface — invert the slots wtclaude 2026-08-17 20:58:07 -05:00
  • 203ce9c654 chore(teams): regenerate the OpenAPI spec and the route manifests wtclaude 2026-08-17 20:16:04 -05:00
  • 8f4aff6946 feat(teams): the public Team pages, the two slots and the nav flag wtclaude 2026-08-17 20:15:54 -05:00
  • 03631d7d40 feat(teams): the roster's audience projection, and optionalAuth to resolve it wtclaude 2026-08-17 20:15:36 -05:00
  • aa332eda82 feat(teams): the activity feed, its two writers and its retention wtclaude 2026-08-17 20:15:18 -05:00
  • 1f175786a7 Merge pull request 'feat(teams): Team core — the reconciler, the four authority paths, and the impersonation controls' (#151) from feat/teams-phase2-team-core into edge Colby Whitlock 2026-08-17 22:20:31 +00:00
  • cf2666e5bc feat(teams): the Team read API, the moderation routes, and Admin -> Teams wtclaude 2026-08-17 15:27:02 -05:00
  • 8fe2e01466 feat(teams): reserved-name screening, auto-hide, and the admin-approval gate wtclaude 2026-08-17 15:08:58 -05:00
  • bfd844e8fb feat(teams): the four-path access resolver and staff leadership overrides wtclaude 2026-08-17 14:57:23 -05:00
  • 92631347f9 feat(teams): the reconciler, its four refusal gates, and ctx.teams (API 1.6.0) wtclaude 2026-08-17 14:53:52 -05:00
  • 8b63ffc725 feat(modules): registerTeamProvider, and a call path that cannot answer "empty" wtclaude 2026-08-17 14:44:45 -05:00
  • 225663d62e feat(teams): core schema for Teams, membership, sync state and moderation wtclaude 2026-08-17 14:40:26 -05:00
  • e0c961c690 Merge pull request 'feat(modules)!: the module system cutover — a game-agnostic core reaches main' (#150) from edge into main Colby Whitlock 2026-08-12 23:10:29 +00:00
  • 3669696532 Merge pull request 'chore(modules): declare the UO module for the UOMysticmoon instance' (#149) from chore/declare-uo-module-for-uomm into edge Colby Whitlock 2026-08-12 22:57:42 +00:00
  • 953d0c25f6 chore(modules): declare the UO module for the UOMysticmoon instance wtclaude 2026-08-12 17:56:52 -05:00