feat(all): 数据库模块化拆分与版本化迁移、任务引擎命名体系收敛、物理输出校验加固与用户配置接通
- server/db: 拆 4929 行 db.rs 单体为 db/ 目录,migrations.rs 引入 PRAGMA user_version
版本化迁移运行器(M1~M13)
- 任务引擎 Phase 6/7b/7c 改名收敛:EngineStageConfig→PhaseConfig、StagePolicy→ResumePolicy、
Converged→Completed、删除 task_type 列、success_method 拆 tlusty_/synspec_ 双列、
新增 tlusty_status/synspec_status 半失败阶段守卫
- 科学正确性加固:conv_check 任意行 NaN/Inf/溢出判无效(0 行容忍)、新增 spec_is_valid
校验 SYNSPEC 脏谱、itek_history 逐次迭代全量保真、fmt_abn powf 溢出饱和
- 用户配置真正接通:tlusty_chain/tlusty_input 由死字段经 调度器→TaskSpec→executor→runner
透传生效;config 加载期 validate + deny_unknown_fields + 解析失败记 warn
- 调度修复:H1 活锁(pending_strategies 跳过已失败策略)、种子查找错误不再静默降级冷启动
- dashboard: 阶段配置面板 tlusty_stage/synspec_stage、"已完成"标签、迭代诊断展示
- docs: 新增 database_refactor_design.md,同步 database/api/PIPELINE/workflow_detail
This commit is contained in:
+37
-2
@@ -12,7 +12,7 @@
|
||||
# ./scripts/deploy.sh -e remote -b compose -r all --skip-assets # 跳过静态资源同步,仅更新程序代码
|
||||
# ==============================================================================
|
||||
|
||||
set -eo pipefail
|
||||
set -euo pipefail
|
||||
|
||||
GREEN='\033[0;32m'
|
||||
BLUE='\033[0;34m'
|
||||
@@ -45,6 +45,37 @@ PROFILE_FILE=""
|
||||
PROFILE_LOADED=""
|
||||
PASSED_CLI_ARGS=("$@")
|
||||
|
||||
# 在 set -u 下,以下"可选/按需出现"的变量若从未赋值,引用即报错。这里统一预置
|
||||
# 空初值,保留"笔误即报错"的语义(真正的拼写错误仍会在 set -u 下被捕获),
|
||||
# 仅对确实合法的可选变量放开。DEPLOY_* 来自可能未定义的 Profile/env,最易踩坑。
|
||||
ACTION=""
|
||||
PROFILE_ARG=""
|
||||
CLI_ENV_SET=""
|
||||
CLI_BACKEND_SET=""
|
||||
CLI_ROLE_SET=""
|
||||
CLI_ASSETS_SET=""
|
||||
SYNC_ASSETS=""
|
||||
# Profile 中可能定义的运行期变量(DCTS_*/LOG_*),write_remote_runtime_env 会读取。
|
||||
DEPLOY_ENV="${DEPLOY_ENV:-}"
|
||||
DEPLOY_BACKEND="${DEPLOY_BACKEND:-}"
|
||||
DEPLOY_ROLE="${DEPLOY_ROLE:-}"
|
||||
DCTS_NODE_ID="${DCTS_NODE_ID:-}"
|
||||
DCTS_SERVER_URL="${DCTS_SERVER_URL:-}"
|
||||
DCTS_MAX_SLOTS="${DCTS_MAX_SLOTS:-}"
|
||||
DCTS_PORT="${DCTS_PORT:-}"
|
||||
DCTS_ADMIN_TOKEN="${DCTS_ADMIN_TOKEN:-}"
|
||||
DCTS_AUTH_DISABLE="${DCTS_AUTH_DISABLE:-}"
|
||||
LOG_DIR="${LOG_DIR:-}"
|
||||
DCTS_LOG="${DCTS_LOG:-}"
|
||||
DCTS_HEARTBEAT_SEC="${DCTS_HEARTBEAT_SEC:-}"
|
||||
# 远程 systemd 部署时父进程通过 env 传入的预构建镜像归档(可能为空)。
|
||||
PREBUILT_TAR="${PREBUILT_TAR:-}"
|
||||
# SSH 复用相关:setup_ssh_control() 中赋值,但 check_remote_is_windows 等函数会先读取,
|
||||
# 预置空初值避免 set -u 下"使用前未定义"。
|
||||
SSH_OPTS=""
|
||||
SSH_CONTROL_PATH=""
|
||||
SSH_REUSED_CONNECTION=""
|
||||
|
||||
load_profile_file() {
|
||||
local pfile="$1"
|
||||
if [ -f "$pfile" ]; then
|
||||
@@ -856,7 +887,11 @@ elif [ "${ENV_MODE}" = "remote" ] && [ "${BACKEND_MODE}" = "compose" ]; then
|
||||
win_load_cmd="${win_load_cmd}Write-Output done"
|
||||
ssh -p "${REMOTE_PORT}" ${SSH_OPTS} "${REMOTE_USER}@${REMOTE_IP}" "powershell -Command \"Set-Location '${REMOTE_DIR}'; New-Item -ItemType Directory -Force -Path 'data/logs','data/seeds','data/result','data/node_work','assets','workflows' -ErrorAction SilentlyContinue; ${win_load_cmd}; docker compose up -d --force-recreate ${SERVICES}; Start-Sleep -Seconds 3; docker compose ps\""
|
||||
else
|
||||
ssh -p "${REMOTE_PORT}" ${SSH_OPTS} "${REMOTE_USER}@${REMOTE_IP}" "cd '${REMOTE_DIR}' && mkdir -p ./data ./data/logs ./data/seeds ./data/result ./data/node_work ./assets ./workflows 2>/dev/null || true && (docker run --rm -v \"\$(pwd)\":/work alpine chown -R 65532:65532 /work/data 2>/dev/null || true) && ${remote_load_cmd} && docker compose up -d --force-recreate ${SERVICES} && sleep 3 && docker compose ps"
|
||||
# 远端属主修正:容器内 UID 65532(dcts) 需对 ./data 有写权限才能归档产物。
|
||||
# 优先 docker run alpine chown(不依赖远端 root);失败时若远端本身是 root 登录,
|
||||
# 退化用系统 chown。任一成功即可,全失败则明显告警——旧版 `|| true` 会静默吞错,
|
||||
# 导致节点上线后归档一律 Permission denied、默默丢失科学产物。
|
||||
ssh -p "${REMOTE_PORT}" ${SSH_OPTS} "${REMOTE_USER}@${REMOTE_IP}" "cd '${REMOTE_DIR}' && mkdir -p ./data ./data/logs ./data/seeds ./data/result ./data/node_work ./assets ./workflows 2>/dev/null || true && ( { docker run --rm -v \"\$(pwd)\":/work alpine chown -R 65532:65532 /work/data && echo CHOWN_OK; } || { [ \"\$(id -u)\" = 0 ] && chown -R 65532:65532 ./data && echo CHOWN_OK_SYS; } || { echo '!! chown 失败:远端既无 docker 也非 root,data 属主未修正,节点归档将 Permission denied' >&2; exit 1; } ) && ${remote_load_cmd} && docker compose up -d --force-recreate ${SERVICES} && sleep 3 && docker compose ps"
|
||||
fi
|
||||
|
||||
if [ -z "${PREBUILT_TAR}" ]; then
|
||||
|
||||
Reference in New Issue
Block a user