修复 AGC 本地 BgFilter worker 启动链路
Project CI / Repository checks (pull_request) Successful in 3m58s
Project CI / Frontend tests (pull_request) Successful in 4m46s
Project CI / Backend tests (pull_request) Successful in 6m12s
Project CI / Native shell tests (pull_request) Successful in 15m48s

backend 模式复用 Rust 双进程启动与 watcher

AGC 后端复用门禁增加 BgFilter worker readiness

补充启动编排与 ready 门禁回归测试

同步本地开发运维文档
This commit is contained in:
2026-09-02 13:27:27 +00:00
parent aad9be8274
commit d522ad0135
5 changed files with 86 additions and 11 deletions
@@ -79,6 +79,7 @@ function resolveBackendTargetsFromState(
) {
const apiServer = state?.services?.['api-server'];
const spacetime = state?.services?.spacetime;
const bgfilterWorker = state?.services?.['bgfilter-worker'];
const isActive = (service) =>
service && ['running', 'reused', 'starting'].includes(service.status ?? '');
const database = typeof state?.database === 'string' ? state.database : '';
@@ -104,9 +105,14 @@ function resolveBackendTargetsFromState(
: requireAgcBackend
? ''
: 'http://127.0.0.1:3101';
const bgfilterWorkerUrl =
canReuseState && isActive(bgfilterWorker) && bgfilterWorker.url
? bgfilterWorker.url
: '';
return {
apiUrl,
spacetimeUrl,
bgfilterWorkerUrl,
database,
spacetimeDataDir,
hasMatchingDatabase,
@@ -121,16 +127,22 @@ function readBackendTargets({ requireAgcBackend = false } = {}) {
});
}
async function isBackendReady() {
const { apiUrl, spacetimeUrl, hasMatchingBackend } = readBackendTargets({
requireAgcBackend: true,
});
async function isBackendReady({
state = readJson(devStackStatePath),
isReady = isHttpReady,
} = {}) {
const { apiUrl, spacetimeUrl, bgfilterWorkerUrl, hasMatchingBackend } =
resolveBackendTargetsFromState(state, {
requireAgcBackend: true,
});
return (
hasMatchingBackend &&
Boolean(apiUrl) &&
Boolean(spacetimeUrl) &&
(await isHttpReady(`${apiUrl}/healthz`)) &&
(await isHttpReady(`${spacetimeUrl}/v1/ping`))
Boolean(bgfilterWorkerUrl) &&
(await isReady(`${apiUrl}/healthz`)) &&
(await isReady(`${spacetimeUrl}/v1/ping`)) &&
(await isReady(`${bgfilterWorkerUrl}/readyz`))
);
}
@@ -668,6 +680,7 @@ function isDirectModuleExecution() {
export {
ensureBackend,
formatChildFailure,
isBackendReady,
isDirectModuleExecution,
isProcessGroupAlive,
preflightExistingVite,