fix: wire production Amap adapter
Dada P0-A isolated Windows CI / validate-and-package (push) Failing after 1m47s

This commit is contained in:
suyx
2026-08-04 17:09:04 +08:00
parent a7772a7e92
commit 8c349fb56c
7 changed files with 231 additions and 13 deletions
+7 -2
View File
@@ -17,7 +17,7 @@ import { readSecureConfigCandidate } from "./secure-config.js";
import { StructuredJsonlLogger } from "./structured-log.js";
import { attachApiSupervisorControl, initializeApiCredentialClients, receiveApiCredentials } from "./supervisor-channel.js";
import { ModelConfigurationService } from "./model-configuration.js";
import { MockAmapAdapter } from "./amap-adapter.js";
import { MockAmapAdapter, type AmapAdapter } from "./amap-adapter.js";
import { StickerReleaseService } from "./sticker-releases.js";
import { createAdminDiagnosticsProvider, createAdminServicesStorageProvider } from "./admin-state.js";
@@ -30,10 +30,12 @@ let latestExports: LatestExportService | undefined;
let models: ModelConfigurationService | undefined;
let recentAssets: RecentAssetService | undefined;
let stickers: StickerReleaseService | undefined;
let amap: AmapAdapter = new MockAmapAdapter();
const instanceConfigPath = process.env.DADA_INSTANCE_CONFIG_PATH ?? defaultInstanceConfigPath();
if (credentialChannelEnabled) {
const clients = initializeApiCredentialClients(await receiveApiCredentials());
try {
amap = clients.amap;
const derivePepper = (purpose: string) => createHmac("sha256", clients.adminAllowlistPepper)
.update(`Dada/P0A/${purpose}/v1`, "utf8")
.digest();
@@ -57,6 +59,8 @@ if (credentialChannelEnabled) {
recentAssets = new RecentAssetService({ database: registration.database });
registration.applySecureConfig(readSecureConfigCandidate(instanceConfigPath));
} catch (error) {
amap.dispose?.();
amap = new MockAmapAdapter();
stickers?.close();
stickers = undefined;
latestExports?.close();
@@ -92,7 +96,7 @@ const adminDiagnostics = adminServicesStorage
const app = await createApp({
...(adminServicesStorage ? { adminServicesStorage } : {}),
...(adminDiagnostics ? { adminDiagnostics } : {}),
amap: new MockAmapAdapter(),
amap,
...(browserSupportRelease ? { browserSupportRelease } : {}),
...(credits ? { credits } : {}),
...(latestExports ? { latestExports } : {}),
@@ -115,6 +119,7 @@ if (controlPipeIndex >= 0) {
if (!controlPipe) throw new Error("Supervisor control pipe name is required.");
const control = attachApiSupervisorControl(controlPipe, async () => {
await app.close();
amap.dispose?.();
latestExports?.close();
credits?.close();
projects?.close();