Skip to content

Commit e3524e9

Browse files
committed
refactor(webapp): centralize display-region fallback in regionForDisplay
1 parent ea9a071 commit e3524e9

4 files changed

Lines changed: 19 additions & 7 deletions

File tree

apps/webapp/app/presenters/v3/ApiRetrieveRunPresenter.server.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import { Prisma, TaskRunAttemptStatus, TaskRunStatus } from "@trigger.dev/databa
1515
import assertNever from "assert-never";
1616
import { API_VERSIONS, CURRENT_API_VERSION, RunStatusUnspecifiedApiVersion } from "~/api/versions";
1717
import { $replica, prisma } from "~/db.server";
18-
import { baseWorkerQueue } from "~/runEngine/concerns/workerQueueSplit.server";
18+
import { regionForDisplay } from "~/runEngine/concerns/workerQueueSplit.server";
1919
import { AuthenticatedEnvironment } from "~/services/apiAuth.server";
2020
import {
2121
findRunByIdWithMollifierFallback,
@@ -521,8 +521,7 @@ async function createCommonRunStructure(run: CommonRelatedRun, apiVersion: API_V
521521
triggerFunction: resolveTriggerFunction(run),
522522
batchId: run.batch?.friendlyId,
523523
metadata,
524-
region:
525-
run.region || run.workerQueue ? run.region || baseWorkerQueue(run.workerQueue) : undefined,
524+
region: regionForDisplay(run.region, run.workerQueue),
526525
};
527526
}
528527

apps/webapp/app/presenters/v3/NextRunListPresenter.server.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { timeFilters } from "~/components/runs/v3/SharedFilters";
1111
import { findDisplayableEnvironment } from "~/models/runtimeEnvironment.server";
1212
import { getTaskIdentifiers } from "~/models/task.server";
1313
import { RunsRepository } from "~/services/runsRepository/runsRepository.server";
14-
import { baseWorkerQueue } from "~/runEngine/concerns/workerQueueSplit.server";
14+
import { regionForDisplay } from "~/runEngine/concerns/workerQueueSplit.server";
1515
import { machinePresetFromRun } from "~/v3/machinePresets.server";
1616
import { ServiceValidationError } from "~/v3/services/baseService.server";
1717
import { isCancellableRunStatus, isFinalRunStatus, isPendingRunStatus } from "~/v3/taskStatus";
@@ -260,7 +260,7 @@ export class NextRunListPresenter {
260260
name: run.queue.replace("task/", ""),
261261
type: run.queue.startsWith("task/") ? "task" : "custom",
262262
},
263-
region: run.region || baseWorkerQueue(run.workerQueue),
263+
region: regionForDisplay(run.region, run.workerQueue),
264264
taskKind: RunAnnotations.safeParse(run.annotations).data?.taskKind ?? "STANDARD",
265265
};
266266
}),

apps/webapp/app/routes/resources.taskruns.$runParam.replay.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import {
1818
type SyntheticReplayTaskRun,
1919
} from "~/v3/mollifier/syntheticReplayTaskRun.server";
2020
import parseDuration from "parse-duration";
21-
import { baseWorkerQueue } from "~/runEngine/concerns/workerQueueSplit.server";
21+
import { regionForDisplay } from "~/runEngine/concerns/workerQueueSplit.server";
2222
import { findCurrentWorkerDeployment } from "~/v3/models/workerDeployment.server";
2323
import { queueTypeFromType } from "~/presenters/v3/QueueRetrievePresenter.server";
2424
import { ReplayRunData } from "~/v3/replayTask";
@@ -215,7 +215,7 @@ export async function loader({ request, params }: LoaderFunctionArgs) {
215215
region:
216216
environment.type === "DEVELOPMENT"
217217
? undefined
218-
: run.region || baseWorkerQueue(run.workerQueue),
218+
: regionForDisplay(run.region, run.workerQueue),
219219
regions: regionsResult.regions,
220220
ttlSeconds: run.ttl ? parseDuration(run.ttl, "s") ?? undefined : undefined,
221221
idempotencyKey: run.idempotencyKey,

apps/webapp/app/runEngine/concerns/workerQueueSplit.server.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,19 @@ export function baseWorkerQueue(workerQueue: string | null | undefined): string
3333
return colon === -1 ? workerQueue : workerQueue.slice(0, colon);
3434
}
3535

36+
/**
37+
* User-facing region for read surfaces: the explicit geo region if set, else the
38+
* region derived from the worker queue, else undefined. Use everywhere a run's
39+
* region is displayed so an empty queue never surfaces as `""` and all surfaces
40+
* agree. Not for query keys — those want the raw worker queue, not this fallback.
41+
*/
42+
export function regionForDisplay(
43+
region: string | null | undefined,
44+
workerQueue: string | null | undefined
45+
): string | undefined {
46+
return region || (workerQueue ? baseWorkerQueue(workerQueue) : undefined);
47+
}
48+
3649
/** `TriggerSource` value used for runs originating from a schedule. */
3750
const SCHEDULE_TRIGGER_SOURCE = "schedule";
3851

0 commit comments

Comments
 (0)