feat(guilds): name the core contribution each declared slot wants #15

Merged
whitlocktech merged 1 commits from feature/teams-slot-contributions into edge 2026-08-19 06:19:53 +00:00
Member

The module half of RunicGateway/website#160. Core no longer fills a slot by name — it offers a contribution, and the module that owns the page says where each one goes.

registry.declareModuleSlot(ID, 'uo.guild.detail', { core: 'team.activity' })
registry.declareModuleSlot(ID, 'uo.guild.forum',  { core: 'team.forum' })
registry.declareModuleSlot(ID, 'uo.guild.header', { core: 'team.notify' })

The three slot names are unchanged and stay this module's own vocabulary — that is the point of the direction. What is new is the second argument.

Nothing here worked differently before. The change is for every game that is not this one: core used to fill the literal name uo.guild.detail, so a second module declaring a place under its own id got an empty page and no error.

The registration fake gained the same validation core does, including the contribution catalogue — written down rather than imported, since this suite runs against the built chunk with no core in the process. That makes it a claim about core which has to be re-read when core's list changes, the same trade the rest of the fake makes.

Checks

42 client tests · 437 server tests · chunk builds.

Merge order

After website#160 — the { core } argument is ignored by a core that predates it, so this is safe either way, but the slots stay unfilled until core's side lands.

AI disclosure

Written with Claude Code (Opus 5). Commits carry the Co-Authored-By trailer.

The module half of `RunicGateway/website#160`. Core no longer fills a slot by name — it offers a contribution, and the module that owns the page says where each one goes. ```js registry.declareModuleSlot(ID, 'uo.guild.detail', { core: 'team.activity' }) registry.declareModuleSlot(ID, 'uo.guild.forum', { core: 'team.forum' }) registry.declareModuleSlot(ID, 'uo.guild.header', { core: 'team.notify' }) ``` **The three slot names are unchanged** and stay this module's own vocabulary — that is the point of the direction. What is new is the second argument. **Nothing here worked differently before.** The change is for every game that is not this one: core used to fill the literal name `uo.guild.detail`, so a second module declaring a place under its own id got an empty page and no error. The registration fake gained the same validation core does, including the contribution catalogue — written down rather than imported, since this suite runs against the built chunk with no core in the process. That makes it a claim about core which has to be re-read when core's list changes, the same trade the rest of the fake makes. ### Checks 42 client tests · 437 server tests · chunk builds. ### Merge order After `website#160` — the `{ core }` argument is ignored by a core that predates it, so this is safe either way, but the slots stay unfilled until core's side lands. ### AI disclosure Written with Claude Code (Opus 5). Commits carry the `Co-Authored-By` trailer.
wtclaude added 1 commit 2026-08-19 06:17:16 +00:00
feat(guilds): name the core contribution each declared slot wants
Some checks failed
PR Checks / client-build (pull_request) Successful in 27s
PR Checks / frozen-manifest (pull_request) Failing after 47s
PR Checks / server-tests (pull_request) Failing after 13m23s
1a13f680f5
Core no longer fills a slot by name - it offers a contribution and the module
that owns the page says where each one goes (MODULE_API 1.6.0, amended). The
three slot names are unchanged and stay this module's own vocabulary; what is
new is the second argument saying which of core's three contributions belongs
in each place.

Nothing here worked differently before. The change is for every game that is
not this one: core used to fill the literal name uo.guild.detail, so a second
module declaring a place under its own id got an empty page and no error.

The registration fake gained the same validation core does, including the
contribution catalogue - written down rather than imported, since this suite
runs against the built chunk with no core in the process, which makes it a
claim about core that has to be re-read when core's list changes.

42 client tests, 437 server tests.

Co-Authored-By: Claude <noreply@anthropic.com>
whitlocktech merged commit d98f0c1a3d into edge 2026-08-19 06:19:53 +00:00
whitlocktech deleted branch feature/teams-slot-contributions 2026-08-19 06:19:54 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: RunicGateway/Module-uo#15
No description provided.