From 1f31dfd50693e5aaf5d83bbec5c1cdcbe5f6f58f Mon Sep 17 00:00:00 2001 From: let5sne Date: Wed, 15 Jul 2026 01:53:33 +0800 Subject: [PATCH] fix(aihr): keep pilot gate readable on old case schema --- scripts/demo-check.sh | 6 +++++- scripts/tests/demo-check-pilot-gates.test.sh | 11 +++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/scripts/demo-check.sh b/scripts/demo-check.sh index caceb204..97a5e0d6 100755 --- a/scripts/demo-check.sh +++ b/scripts/demo-check.sh @@ -152,7 +152,11 @@ check_pilot_samples() { hire_date_schema_count="$(pilot_sql_scalar "SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'aihr_org_snapshot' AND column_name = 'hire_date'")" sop_document_count="$(pilot_sql_scalar "SELECT COUNT(*) FROM aihr_knowledge_attach WHERE tenant_id = '$pilot_tenant' AND type = 'sop' AND status = 2")" case_stored_count="$(pilot_sql_scalar "SELECT COUNT(*) FROM aihr_case_record WHERE tenant_id = '$pilot_tenant' AND status = '已入库'")" - case_unmasked_count="$(pilot_sql_scalar "SELECT COUNT(*) FROM aihr_case_record WHERE tenant_id = '$pilot_tenant' AND status = '已入库' AND CONCAT_WS(' ', title, transcript, summary, learning_points, supervisor_comment) REGEXP '1[3-9][0-9]{9}|[[:alnum:]._%+-]+@[[:alnum:].-]+\\.[[:alpha:]]{2,}|[0-9]{1,2}(栋|幢|号楼|单元)[0-9]{3,4}|[0-9]{1,2}[--][0-9]{3,4}'")" + local case_pii_columns="title, transcript, summary" + if (( case_learning_schema_count == 2 )); then + case_pii_columns+=", learning_points, supervisor_comment" + fi + case_unmasked_count="$(pilot_sql_scalar "SELECT COUNT(*) FROM aihr_case_record WHERE tenant_id = '$pilot_tenant' AND status = '已入库' AND CONCAT_WS(' ', ${case_pii_columns}) REGEXP '1[3-9][0-9]{9}|[[:alnum:]._%+-]+@[[:alnum:].-]+\\.[[:alpha:]]{2,}|[0-9]{1,2}(栋|幢|号楼|单元)[0-9]{3,4}|[0-9]{1,2}[--][0-9]{3,4}'")" completed_people="$(pilot_sql_scalar " SELECT COUNT(*) FROM ( diff --git a/scripts/tests/demo-check-pilot-gates.test.sh b/scripts/tests/demo-check-pilot-gates.test.sh index d256dcbc..8e1c1c4e 100755 --- a/scripts/tests/demo-check-pilot-gates.test.sh +++ b/scripts/tests/demo-check-pilot-gates.test.sh @@ -221,4 +221,15 @@ grep -Fq 'strict pilot check requires AIHR_PILOT_START_DATE and AIHR_PILOT_END_D exit 1 } +pilot_sql_scalar "ALTER TABLE aihr_case_record DROP COLUMN learning_points, DROP COLUMN supervisor_comment" >/dev/null +old_case_schema_output="$(AIHR_PILOT_START_DATE=2026-07-07 AIHR_PILOT_END_DATE=2026-07-10 check_pilot_samples)" +[[ "$old_case_schema_output" == *'case_learning_schema=0/2'* ]] || { + echo "FAIL: old case schema did not remain inspectable: $old_case_schema_output" >&2 + exit 1 +} +[[ "$old_case_schema_output" == *'case_unmasked=0'* ]] || { + echo "FAIL: old case schema PII fallback failed: $old_case_schema_output" >&2 + exit 1 +} + echo "PASS: demo pilot gates use a bounded window and unique formal identities"