From d667e54b02e9be38dc3da26f7c4d4fd24aa4a3b4 Mon Sep 17 00:00:00 2001 From: Neil <4138956+nwparker@users.noreply.github.com> Date: Thu, 22 Oct 2026 18:39:05 -0700 Subject: [PATCH] refactor: colocate relay assignment admission owners (#32142) --- cloud/apps/relay/src/app.ts | 2 +- cloud/apps/relay/src/assignment-store.ts | 2 +- .../assignment-identity-queue.test.ts | 0 .../{ => assignment}/assignment-identity-queue.ts | 0 .../src/{ => assignment}/assignment-lease-shadow.ts | 2 +- .../src/{ => assignment}/assignment-lease.test.ts | 12 ++++++------ .../relay/src/{ => assignment}/assignment-lease.ts | 0 cloud/apps/relay/src/control-renewal-statement.ts | 2 +- cloud/apps/relay/src/host-session-registry.ts | 4 ++-- cloud/apps/relay/src/relay-server.ts | 4 ++-- cloud/apps/relay/src/relay.blackbox.test.ts | 2 +- 11 files changed, 15 insertions(+), 15 deletions(-) rename cloud/apps/relay/src/{ => assignment}/assignment-identity-queue.test.ts (100%) rename cloud/apps/relay/src/{ => assignment}/assignment-identity-queue.ts (100%) rename cloud/apps/relay/src/{ => assignment}/assignment-lease-shadow.ts (98%) rename cloud/apps/relay/src/{ => assignment}/assignment-lease.test.ts (95%) rename cloud/apps/relay/src/{ => assignment}/assignment-lease.ts (100%) diff --git a/cloud/apps/relay/src/app.ts b/cloud/apps/relay/src/app.ts index 5b0bc6608ba..f6e29dd11fb 100644 --- a/cloud/apps/relay/src/app.ts +++ b/cloud/apps/relay/src/app.ts @@ -37,7 +37,7 @@ import { type RelayAssignmentStore, type ResolvedRelayAssignment } from './assignment-store.js' -import { ASSIGNMENT_LEASE_AUDIENCE, assignmentLeaseKeyId } from './assignment-lease.js' +import { ASSIGNMENT_LEASE_AUDIENCE, assignmentLeaseKeyId } from './assignment/assignment-lease.js' import { AssignmentRejectionLogWindow } from './assignment/assignment-rejection-log-window.js' import { CELL_ADMISSION_STATES } from './cell-admission-selector.js' import { registerCellSeatFeedRoute } from './cell-seat-feed-route.js' diff --git a/cloud/apps/relay/src/assignment-store.ts b/cloud/apps/relay/src/assignment-store.ts index 38ce3e919a2..21a9eb8013b 100644 --- a/cloud/apps/relay/src/assignment-store.ts +++ b/cloud/apps/relay/src/assignment-store.ts @@ -58,7 +58,7 @@ import { import { ASSIGNMENT_CONNECTION_HEADROOM_QUERY } from './assignment-connection-headroom-query.js' -import { AssignmentIdentityQueue } from './assignment-identity-queue.js' +import { AssignmentIdentityQueue } from './assignment/assignment-identity-queue.js' import { CONTROL_RENEWAL_BATCH_SQL, CONTROL_RENEWAL_STATEMENT_OUTCOMES, diff --git a/cloud/apps/relay/src/assignment-identity-queue.test.ts b/cloud/apps/relay/src/assignment/assignment-identity-queue.test.ts similarity index 100% rename from cloud/apps/relay/src/assignment-identity-queue.test.ts rename to cloud/apps/relay/src/assignment/assignment-identity-queue.test.ts diff --git a/cloud/apps/relay/src/assignment-identity-queue.ts b/cloud/apps/relay/src/assignment/assignment-identity-queue.ts similarity index 100% rename from cloud/apps/relay/src/assignment-identity-queue.ts rename to cloud/apps/relay/src/assignment/assignment-identity-queue.ts diff --git a/cloud/apps/relay/src/assignment-lease-shadow.ts b/cloud/apps/relay/src/assignment/assignment-lease-shadow.ts similarity index 98% rename from cloud/apps/relay/src/assignment-lease-shadow.ts rename to cloud/apps/relay/src/assignment/assignment-lease-shadow.ts index 88774ea8a98..9e12c17bfc7 100644 --- a/cloud/apps/relay/src/assignment-lease-shadow.ts +++ b/cloud/apps/relay/src/assignment/assignment-lease-shadow.ts @@ -1,4 +1,4 @@ -import { percentile } from './relay-observability.js' +import { percentile } from '../relay-observability.js' import { classifyAssignmentLease, type AssignmentLeaseClass } from './assignment-lease.js' // What `ticketCheck=enforce` would have said, beside the database answer that still decides. diff --git a/cloud/apps/relay/src/assignment-lease.test.ts b/cloud/apps/relay/src/assignment/assignment-lease.test.ts similarity index 95% rename from cloud/apps/relay/src/assignment-lease.test.ts rename to cloud/apps/relay/src/assignment/assignment-lease.test.ts index 2352622d92c..5e38d64dbf6 100644 --- a/cloud/apps/relay/src/assignment-lease.test.ts +++ b/cloud/apps/relay/src/assignment/assignment-lease.test.ts @@ -11,12 +11,12 @@ import { classifyAssignmentLease } from './assignment-lease.js' import { ASSIGNMENT_LEASE_SHADOW_EVENT, AssignmentLeaseShadow } from './assignment-lease-shadow.js' -import type { RelayAssignmentStore } from './assignment-store.js' -import type { RelayConfig } from './config.js' -import type { RelayCredentialStore } from './credential-store.js' -import { HostSessionRegistry } from './host-session-registry.js' -import type { RelayTokenClaims } from './relay-token-verifier.js' -import { ProcessQueuedByteBudget } from './splice-forwarder.js' +import type { RelayAssignmentStore } from '../assignment-store.js' +import type { RelayConfig } from '../config.js' +import type { RelayCredentialStore } from '../credential-store.js' +import { HostSessionRegistry } from '../host-session-registry.js' +import type { RelayTokenClaims } from '../relay-token-verifier.js' +import { ProcessQueuedByteBudget } from '../splice-forwarder.js' const KEY = new TextEncoder().encode('0123456789abcdef0123456789abcdef') const OTHER_KEY = new TextEncoder().encode('fedcba9876543210fedcba9876543210') diff --git a/cloud/apps/relay/src/assignment-lease.ts b/cloud/apps/relay/src/assignment/assignment-lease.ts similarity index 100% rename from cloud/apps/relay/src/assignment-lease.ts rename to cloud/apps/relay/src/assignment/assignment-lease.ts diff --git a/cloud/apps/relay/src/control-renewal-statement.ts b/cloud/apps/relay/src/control-renewal-statement.ts index 486f825c10d..7ccd5398e7d 100644 --- a/cloud/apps/relay/src/control-renewal-statement.ts +++ b/cloud/apps/relay/src/control-renewal-statement.ts @@ -1,4 +1,4 @@ -import type { AssignmentIdentity } from './assignment-identity-queue.js' +import type { AssignmentIdentity } from './assignment/assignment-identity-queue.js' import type { SqlRow } from './database.js' export type ControlRenewalOutcome = diff --git a/cloud/apps/relay/src/host-session-registry.ts b/cloud/apps/relay/src/host-session-registry.ts index 2a048f08c08..fb42d7a1a9e 100644 --- a/cloud/apps/relay/src/host-session-registry.ts +++ b/cloud/apps/relay/src/host-session-registry.ts @@ -30,8 +30,8 @@ import nacl from 'tweetnacl' import type WebSocket from 'ws' import type { RawData } from 'ws' import type { RelayConfig } from './config.js' -import type { AssignmentLeaseClass } from './assignment-lease.js' -import type { AssignmentLeaseShadow } from './assignment-lease-shadow.js' +import type { AssignmentLeaseClass } from './assignment/assignment-lease.js' +import type { AssignmentLeaseShadow } from './assignment/assignment-lease-shadow.js' import type { RelayAssignmentStore } from './assignment-store.js' import type { CellAdmitMode, CellReserveBook } from './cell-reserve-book.js' import type { DemoteRequest, ReserveOutcome, ReserveRequest } from './cell-reserve-contract.js' diff --git a/cloud/apps/relay/src/relay-server.ts b/cloud/apps/relay/src/relay-server.ts index 3824105810a..7175ca08dfc 100644 --- a/cloud/apps/relay/src/relay-server.ts +++ b/cloud/apps/relay/src/relay-server.ts @@ -21,11 +21,11 @@ import type { RawData } from 'ws' import { CellAdmitEffectiveWriter } from './cell-admit-effective-writer.js' import { ReserveDeadMan, reserveDeadManWindowMs } from './cell-reserve-dead-man.js' import { createRelayApp } from './app.js' -import { classifyAssignmentLease } from './assignment-lease.js' +import { classifyAssignmentLease } from './assignment/assignment-lease.js' import { defaultIntakePerSec, type CellFlags } from './cell-flags.js' import { CellReserveBook } from './cell-reserve-book.js' import type { DemoteRequest, ReserveRequest } from './cell-reserve-contract.js' -import { AssignmentLeaseShadow } from './assignment-lease-shadow.js' +import { AssignmentLeaseShadow } from './assignment/assignment-lease-shadow.js' import { RelayAssignmentStore } from './assignment-store.js' import type { RelayConfig } from './config.js' import { RelayCredentialStore } from './credential-store.js' diff --git a/cloud/apps/relay/src/relay.blackbox.test.ts b/cloud/apps/relay/src/relay.blackbox.test.ts index 35785ac6528..503c2260b4e 100644 --- a/cloud/apps/relay/src/relay.blackbox.test.ts +++ b/cloud/apps/relay/src/relay.blackbox.test.ts @@ -17,7 +17,7 @@ import nacl from 'tweetnacl' import { afterAll, beforeAll, describe, expect, it } from 'vitest' import WebSocket from 'ws' import type { RawData } from 'ws' -import { assignmentLeaseKeyId } from './assignment-lease.js' +import { assignmentLeaseKeyId } from './assignment/assignment-lease.js' import { RelayAssignmentStore } from './assignment-store.js' import { encodeMembership,