fix: simplify and stabilize runtime service routing

This commit is contained in:
ejclaw
2026-04-09 22:49:20 +09:00
parent 0461e401e8
commit 5714348897
17 changed files with 1911 additions and 1387 deletions

View File

@@ -76,22 +76,24 @@ function normalizeLeaseRow(
reviewer_agent_type: reviewerAgentType,
arbiter_agent_type: arbiterAgentType,
owner_service_id:
(row.owner_service_id ? normalizeServiceId(row.owner_service_id) : null) ??
resolveRoleServiceShadow('owner', ownerAgentType) ??
normalizeServiceId(row.owner_service_id),
reviewer_service_id: reviewerAgentType
? (resolveRoleServiceShadow('reviewer', reviewerAgentType) ??
normalizeServiceId(row.reviewer_service_id!))
: null,
arbiter_service_id: arbiterAgentType
? (resolveRoleServiceShadow('arbiter', arbiterAgentType) ??
(row.arbiter_service_id
? normalizeServiceId(row.arbiter_service_id)
: null))
: row.arbiter_service_id
normalizeServiceId(SERVICE_ID),
reviewer_service_id:
(row.reviewer_service_id
? normalizeServiceId(row.reviewer_service_id)
: null) ??
(reviewerAgentType
? resolveRoleServiceShadow('reviewer', reviewerAgentType)
: null),
arbiter_service_id:
(row.arbiter_service_id
? normalizeServiceId(row.arbiter_service_id)
: isArbiterEnabled()
? ARBITER_SERVICE_ID
: null,
: null) ??
(arbiterAgentType
? resolveRoleServiceShadow('arbiter', arbiterAgentType)
: null) ??
(isArbiterEnabled() ? ARBITER_SERVICE_ID : null),
owner_failover_active: false,
activated_at: row.activated_at,
reason: row.reason,
@@ -211,31 +213,31 @@ export function resolveLeaseServiceId(
): string | null {
switch (role) {
case 'owner':
if (lease.owner_failover_active) {
return normalizeServiceId(lease.owner_service_id);
}
return (
(lease.owner_service_id
? normalizeServiceId(lease.owner_service_id)
: null) ??
resolveRoleServiceShadow('owner', lease.owner_agent_type) ??
normalizeServiceId(lease.owner_service_id)
null
);
case 'reviewer':
return lease.reviewer_agent_type
? (resolveRoleServiceShadow('reviewer', lease.reviewer_agent_type) ??
(lease.reviewer_service_id
? normalizeServiceId(lease.reviewer_service_id)
: null))
: lease.reviewer_service_id
return (
(lease.reviewer_service_id
? normalizeServiceId(lease.reviewer_service_id)
: null;
: null) ??
(lease.reviewer_agent_type
? resolveRoleServiceShadow('reviewer', lease.reviewer_agent_type)
: null)
);
case 'arbiter':
return lease.arbiter_agent_type
? (resolveRoleServiceShadow('arbiter', lease.arbiter_agent_type) ??
(lease.arbiter_service_id
? normalizeServiceId(lease.arbiter_service_id)
: null))
: lease.arbiter_service_id
return (
(lease.arbiter_service_id
? normalizeServiceId(lease.arbiter_service_id)
: null;
: null) ??
(lease.arbiter_agent_type
? resolveRoleServiceShadow('arbiter', lease.arbiter_agent_type)
: null)
);
}
}