Guest as plain functions: no GuestService, no global Guest module, the oRPC module imported once #424

Closed
opened 2026-10-15 14:45:20 +00:00 by root · 7 comments
root commented 2026-10-15 14:45:20 +00:00 (Migrated from gitlab.core-project.space)

Parent

#421

What to build

Guest code becomes plain functions, and the global module that existed only to share a stateless service goes away.

  • A framework-free file in common/, named after Guest, holds the occupant types, the occupant of a Guest (its hash) and the comparison of two occupants.
  • GuestService and its global module are deleted.
  • The RPC context computes a Guest's occupant with the plain function; its content is unchanged.
  • The Room service compares occupants with the plain function.
  • Minting a Guest stays a Room service option until the minters ticket.
  • The oRPC module is imported once, at the root, instead of by each feature module.

Players see no change: arriving in a Room, taking a Seat and claiming a Guest behave as before (ADR 0042, 0035).

Seam: S2, the Room through its services; S1, the wire; S3, the lint.

Acceptance criteria

  • No GuestService and no Guest module remain. The Guest file imports no framework, and the lint test says so.
  • Room and Play services are built in the Room fixtures without a Guest service. A test can still fix the minted Guest.
  • The oRPC module is imported once, at the root.
  • The Room tests and the RPC integration tests pass unchanged in what they assert.
## Parent #421 ## What to build Guest code becomes plain functions, and the global module that existed only to share a stateless service goes away. - A framework-free file in `common/`, named after Guest, holds the occupant types, the occupant of a Guest (its hash) and the comparison of two occupants. - `GuestService` and its global module are deleted. - The RPC context computes a Guest's occupant with the plain function; its content is unchanged. - The Room service compares occupants with the plain function. - Minting a Guest stays a Room service option until the minters ticket. - The oRPC module is imported once, at the root, instead of by each feature module. Players see no change: arriving in a Room, taking a Seat and claiming a Guest behave as before (ADR 0042, 0035). Seam: S2, the Room through its services; S1, the wire; S3, the lint. ## Acceptance criteria - [ ] No `GuestService` and no Guest module remain. The Guest file imports no framework, and the lint test says so. - [ ] Room and Play services are built in the Room fixtures without a Guest service. A test can still fix the minted Guest. - [ ] The oRPC module is imported once, at the root. - [ ] The Room tests and the RPC integration tests pass unchanged in what they assert.
root commented 2026-10-15 14:45:27 +00:00 (Migrated from gitlab.core-project.space)

mentioned in issue #425

mentioned in issue #425
root commented 2026-10-15 14:45:59 +00:00 (Migrated from gitlab.core-project.space)

marked this issue as related to #421

marked this issue as related to #421
root commented 2026-10-15 14:46:22 +00:00 (Migrated from gitlab.core-project.space)

marked this issue as related to #422

marked this issue as related to #422
root commented 2026-10-15 14:46:23 +00:00 (Migrated from gitlab.core-project.space)

marked this issue as related to #425

marked this issue as related to #425
root commented 2026-10-15 16:04:32 +00:00 (Migrated from gitlab.core-project.space)

mentioned in commit 23e36eb02b

mentioned in commit 23e36eb02b3e79229c4277f4414080803b1310e4
root commented 2026-10-15 16:04:47 +00:00 (Migrated from gitlab.core-project.space)

mentioned in merge request !536

mentioned in merge request !536
root commented 2026-10-15 16:07:36 +00:00 (Migrated from gitlab.core-project.space)

mentioned in commit 2d993c3fd5

mentioned in commit 2d993c3fd58b301367426807360e898cc523c237
root (Migrated from gitlab.core-project.space) closed this issue 2026-10-15 18:59:50 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
amaurycoudr/chess-project#424
No description provided.