diff --git a/.claude/scheduled_tasks.lock b/.claude/scheduled_tasks.lock new file mode 100644 index 0000000..2980d16 --- /dev/null +++ b/.claude/scheduled_tasks.lock @@ -0,0 +1 @@ +{"sessionId":"eb7ac833-18c4-4e5b-a2c0-a53f3599c55b","pid":31048,"procStart":"Wed May 6 22:37:00 2026","acquiredAt":1778147404017} \ No newline at end of file diff --git a/integration/lobby_my_games_test.go b/integration/lobby_my_games_test.go index 27b38c4..74667a7 100644 --- a/integration/lobby_my_games_test.go +++ b/integration/lobby_my_games_test.go @@ -13,7 +13,7 @@ import ( ) // TestLobbyMyGamesList drives `lobby.my.games.list` through the -// authenticated gateway gRPC surface. `my.games.list` returns games +// authenticated edge surface (Connect / gRPC / gRPC-Web). `my.games.list` returns games // where the caller has an active membership, so the test creates a // private game with one user, opens enrollment, invites a second // user, the second user redeems the invite (becomes a member), and diff --git a/integration/lobby_open_enrollment_test.go b/integration/lobby_open_enrollment_test.go index 248c0d0..c490842 100644 --- a/integration/lobby_open_enrollment_test.go +++ b/integration/lobby_open_enrollment_test.go @@ -13,7 +13,7 @@ import ( ) // TestLobbyOpenEnrollment drives `lobby.game.open-enrollment` through -// gateway gRPC. Owner moves draft → enrollment_open; non-owner is +// gateway authenticated edge. Owner moves draft → enrollment_open; non-owner is // rejected; idempotent re-call on enrollment_open is a no-op (still // returns enrollment_open). func TestLobbyOpenEnrollment(t *testing.T) { diff --git a/integration/session_revoke_test.go b/integration/session_revoke_test.go index bd00e8b..2cd7d97 100644 --- a/integration/session_revoke_test.go +++ b/integration/session_revoke_test.go @@ -11,7 +11,7 @@ import ( ) // TestSessionRevoke_SubsequentRequestsRejected revokes the caller's -// session through the user surface (signed gRPC end-to-end) and +// session through the user surface (signed authenticated-edge end-to-end) and // asserts that subsequent authenticated calls bound to that session // are rejected by gateway. func TestSessionRevoke_SubsequentRequestsRejected(t *testing.T) { @@ -35,7 +35,7 @@ func TestSessionRevoke_SubsequentRequestsRejected(t *testing.T) { t.Fatalf("pre-revoke call failed: %v", err) } - // Revoke own session through signed gRPC. + // Revoke own session through signed authenticated-edge call. revokePayload, err := transcoder.RevokeMySessionRequestToPayload(&usermodel.RevokeMySessionRequest{ DeviceSessionID: sess.DeviceSessionID, }) diff --git a/integration/soft_delete_test.go b/integration/soft_delete_test.go index dbe7291..9bc035d 100644 --- a/integration/soft_delete_test.go +++ b/integration/soft_delete_test.go @@ -14,7 +14,7 @@ import ( // TestSoftDelete_Cascade triggers `POST /api/v1/user/account/delete` // with X-User-ID set (mirroring what gateway does after authenticated // verification) and asserts: -// - the account fetch through the authenticated gRPC surface +// - the account fetch through the authenticated edge surface // subsequently fails because soft-delete revoked the session; // - the admin geo endpoint reports the user has no remaining // country counter rows. @@ -57,7 +57,7 @@ func TestSoftDelete_Cascade(t *testing.T) { t.Fatalf("soft delete: status %d body=%s", resp.StatusCode, string(raw)) } - // Authenticated gRPC must now be rejected. + // Authenticated edge must now be rejected. deadline := time.Now().Add(2 * time.Second) var lastErr error for time.Now().Before(deadline) { diff --git a/integration/testenv/clients.go b/integration/testenv/clients.go index 1b5978c..a9c4712 100644 --- a/integration/testenv/clients.go +++ b/integration/testenv/clients.go @@ -171,8 +171,8 @@ func (c *BackendInternalClient) Do(ctx context.Context, method, path string, bod // BackendUserClient hits backend's `/api/v1/user/*` endpoints // directly with `X-User-ID` set, mirroring what gateway does after // authenticated traffic verification. Used by scenarios whose -// message_type is not registered in gateway's gRPC router (lobby -// create, soft delete, etc.). +// message_type is not registered in gateway's downstream router +// (lobby create, soft delete, etc.). type BackendUserClient struct { BaseURL string UserID string diff --git a/integration/testenv/platform.go b/integration/testenv/platform.go index d96e6ab..ee735d7 100644 --- a/integration/testenv/platform.go +++ b/integration/testenv/platform.go @@ -10,7 +10,7 @@ import ( // Platform aggregates a fully booted Galaxy stack: shared Docker // network, Postgres, Redis, mailpit, backend and gateway. Tests use -// this struct to access HTTP/gRPC endpoints, mailpit and backend +// this struct to access HTTP and authenticated-edge endpoints, mailpit and backend // admin without touching testcontainers directly. type Platform struct { Network string diff --git a/integration/testenv/session.go b/integration/testenv/session.go index 8e42144..95054d0 100644 --- a/integration/testenv/session.go +++ b/integration/testenv/session.go @@ -12,7 +12,7 @@ import ( ) // Session is a registered device session ready to drive the -// authenticated gRPC surface. +// authenticated edge surface. type Session struct { Email string DeviceSessionID string diff --git a/integration/user_account_test.go b/integration/user_account_test.go index c4714cb..8218f15 100644 --- a/integration/user_account_test.go +++ b/integration/user_account_test.go @@ -11,9 +11,9 @@ import ( "galaxy/transcoder" ) -// TestUserAccount_GetThroughGatewayGRPC drives the authenticated -// gRPC user surface (`user.account.get`) through gateway → backend -// → user store. The test signs an envelope, sends it via gRPC, and +// TestUserAccount_GetThroughGatewayEdge drives the authenticated +// edge user surface (`user.account.get`) through gateway → backend +// → user store. The test signs an envelope, sends it via Connect, and // verifies the response signature, then decodes the FlatBuffers // payload into the typed AccountResponse. // @@ -21,7 +21,7 @@ import ( // backend's HTTP `/api/v1/user/account`, which triggers the geo // counter middleware. We validate the counter increments on the // admin geo endpoint. -func TestUserAccount_GetThroughGatewayGRPC(t *testing.T) { +func TestUserAccount_GetThroughGatewayEdge(t *testing.T) { plat := testenv.Bootstrap(t, testenv.BootstrapOptions{}) ctx, cancel := context.WithTimeout(context.Background(), 60*time.Second) defer cancel() diff --git a/integration/user_profile_update_test.go b/integration/user_profile_update_test.go index 201e9b5..a0e6d13 100644 --- a/integration/user_profile_update_test.go +++ b/integration/user_profile_update_test.go @@ -11,7 +11,7 @@ import ( ) // TestUserProfileUpdate exercises `user.profile.update` over the -// authenticated gateway gRPC surface and verifies that the new +// authenticated edge surface (Connect / gRPC / gRPC-Web) and verifies that the new // display_name is reflected by a subsequent `user.account.get`. func TestUserProfileUpdate(t *testing.T) { plat := testenv.Bootstrap(t, testenv.BootstrapOptions{}) diff --git a/integration/user_settings_update_test.go b/integration/user_settings_update_test.go index 113a4e4..d847eda 100644 --- a/integration/user_settings_update_test.go +++ b/integration/user_settings_update_test.go @@ -12,7 +12,7 @@ import ( // TestUserSettingsUpdate verifies `user.settings.update` accepts a // valid BCP 47 / IANA pair and rejects malformed inputs through the -// gateway gRPC surface. +// gateway authenticated edge surface. func TestUserSettingsUpdate(t *testing.T) { plat := testenv.Bootstrap(t, testenv.BootstrapOptions{}) ctx, cancel := context.WithTimeout(context.Background(), 60*time.Second)