From c52086e36a581e72a0e40338b67b06b231372206 Mon Sep 17 00:00:00 2001 From: john Date: Fri, 26 Jun 2026 12:33:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20103=20=E5=8F=91=E5=B8=83?= =?UTF-8?q?=EF=BC=9A=E5=B0=86=20test-memind=20=E5=85=B1=E4=BA=AB=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E6=89=93=E5=85=A5=20memind=5Fadm=20=E4=BA=A7=E7=89=A9?= =?UTF-8?q?=E5=8C=85=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Memind 生产目录已切为无源码 runtime,memind_adm 改为自带 memind-lib 模块并保留 MEMIND_LIB_ROOT 作数据根路径。 Co-authored-by: Cursor --- .gitignore | 1 + scripts/release-prod.sh | 18 +++++++++++++++++- server/bootstrap.mjs | 4 +++- server/lib-path.mjs | 2 ++ 4 files changed, 23 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index fb8d59a..5608d60 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ node_modules/ dist/ dist-ssr/ +memind-lib/ .vite/ *.log logs/ diff --git a/scripts/release-prod.sh b/scripts/release-prod.sh index 278c1b4..7cab483 100755 --- a/scripts/release-prod.sh +++ b/scripts/release-prod.sh @@ -20,12 +20,14 @@ TMP_DIR="$(mktemp -d "${TMPDIR:-/tmp}/memindadm-release.XXXXXX")" BUNDLE_PATH="${TMP_DIR}/memind-adm-${RELEASE_ID}.tar.gz" MANIFEST_PATH="${TMP_DIR}/memind-adm-${RELEASE_ID}.manifest.txt" SHA_PATH="${TMP_DIR}/memind-adm-${RELEASE_ID}.sha256" +MEMIND_SRC="${TEST_MEMIND_ROOT:-${ROOT}/../test-memind}" +MEMIND_LIB="${ROOT}/memind-lib" DRY_RUN=0 SKIP_BUILD=0 AUTO_YES=0 cleanup() { - rm -rf "${TMP_DIR}" + rm -rf "${TMP_DIR}" "${MEMIND_LIB}" } trap cleanup EXIT @@ -105,6 +107,20 @@ fi exit 1 } +[[ -d "${MEMIND_SRC}" ]] || { + echo "缺少 test-memind 共享模块源: ${MEMIND_SRC}" >&2 + exit 1 +} + +say "打包 Memind 共享模块到 memind-lib" +rm -rf "${MEMIND_LIB}" +mkdir -p "${MEMIND_LIB}" +find "${MEMIND_SRC}" -maxdepth 1 -name '*.mjs' -exec cp -f {} "${MEMIND_LIB}/" \; +[[ -f "${MEMIND_LIB}/user-auth.mjs" ]] || { + echo "memind-lib 缺少 user-auth.mjs" >&2 + exit 1 +} + if [[ "${AUTO_YES}" -ne 1 && "${DRY_RUN}" -ne 1 ]]; then say "发布确认" echo "目标主机: ${HOST}" diff --git a/server/bootstrap.mjs b/server/bootstrap.mjs index 77f3998..557ee13 100644 --- a/server/bootstrap.mjs +++ b/server/bootstrap.mjs @@ -9,6 +9,9 @@ export async function bootstrapAdminServices() { } const memindLib = resolveMemindLib(); + const h5Root = + process.env.MEMIND_LIB_ROOT?.trim() ?? + path.join(projectRoot, '../Memind'); const pool = createDbPool(); const { loadCreateLlmProviderService } = await import('./llm-provider-loader.mjs'); const createLlmProviderService = await loadCreateLlmProviderService(); @@ -41,7 +44,6 @@ export async function bootstrapAdminServices() { const usersRoot = process.env.H5_USERS_ROOT?.trim() ?? path.join(projectRoot, 'data', 'users'); - const h5Root = memindLib; const apiTarget = process.env.TKMIND_API_TARGET ?? 'https://127.0.0.1:18006'; const apiSecret = process.env.TKMIND_SERVER__SECRET_KEY ?? 'local-dev-secret'; const plazaRedis = createNoopPlazaRedis(); diff --git a/server/lib-path.mjs b/server/lib-path.mjs index d49c8c4..456e457 100644 --- a/server/lib-path.mjs +++ b/server/lib-path.mjs @@ -4,7 +4,9 @@ import { pathToFileURL } from 'node:url'; import { projectRoot } from './load-env.mjs'; export function resolveMemindLib() { + const bundled = path.join(projectRoot, 'memind-lib'); const candidates = [ + fs.existsSync(path.join(bundled, 'user-auth.mjs')) ? bundled : null, process.env.MEMIND_LIB_ROOT?.trim(), path.join(projectRoot, '../test-memind'), path.join(projectRoot, '../memind'),