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'),