feat: HSAP platform v2 — modular navigation, quality review, audit log, world model simulation

Major changes:
- New frontend (platform/web/): Vite + React 18 + TypeScript + Tailwind
- 4-module navigation: 数据送标 / 模型管理 / 车队管理 / 系统管理
- Data catalog with charts (DMS/ADAS/Lane 3-tab view)
- Quality review workflow (标注质检): Good/Fine/Bad scoring with auto-advance
- Audit enhancements: batch operations, rejection categories, Feishu notifications
- Operation audit log (操作日志)
- World model simulation studio (仿真工坊)
- Dataset version management with snapshots and diff
- ADAS 7-class dataset integration (138K images organized + compressed)
- User management with Feishu integration and pagination
- CRUD/search/filter on all pages, card layout redesign
- PIL-optimized image overlay rendering
- Auto-snapshot on build, in_review workflow stage
- Removed embedded algorithm code (now in workspace)
This commit is contained in:
2026-06-03 11:40:21 +08:00
parent 7c43b44c57
commit e72bc061c5
5487 changed files with 979207 additions and 6197 deletions

31
scripts/smoke_pending_gate.sh Executable file
View File

@@ -0,0 +1,31 @@
#!/usr/bin/env bash
# ML 自动化 P0manifest 对齐 + pending 批次 stage 字段可读
set -euo pipefail
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
cd "$ROOT"
bash scripts/smoke_manifest_alignment.sh
python3 <<'PY'
import sys
from pathlib import Path
import yaml
root = Path(".")
wf = yaml.safe_load((root / "workflow.registry.yaml").read_text(encoding="utf-8"))
sys.path.insert(0, str(root / "platform"))
from as_platform.data.core import get_pending_report # noqa: E402
report = get_pending_report(wf)
stages = {b.get("stage") for b in report.get("batches") or []}
required = {"raw_pool", "out_for_labeling", "returned", "labeling_submitted"}
missing = required - stages
if missing:
print("PENDING_GATE_WARN: no batches in stages", missing, "(ok if inbox empty)")
else:
print("PENDING_GATE_STAGES_OK", sorted(stages))
print("PENDING_GATE_OK batches=", len(report.get("batches") or []))
PY
echo "OK smoke_pending_gate"