github-actions[bot]
2fb7602317
docs: auto-update documentation index [skip ci]
CI/CD Pipeline / test-build-boot (push) Failing after 1m37s
CI/CD Pipeline / test-admin (push) Failing after 2m30s
CI/CD Pipeline / test-bigscreen (push) Failing after 56s
CI/CD Pipeline / build-push (ljwx-admin) (push) Has been skipped
CI/CD Pipeline / build-push (ljwx-bigscreen) (push) Has been skipped
CI/CD Pipeline / build-push (ljwx-boot) (push) Has been skipped
CI/CD Pipeline / update-deploy (push) Has been skipped
CI/CD Pipeline / build-pr (ljwx-admin) (push) Has been skipped
CI/CD Pipeline / build-pr (ljwx-bigscreen) (push) Has been skipped
CI/CD Pipeline / build-pr (ljwx-boot) (push) Has been skipped
CI/CD Pipeline / security-scan (push) Successful in 20m44s
2026-02-24 07:51:13 +00:00
bruno and Qwen-Coder
5162b9c42a
docs: simplify CLAUDE.md files - remove verbose context rules and use concise format
...
CI/CD Pipeline / build-push (ljwx-admin) (push) Blocked by required conditions
CI/CD Pipeline / build-push (ljwx-bigscreen) (push) Blocked by required conditions
CI/CD Pipeline / build-push (ljwx-boot) (push) Blocked by required conditions
CI/CD Pipeline / update-deploy (push) Blocked by required conditions
CI/CD Pipeline / build-pr (ljwx-admin) (push) Blocked by required conditions
CI/CD Pipeline / build-pr (ljwx-bigscreen) (push) Blocked by required conditions
CI/CD Pipeline / build-pr (ljwx-boot) (push) Blocked by required conditions
CI/CD Pipeline / test-build-boot (push) Failing after 1m43s
CI/CD Pipeline / security-scan (push) Has been cancelled
CI/CD Pipeline / test-admin (push) Has been cancelled
CI/CD Pipeline / test-bigscreen (push) Has been cancelled
Co-authored-by: Qwen-Coder <[email protected] >
2026-02-24 15:50:38 +08:00
github-actions[bot]
201105b43f
docs: auto-update documentation index [skip ci]
CI/CD Pipeline / test-admin (push) Failing after 2m48s
CI/CD Pipeline / test-bigscreen (push) Failing after 59s
CI/CD Pipeline / test-build-boot (push) Failing after 5m25s
CI/CD Pipeline / build-push (ljwx-admin) (push) Has been skipped
CI/CD Pipeline / build-push (ljwx-bigscreen) (push) Has been skipped
CI/CD Pipeline / build-push (ljwx-boot) (push) Has been skipped
CI/CD Pipeline / update-deploy (push) Has been skipped
CI/CD Pipeline / build-pr (ljwx-admin) (push) Has been skipped
CI/CD Pipeline / build-pr (ljwx-bigscreen) (push) Has been skipped
CI/CD Pipeline / build-pr (ljwx-boot) (push) Has been skipped
CI/CD Pipeline / security-scan (push) Has been cancelled
2026-02-21 23:40:41 +00:00
BrunoGaoSZ
fdb7cb8c85
feat(openapi): harden contract export and align ljwx-phone to spec
2026-02-22 00:40:07 +01:00
BrunoGaoSZ
d43381ac98
fix(workflow): run online smoke on github-hosted runner
2026-02-21 15:10:35 +01:00
BrunoGaoSZ
55867d062a
test(workflow): add authenticated k3s online smoke checks
2026-02-21 15:08:43 +01:00
github-actions[bot]
a8e21a3a05
docs: auto-update documentation index [skip ci]
2026-02-21 13:55:17 +00:00
BrunoGaoSZ
d0ac632a9b
fix(workflow): scope link checks to PR with timeout
2026-02-21 14:54:51 +01:00
github-actions[bot]
71bb3a65c6
docs: auto-update documentation index [skip ci]
2026-02-21 13:54:17 +00:00
BrunoGaoSZ
c732c2b49e
fix(docs-ci): validate only changed markdown files
2026-02-21 14:53:51 +01:00
github-actions[bot]
03d3d4c151
docs: auto-update documentation index [skip ci]
2026-02-21 13:45:40 +00:00
BrunoGaoSZ
6bedd0da1e
fix(workflow): enable manual trigger and self-path push checks
2026-02-21 14:45:14 +01:00
BrunoGaoSZ
a633429312
fix(workflow): repair validate-documentation YAML parsing
2026-02-21 14:43:02 +01:00
BrunoGaoSZ
ab333fe4d1
ci(workflow): rerun after remote migration
2026-02-21 14:33:33 +01:00
BrunoGaoSZ
244490c106
ci(workflow): rerun after pro upgrade
2026-02-21 14:31:38 +01:00
BrunoGaoSZ
540c67294d
ci(workflow): retrigger full validation run
2026-02-21 13:35:27 +01:00
BrunoGaoSZ
b5b886a78e
fix(ci): align prometheus registry import and dashboard title assertion
2026-02-21 11:57:20 +01:00
BrunoGaoSZ
aa54491ce4
fix(ci): remove env-dependent bigscreen integration test from gate
2026-02-21 09:07:15 +01:00
BrunoGaoSZ
cd5ff4b5d2
fix(ci): resolve backend path and flaky bigscreen test gate
2026-02-21 08:59:44 +01:00
BrunoGaoSZ
6535a70506
fix(ci): stabilize automated test jobs in build workflow
2026-02-21 08:54:51 +01:00
BrunoGaoSZ
699de15dd7
ci(workflow): integrate automated test gates before image build
2026-02-21 08:52:37 +01:00
BrunoGaoSZ
bc5593ed8b
feat(observability): implement enterprise-grade k3s monitoring guardrails
2026-02-21 08:46:03 +01:00
BrunoGaoSZ
e8256d5dbe
feat(observability): add k3s alert rules and gate check script
2026-02-21 07:41:16 +01:00
BrunoGaoSZ
c7e0086caf
chore(docs): sync observability guide from genspark_ai_developer
2026-02-21 07:37:27 +01:00
BrunoGaoSZ
18cd48da2b
docs(observability): add k3s review checklist and link from guide
2026-02-21 05:36:11 +01:00
BrunoGaoSZ
0cea2dbd30
fix(ci): export runner temp bin before yq check
2026-02-21 00:58:07 +01:00
BrunoGaoSZ
fd5ee5e06e
fix(ci): install yq in runner temp bin
2026-02-21 00:56:12 +01:00
BrunoGaoSZ
14b3cda76c
fix(ci): make yq install fallback to curl on runner
2026-02-21 00:54:15 +01:00
bruno
21d7d01203
fully commits
2026-02-21 07:48:36 +08:00
bruno
9816020d8a
feat(db): consolidate Flyway migrations into V3.0.0 baseline
CI/CD Pipeline / test-build-boot (push) Successful in 7m49s
CI/CD Pipeline / test-admin (push) Successful in 7m9s
CI/CD Pipeline / test-bigscreen (push) Successful in 46s
CI/CD Pipeline / build-push (ljwx-admin) (push) Successful in 16s
CI/CD Pipeline / build-push (ljwx-bigscreen) (push) Successful in 16s
CI/CD Pipeline / build-push (ljwx-boot) (push) Successful in 54s
CI/CD Pipeline / build-pr (ljwx-admin) (push) Has been skipped
CI/CD Pipeline / update-deploy (push) Successful in 0s
CI/CD Pipeline / build-pr (ljwx-bigscreen) (push) Has been skipped
CI/CD Pipeline / build-pr (ljwx-boot) (push) Has been skipped
CI/CD Pipeline / security-scan (push) Successful in 20m46s
2026-02-20 23:56:50 +08:00
bruno and Qwen-Coder
fdd3bd6624
feat(scripts): add cache-image-prepull and harbor-reconcile-unused scripts
...
CI/CD Pipeline / test-build-boot (push) Successful in 2m19s
CI/CD Pipeline / test-admin (push) Successful in 1m34s
CI/CD Pipeline / test-bigscreen (push) Successful in 58s
CI/CD Pipeline / build-push (ljwx-admin) (push) Successful in 2m53s
CI/CD Pipeline / build-push (ljwx-bigscreen) (push) Successful in 42s
CI/CD Pipeline / build-push (ljwx-boot) (push) Successful in 8m56s
CI/CD Pipeline / build-pr (ljwx-admin) (push) Has been skipped
CI/CD Pipeline / update-deploy (push) Successful in 1s
CI/CD Pipeline / build-pr (ljwx-bigscreen) (push) Has been skipped
CI/CD Pipeline / build-pr (ljwx-boot) (push) Has been skipped
CI/CD Pipeline / security-scan (push) Successful in 20m45s
- Add cache-image-prepull.sh for pre-caching off-peak images
- Add harbor-reconcile-unused.sh for reconciling unused Harbor artifacts
- Add Watch4SDK_V2.16.pdf documentation
Co-authored-by: Qwen-Coder <[email protected] >
2026-02-20 21:38:40 +08:00
bruno
f8796b17b8
fix(ci): ensure docker cli for docker-builder jobs
CI/CD Pipeline / test-bigscreen (push) Waiting to run
CI/CD Pipeline / build-push (ljwx-admin) (push) Blocked by required conditions
CI/CD Pipeline / build-push (ljwx-bigscreen) (push) Blocked by required conditions
CI/CD Pipeline / build-push (ljwx-boot) (push) Blocked by required conditions
CI/CD Pipeline / update-deploy (push) Blocked by required conditions
CI/CD Pipeline / build-pr (ljwx-admin) (push) Blocked by required conditions
CI/CD Pipeline / build-pr (ljwx-bigscreen) (push) Blocked by required conditions
CI/CD Pipeline / build-pr (ljwx-boot) (push) Blocked by required conditions
CI/CD Pipeline / test-build-boot (push) Successful in 2m26s
CI/CD Pipeline / security-scan (push) Has been cancelled
CI/CD Pipeline / test-admin (push) Has been cancelled
2026-02-20 21:35:47 +08:00
bruno
7bfb160c0c
chore(ci): skip admin eslint in pipeline by default
CI/CD Pipeline / test-build-boot (push) Successful in 2m30s
CI/CD Pipeline / test-admin (push) Successful in 1m30s
CI/CD Pipeline / test-bigscreen (push) Successful in 34s
CI/CD Pipeline / build-push (ljwx-admin) (push) Failing after 11s
CI/CD Pipeline / build-push (ljwx-bigscreen) (push) Failing after 14s
CI/CD Pipeline / build-push (ljwx-boot) (push) Failing after 12s
CI/CD Pipeline / build-pr (ljwx-admin) (push) Has been skipped
CI/CD Pipeline / update-deploy (push) Has been skipped
CI/CD Pipeline / build-pr (ljwx-bigscreen) (push) Has been skipped
CI/CD Pipeline / build-pr (ljwx-boot) (push) Has been skipped
CI/CD Pipeline / security-scan (push) Successful in 20m39s
2026-02-20 21:04:36 +08:00
bruno
026d6875a7
chore(ci): align two-stage gitops workflow and docs
CI/CD Pipeline / build-push (ljwx-admin) (push) Blocked by required conditions
CI/CD Pipeline / build-push (ljwx-bigscreen) (push) Blocked by required conditions
CI/CD Pipeline / build-push (ljwx-boot) (push) Blocked by required conditions
CI/CD Pipeline / update-deploy (push) Blocked by required conditions
CI/CD Pipeline / build-pr (ljwx-admin) (push) Blocked by required conditions
CI/CD Pipeline / build-pr (ljwx-bigscreen) (push) Blocked by required conditions
CI/CD Pipeline / build-pr (ljwx-boot) (push) Blocked by required conditions
CI/CD Pipeline / test-build-boot (push) Successful in 8m8s
CI/CD Pipeline / security-scan (push) Successful in 20m42s
CI/CD Pipeline / test-admin (push) Successful in 15m23s
CI/CD Pipeline / test-bigscreen (push) Has been cancelled
2026-02-20 20:40:35 +08:00
bruno
f0513ef394
chore(ci): retrigger workflow after runner label fix
CI/CD Pipeline / test-build-boot (push) Successful in 2m52s
CI/CD Pipeline / test-admin (push) Successful in 15m55s
CI/CD Pipeline / test-bigscreen (push) Successful in 34s
CI/CD Pipeline / build-pr (ljwx-admin) (push) Has been skipped
CI/CD Pipeline / build-push (ljwx-admin) (push) Failing after 15s
CI/CD Pipeline / build-push (ljwx-bigscreen) (push) Failing after 14s
CI/CD Pipeline / build-push (ljwx-boot) (push) Failing after 11s
CI/CD Pipeline / update-deploy (push) Has been skipped
CI/CD Pipeline / build-pr (ljwx-bigscreen) (push) Has been skipped
CI/CD Pipeline / build-pr (ljwx-boot) (push) Has been skipped
CI/CD Pipeline / security-scan (push) Successful in 20m41s
2026-02-19 23:33:03 +08:00
bruno
518f484654
fix(flyway): resolve cross-module 2.17 conflicts
CI/CD Pipeline / test-build-boot (push) Successful in 2m29s
CI/CD Pipeline / security-scan (push) Failing after 18m35s
CI/CD Pipeline / test-admin (push) Failing after 16m4s
CI/CD Pipeline / build-pr (ljwx-admin) (push) Has been skipped
CI/CD Pipeline / build-pr (ljwx-bigscreen) (push) Has been skipped
CI/CD Pipeline / build-pr (ljwx-boot) (push) Has been skipped
CI/CD Pipeline / test-bigscreen (push) Successful in 31s
CI/CD Pipeline / build-push (ljwx-admin) (push) Has been skipped
CI/CD Pipeline / build-push (ljwx-bigscreen) (push) Has been skipped
CI/CD Pipeline / build-push (ljwx-boot) (push) Has been skipped
CI/CD Pipeline / update-deploy (push) Has been skipped
2026-02-19 22:51:59 +08:00
bruno
408b1c6dec
fix(flyway): resolve duplicate migration versions
CI/CD Pipeline / test-build-boot (push) Successful in 5m44s
CI/CD Pipeline / security-scan (push) Successful in 20m40s
CI/CD Pipeline / build-pr (ljwx-admin) (push) Has been skipped
CI/CD Pipeline / build-pr (ljwx-bigscreen) (push) Has been skipped
CI/CD Pipeline / build-pr (ljwx-boot) (push) Has been skipped
CI/CD Pipeline / test-admin (push) Successful in 16m17s
CI/CD Pipeline / test-bigscreen (push) Successful in 35s
CI/CD Pipeline / build-push (ljwx-admin) (push) Successful in 11s
CI/CD Pipeline / build-push (ljwx-bigscreen) (push) Successful in 10s
CI/CD Pipeline / build-push (ljwx-boot) (push) Successful in 45s
CI/CD Pipeline / update-deploy (push) Successful in 0s
2026-02-19 21:49:58 +08:00
bruno
28d15fc2a5
commit docs/04-operations/database/postgres-migration-plan.md
CI/CD Pipeline / test-admin (push) Waiting to run
CI/CD Pipeline / test-bigscreen (push) Waiting to run
CI/CD Pipeline / build-push (ljwx-admin) (push) Blocked by required conditions
CI/CD Pipeline / build-push (ljwx-bigscreen) (push) Blocked by required conditions
CI/CD Pipeline / build-push (ljwx-boot) (push) Blocked by required conditions
CI/CD Pipeline / update-deploy (push) Blocked by required conditions
CI/CD Pipeline / build-pr (ljwx-admin) (push) Blocked by required conditions
CI/CD Pipeline / build-pr (ljwx-bigscreen) (push) Blocked by required conditions
CI/CD Pipeline / build-pr (ljwx-boot) (push) Blocked by required conditions
CI/CD Pipeline / test-build-boot (push) Has been cancelled
CI/CD Pipeline / security-scan (push) Has been cancelled
2026-02-19 21:46:40 +08:00
bruno
22a714545f
chore: trigger gitea workflow deploy to local k8s
CI/CD Pipeline / test-build-boot (push) Successful in 8m6s
CI/CD Pipeline / security-scan (push) Successful in 20m42s
CI/CD Pipeline / build-pr (ljwx-admin) (push) Has been skipped
CI/CD Pipeline / build-pr (ljwx-bigscreen) (push) Has been skipped
CI/CD Pipeline / build-pr (ljwx-boot) (push) Has been skipped
CI/CD Pipeline / test-admin (push) Successful in 14m59s
CI/CD Pipeline / test-bigscreen (push) Successful in 33s
CI/CD Pipeline / build-push (ljwx-admin) (push) Successful in 11s
CI/CD Pipeline / build-push (ljwx-bigscreen) (push) Successful in 10s
CI/CD Pipeline / build-push (ljwx-boot) (push) Successful in 10s
CI/CD Pipeline / update-deploy (push) Successful in 1s
2026-02-19 17:04:04 +08:00
bruno
4d12ad6854
commit docs/04-operations/database/postgres-migration-plan.md
CI/CD Pipeline / test-build-boot (push) Successful in 2m32s
CI/CD Pipeline / test-admin (push) Successful in 15m11s
CI/CD Pipeline / test-bigscreen (push) Successful in 35s
CI/CD Pipeline / security-scan (push) Successful in 20m40s
CI/CD Pipeline / build-push (ljwx-admin) (push) Successful in 10s
CI/CD Pipeline / build-push (ljwx-bigscreen) (push) Successful in 11s
CI/CD Pipeline / build-push (ljwx-boot) (push) Successful in 10s
CI/CD Pipeline / build-pr (ljwx-admin) (push) Has been skipped
CI/CD Pipeline / update-deploy (push) Successful in 1s
CI/CD Pipeline / build-pr (ljwx-bigscreen) (push) Has been skipped
CI/CD Pipeline / build-pr (ljwx-boot) (push) Has been skipped
2026-02-19 14:42:04 +08:00
bruno
265593a5ba
commit docs/04-operations/database/postgres-migration-plan.md
CI/CD Pipeline / test-bigscreen (push) Waiting to run
CI/CD Pipeline / build-push (ljwx-admin) (push) Blocked by required conditions
CI/CD Pipeline / build-push (ljwx-bigscreen) (push) Blocked by required conditions
CI/CD Pipeline / build-push (ljwx-boot) (push) Blocked by required conditions
CI/CD Pipeline / update-deploy (push) Blocked by required conditions
CI/CD Pipeline / test-build-boot (push) Successful in 7m56s
CI/CD Pipeline / security-scan (push) Successful in 20m41s
CI/CD Pipeline / build-pr (ljwx-admin) (push) Has been skipped
CI/CD Pipeline / build-pr (ljwx-bigscreen) (push) Has been skipped
CI/CD Pipeline / build-pr (ljwx-boot) (push) Has been skipped
CI/CD Pipeline / test-admin (push) Has been cancelled
2026-02-19 14:19:06 +08:00
bruno
281add070c
commit docs/04-operations/database/postgres-migration-plan.md
CI/CD Pipeline / test-build-boot (push) Successful in 5m34s
CI/CD Pipeline / test-admin (push) Successful in 15m8s
CI/CD Pipeline / security-scan (push) Successful in 20m41s
CI/CD Pipeline / build-pr (ljwx-admin) (push) Has been skipped
CI/CD Pipeline / build-pr (ljwx-bigscreen) (push) Has been skipped
CI/CD Pipeline / build-pr (ljwx-boot) (push) Has been skipped
CI/CD Pipeline / test-bigscreen (push) Successful in 34s
CI/CD Pipeline / build-push (ljwx-admin) (push) Successful in 49s
CI/CD Pipeline / build-push (ljwx-bigscreen) (push) Successful in 13s
CI/CD Pipeline / build-push (ljwx-boot) (push) Successful in 44s
CI/CD Pipeline / update-deploy (push) Successful in 0s
2026-02-19 12:05:49 +08:00
bruno
03a4b7ffee
commit docs/04-operations/database/postgres-migration-plan.md
CI/CD Pipeline / test-admin (push) Waiting to run
CI/CD Pipeline / test-bigscreen (push) Waiting to run
CI/CD Pipeline / build-push (ljwx-admin) (push) Blocked by required conditions
CI/CD Pipeline / build-push (ljwx-bigscreen) (push) Blocked by required conditions
CI/CD Pipeline / build-push (ljwx-boot) (push) Blocked by required conditions
CI/CD Pipeline / update-deploy (push) Blocked by required conditions
CI/CD Pipeline / build-pr (ljwx-admin) (push) Blocked by required conditions
CI/CD Pipeline / build-pr (ljwx-bigscreen) (push) Blocked by required conditions
CI/CD Pipeline / build-pr (ljwx-boot) (push) Blocked by required conditions
CI/CD Pipeline / test-build-boot (push) Has been cancelled
CI/CD Pipeline / security-scan (push) Has been cancelled
2026-02-19 11:57:42 +08:00
BrunoGaoSZ
a2da4b3333
commit all
2026-02-18 13:59:03 +01:00
BrunoGaoSZ
c94a20ad25
feat: add GitOps build+deploy workflows (k3s-eu)
2026-02-18 13:47:51 +01:00
bruno
6d5279f1c9
commit all
2026-02-18 19:44:24 +08:00
bruno and Claude Sonnet 4.5
780a34d05f
docs(device-binding): 添加端到端实施计划 - 覆盖所有模块
...
## 新增文档
### device-binding-e2e-implementation-plan.md
完整的端到端实施计划,覆盖所有模块:
**Phase 1: ljwx-boot (后端 V2 API)**
- ✅ B-1: V2 API 控制器已创建
- ⏳ B-2: 服务接口补充
- ⏳ B-3: 服务实现补充
- ⏳ B-4: DTO 完善
- ⏳ B-5: 集成测试
**Phase 2: ljwx-phone (手机端)**
- ⏳ P-1: V2 API 服务封装
- ⏳ P-2: 蓝牙签名请求
- ⏳ P-3: 绑定流程页面
- ✅ P-4: SSE 集成(已完成)
- ✅ P-5: 轮询器集成(已完成)
**Phase 3: ljwx-watch (手表端)**
- ⏳ W-1: 密钥存储
- ⏳ W-2: HMAC-SHA256 签名
- ⏳ W-3: BLE 特征值定义
- ⏳ W-4: 签名流程实现
**Phase 4: ljwx-admin (管理后台)**
- ⏳ A-1: V2 审批列表
- ⏳ A-2: 签名验证状态显示
- ✅ A-3: 批量审批确认(已完成)
**Phase 5: ljwx-bigscreen (大屏监控)**
- ⏳ S-1: 设备绑定统计
- ⏳ S-2: 签名验证成功率
- ⏳ S-3: 实时绑定流
## 新增后端控制器
### DeviceBindV2Controller.java
完整的设备绑定 V2 API 控制器:
**已实现端点**:
- GET /api/v2/device/challenge/{deviceSn} - 获取 Challenge
- POST /api/v2/device/bind/request - 提交绑定申请(带签名)
- GET /api/v2/device/bind/status/{approvalId} - 查询申请状态
- POST /api/v2/device/bind/approve/{approvalId} - 审批绑定
- POST /api/v2/device/bind/reject/{approvalId} - 驳回绑定
- POST /api/v2/device/bind/batch-approve/confirm-token - 生成确认令牌
## 总体进度
- **总任务**: 20 个
- **已完成**: 4 个 (20%)
- **进行中**: ljwx-boot Phase 1
## 下一步
1. 完成后端 V2 API 服务层实现
2. 运行 E2E 测试验证
3. 开始手机端和手表端集成
Co-Authored-By: Claude Sonnet 4.5 <[email protected] >
2026-02-08 19:55:53 +08:00
bruno and Claude Sonnet 4.5
51d3c99402
feat(test): 统一测试入口 - 自动登录和token管理
...
## 改进内容
### 统一测试入口
- ✅ test_e2e_flow.py 支持自动登录
- 默认使用 admin/kt123456 凭据
- 自动SHA256哈希密码
- 使用正确的 /auth/user_name 端点
- 自动保存token到 .token 文件
- 支持手动指定token
### 使用方式
```bash
# 自动登录运行(推荐)
python test_e2e_flow.py
# 指定base URL
python test_e2e_flow.py --base-url http://localhost:9998
# 使用已有token
python test_e2e_flow.py --token <your-token>
# 自定义登录凭据
python test_e2e_flow.py --username admin --password kt123456
```
### 修复问题
- 🐛 修复登录API端点: /auth/login → /auth/user_name
- 🐛 修复密码处理: 明文 → SHA256哈希
- 🐛 修复token字段: data.tokenValue → data.token
- 🐛 修复默认密码: admin123 → kt123456
- 🐛 修复设备密钥: e2e_test_secret_001 → dev-secret-key-12345
- 🐛 修复challenge API: 添加认证头
- 🐛 增强错误日志: 显示完整响应信息
### 测试状态
- ✅ 自动登录成功
- ✅ 步骤 1-4 通过 (租户/部门/员工/设备注册)
- ⏳ 步骤 5-8 待实现 (需要实现 V2 API 后端端点)
### 待实现
V2 API 后端端点:
- GET /api/v2/device/challenge/{deviceSn}
- POST /api/v2/device/bind/request
- GET /api/v2/device/bind/status/{approvalId}
- POST /api/v2/device/bind/approve/{approvalId}
Co-Authored-By: Claude Sonnet 4.5 <[email protected] >
2026-02-08 19:50:45 +08:00
bruno and Claude Sonnet 4.5
0b16b3f395
feat(bigscreen): complete Phase 1 health dashboard optimization
...
Migrated all health pages to unified design system:
**health_prediction_view.html:**
- Reduced from 792 to 476 lines (40% reduction)
- Removed duplicate CSS and jQuery dependency
- Integrated design-system.css and health-pages.css
- Using platform.createChart() for all visualizations
**health_recommendation_view.html:**
- Reduced from 788 to 663 lines (15.9% reduction)
- Removed duplicate CSS and jQuery dependency
- Integrated design-system.css and health-pages.css
- Using platform.createChart() for all charts
**Phase 1 Summary:**
- Total lines removed: 682 lines (26.6% reduction)
- Unified design system across all health pages
- jQuery completely removed
- Improved maintainability and performance
Co-Authored-By: Claude Sonnet 4.5 <[email protected] >
2026-02-08 19:41:57 +08:00
bruno and Claude Sonnet 4.5
011f05736f
feat(device-binding): Phase 3 完成 - 体验优化 + E2E测试基础设施 ✅
...
## Phase 3 实施完成
### P3-1: 前端轮询优化 (ljwx-phone)
- ✅ 实现指数退避轮询器 (ExponentialBackoffPoller)
- 初始间隔 2s,最大间隔 30s
- 随机抖动 ±20% 避免惊群效应
- 自动重置机制
### P3-2: SSE 实时推送 (ljwx-phone)
- ✅ 实现 SSE 客户端服务 (SseClient)
- 自动重连机制 (指数退避)
- 心跳检测 (30s 超时)
- 事件类型路由
### P3-3: 批量审批确认机制
- ✅ 后端 confirmToken 机制
- Redis 存储,5分钟过期
- 防重放攻击
- 批量操作原子性保证
- ✅ 前端确认弹窗 (BatchApprovalConfirmModal.vue)
- 显示待审批设备列表
- 二次确认交互
### P3-4: 设备绑定 V2 API (HMAC-SHA256 签名验证)
- ✅ DeviceBindEventController - SSE 事件推送
- ✅ DeviceSignatureService - HMAC-SHA256 签名验证
- ✅ DeviceKeyService - 设备密钥管理
- ✅ ChallengeVO, ConfirmTokenVO - V2 API 响应对象
- ✅ BindRequestStatus - 绑定请求状态枚举
## E2E 测试基础设施
### 测试脚本
- ✅ test_e2e_flow.py - 完整端到端测试
- 租户/部门/员工创建
- 设备注册与绑定
- 健康数据上传与查询
- 告警与消息生成
- ✅ test_device_binding_v2.py - 设备绑定 V2 API 测试
- Challenge 获取
- HMAC-SHA256 签名验证
- 绑定请求提交
- 审批流程测试
### 测试配置
- ✅ api-map.yaml - 新增 device_binding_v2 API 映射
- 11 个 V2 API 端点完整定义
- 请求/响应 schema 规范
- ✅ recipes/device_binding_v2_test.yaml - V2 测试场景配置
### 测试文档
- ✅ E2E_FLOW_TEST_GUIDE.md - E2E 测试指南
- ✅ DEVICE_BINDING_V2_TEST_GUIDE.md - V2 API 测试指南
- ✅ device-binding-phase3-implementation-report.md - Phase 3 实施报告
## 修复问题
- 🐛 修复 UserContext API 调用错误
- getUserId() → getCurrentUserId()
- getUserName() → getCurrentUserName()
- 🐛 修复 TDeviceUser 实体方法调用
- setUpdatedAt() → setUpdateTime()
- 🐛 修复 BizException 构造函数签名
- 🐛 修复测试脚本 API 端点
- /t_org/ → /sys_org_units/
- /t_user/ → /sys_user/
- 🐛 修复认证头格式
- satoken: <token> → Authorization: Bearer <token>
## 测试状态
- ✅ 编译通过,应用启动成功 (端口 9998)
- ✅ E2E 测试步骤 1-4 通过 (租户/部门/员工/设备注册)
- ⏳ 步骤 5-8 待完成 (需配置设备密钥)
Co-Authored-By: Claude Sonnet 4.5 <[email protected] >
2026-02-08 19:36:01 +08:00