# 复核页保存链路冒烟
候选 ID:`review-save-smoke`
## 诊断流程样例
### 场景
用户打开 `商品域最终体系_生命周期映射_session复核_2026-05-08_v3.html`,点击保存后页面提示 `保存失败:invalid_json_response`。
### 工具入口
```bash
python tools/review_save_smoke.py \\
--html /Users/bytedance/Documents/job-bu/data-analysis-workspace/adhoc/2026-04-28_商品域生命周期映射/商品域最终体系_生命周期映射_session复核_2026-05-08_v3.html \\
--server http://127.0.0.1:18765 \\
--row-index 38061
```
### 检查步骤
1. 解析 HTML 文件名,得到预期版本 `2026-05-08_v3` 和预期底表 `2026-05-08_v3.csv`。
2. 请求 `/api/health`,确认服务当前写入的 CSV 是否也是 v3。
3. 对 `row_index=38061` 发起一次可逆 POST,模拟前端 `保存到底表`。
4. 对返回体做严格 JSON 解析,并扫描 `NaN`、`Infinity`、`-Infinity`。
5. 重新读取 CSV,确认目标行字段确实落盘,再恢复原值或记录备份文件。
### 成功输出
```text
health_csv_match: true
post_status: 200
valid_json: true
nan_tokens: 0
csv_written: true
backup_created: true
```
### 失败输出
```text
health_csv_match: false
expected_csv: 2026-05-08_v3.csv
actual_csv: 2026-04-28_v1.csv
valid_json: false
error: invalid_json_response
nan_tokens: 10
next_action: restart review_edit_server with v3 csv and sanitize pandas NaN before jsonify
```