fix: align Windows dev, App compiler, and ASR

This commit is contained in:
key
2026-07-26 21:27:37 +08:00
parent f57e0a53c6
commit 9ae5f750c8
22 changed files with 698 additions and 791 deletions
+5 -1
View File
@@ -9,8 +9,12 @@ if [[ ! -d node_modules ]]; then
npm install --registry=https://registry.npmmirror.com
fi
if [[ -n "${PORTLESS_URL:-}" && -n "${PORT:-}" ]]; then
exec npm run dev -- --host "${HOST:-127.0.0.1}" --port "$PORT" --strictPort
fi
if [[ "${PORTLESS:-1}" != "0" ]] && command -v portless >/dev/null 2>&1; then
exec portless run --name wygj-admin --force bash -lc 'npm run dev -- --host "${HOST:-127.0.0.1}" --port "$PORT" --strictPort'
exec portless run --name wygj-admin --force bash "$ROOT_DIR/scripts/dev-frontend.sh"
fi
if [[ "${PORTLESS:-1}" != "0" ]]; then
+1 -1
View File
@@ -238,7 +238,7 @@ trap cleanup INT TERM EXIT
if using_portless_backend; then
portless alias --remove wygj-api >/dev/null 2>&1 || true
portless run --name wygj-api --force ./scripts/dev-backend.sh &
portless run --name wygj-api --force bash ./scripts/dev-backend.sh &
else
./scripts/dev-backend.sh &
fi
+4
View File
@@ -25,9 +25,13 @@ docker exec -i wygj-mysql mysql -uroot -proot --default-character-set=utf8mb4 ry
docker exec -i wygj-mysql mysql -uroot -proot --default-character-set=utf8mb4 ry-vue < "$ROOT_DIR/backend/script/sql/update/aihr_20260725_deepseek_v4_model_mysql8.sql"
docker exec -i wygj-mysql mysql -uroot -proot --default-character-set=utf8mb4 ry-vue < "$ROOT_DIR/backend/script/sql/aihr_practice_mysql8.sql"
docker exec -i wygj-mysql mysql -uroot -proot --default-character-set=utf8mb4 ry-vue < "$ROOT_DIR/backend/script/sql/update/aihr_20260725_sop_answer_partial_evidence_prompt_mysql8.sql"
docker exec -i wygj-mysql mysql -uroot -proot --default-character-set=utf8mb4 ry-vue < "$ROOT_DIR/backend/script/sql/update/aihr_20260717_learning_closure_mysql8.sql"
docker exec -i wygj-mysql mysql -uroot -proot --default-character-set=utf8mb4 ry-vue < "$ROOT_DIR/backend/script/sql/update/aihr_20260717_practice_five_position_catalog_mysql8.sql"
docker exec -i wygj-mysql mysql -uroot -proot --default-character-set=utf8mb4 ry-vue < "$ROOT_DIR/backend/script/sql/update/aihr_20260723_practice_content_operations_mysql8.sql"
docker exec -i wygj-mysql mysql -uroot -proot --default-character-set=utf8mb4 ry-vue < "$ROOT_DIR/backend/script/sql/update/aihr_20260724_practice_growth_curriculum_mysql8.sql"
docker exec -i wygj-mysql mysql -uroot -proot --default-character-set=utf8mb4 ry-vue < "$ROOT_DIR/backend/script/sql/update/aihr_20260717_web_ai_question_reward_mysql8.sql"
docker exec -i wygj-mysql mysql -uroot -proot --default-character-set=utf8mb4 ry-vue < "$ROOT_DIR/backend/script/sql/update/aihr_20260719_web_ai_database_secret_mysql8.sql"
docker exec -i wygj-mysql mysql -uroot -proot --default-character-set=utf8mb4 ry-vue < "$ROOT_DIR/backend/script/sql/update/aihr_20260719_web_search_qwen_mysql8.sql"
docker exec -i wygj-mysql mysql -uroot -proot --default-character-set=utf8mb4 ry-vue < "$ROOT_DIR/backend/script/sql/aihr_interview_result_mysql8.sql"
docker exec -i wygj-mysql mysql -uroot -proot --default-character-set=utf8mb4 ry-vue < "$ROOT_DIR/backend/script/sql/aihr_org_snapshot_mysql8.sql"
docker exec -i wygj-mysql mysql -uroot -proot --default-character-set=utf8mb4 ry-vue < "$ROOT_DIR/backend/script/sql/update/aihr_20260721_org_multi_project_membership_mysql8.sql"
+38 -1
View File
@@ -1,12 +1,35 @@
#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
RESET_SCRIPT="$ROOT_DIR/scripts/reset-dev-db.sh"
LEARNING_CLOSURE_MIGRATION="backend/script/sql/update/aihr_20260717_learning_closure_mysql8.sql"
PRACTICE_GROWTH_MIGRATION="backend/script/sql/update/aihr_20260724_practice_growth_curriculum_mysql8.sql"
WEB_AI_BASE_MIGRATION="backend/script/sql/update/aihr_20260717_web_ai_question_reward_mysql8.sql"
WEB_AI_SECRET_MIGRATION="backend/script/sql/update/aihr_20260719_web_ai_database_secret_mysql8.sql"
WEB_SEARCH_QWEN_MIGRATION="backend/script/sql/update/aihr_20260719_web_search_qwen_mysql8.sql"
learning_closure_line="$(grep -nF "$LEARNING_CLOSURE_MIGRATION" "$RESET_SCRIPT" | cut -d: -f1 || true)"
practice_growth_line="$(grep -nF "$PRACTICE_GROWTH_MIGRATION" "$RESET_SCRIPT" | cut -d: -f1 || true)"
if [[ -z "$learning_closure_line" || -z "$practice_growth_line" || "$learning_closure_line" -ge "$practice_growth_line" ]]; then
echo "FAIL: reset-dev-db.sh must apply learning closure before practice growth curriculum" >&2
exit 1
fi
web_ai_base_line="$(grep -nF "$WEB_AI_BASE_MIGRATION" "$RESET_SCRIPT" | cut -d: -f1 || true)"
web_ai_secret_line="$(grep -nF "$WEB_AI_SECRET_MIGRATION" "$RESET_SCRIPT" | cut -d: -f1 || true)"
web_search_qwen_line="$(grep -nF "$WEB_SEARCH_QWEN_MIGRATION" "$RESET_SCRIPT" | cut -d: -f1 || true)"
if [[ -z "$web_ai_base_line" || -z "$web_ai_secret_line" || -z "$web_search_qwen_line"
|| "$web_ai_base_line" -ge "$web_ai_secret_line" || "$web_ai_secret_line" -ge "$web_search_qwen_line" ]]; then
echo "FAIL: reset-dev-db.sh must apply the web AI base, secret, and Qwen migrations in order" >&2
exit 1
fi
if ! command -v docker >/dev/null || ! docker ps --format '{{.Names}}' | grep -qx 'wygj-mysql'; then
echo "SKIP: AIHR schema migration test requires wygj-mysql"
exit 0
fi
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
MYSQL_CONTAINER="wygj-mysql"
DB="wygj_aihr_schema_test_$$"
LEGACY_DB="wygj_aihr_candidate_legacy_test_$$"
@@ -31,6 +54,20 @@ trap cleanup EXIT
mysql -e "CREATE DATABASE \`$DB\` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;"
web_ai_base_migration="$ROOT_DIR/$WEB_AI_BASE_MIGRATION"
web_ai_secret_migration="$ROOT_DIR/$WEB_AI_SECRET_MIGRATION"
web_search_qwen_migration="$ROOT_DIR/$WEB_SEARCH_QWEN_MIGRATION"
mysql "$DB" < "$web_ai_base_migration"
mysql "$DB" < "$web_ai_base_migration"
mysql "$DB" < "$web_ai_secret_migration"
mysql "$DB" < "$web_ai_secret_migration"
mysql "$DB" < "$web_search_qwen_migration"
mysql "$DB" < "$web_search_qwen_migration"
web_search_columns="$(mysql "$DB" -N -B -e "SELECT GROUP_CONCAT(column_name ORDER BY ordinal_position) FROM information_schema.columns WHERE table_schema='$DB' AND table_name='aihr_web_search_provider' AND column_name IN ('api_key','agent_id','agent_version','last_test_ok','last_test_time');")"
test "$web_search_columns" = 'api_key,agent_id,agent_version,last_test_ok,last_test_time'
web_ai_secret_count="$(mysql "$DB" -N -B -e "SELECT COUNT(*) FROM aihr_web_ai_secret WHERE config_key='provider-encryption-v1' AND CHAR_LENGTH(config_value) > 0;")"
test "$web_ai_secret_count" = '1'
mysql "$DB" < "$ROOT_DIR/backend/script/sql/update/aihr_20260714_case_media_mysql8.sql"
mysql "$DB" <<'SQL'
CREATE TABLE aihr_case_record (