# 2026-06-06 — 前端 14 页 API 契约审计（含凭据轮询）

## 摘要

对 14 页及 composables 与后端 API 做静态契约对照；确认凭据轮询 `add-by-ip` / `pending` 四端点与预设 `username` 前后端一致；补齐共享类型与 SSOT 文档。

## 动机

凭据轮询功能已合入（`4ba45ab`），需在 2026-06-04 深审 closure 基础上增量验证 API 契约，避免部署后前后端字段漂移。

## 涉及文件

- `docs/reports/2026-06-06-frontend-14p-contract-audit.md` — 审计报告（新）
- `docs/project/nexus-functional-development-guide.md` — §12.2、§12.7
- `docs/project/nexus-functional-development-guide-appendix.md` — 附录 J
- `frontend/src/types/api.ts` — `PendingServerItem`、`AddByIpResponse`、`PollErrorItem`
- `frontend/src/pages/ServersPage.vue` — 改用共享类型

## 迁移 / 重启

无 DB 变更；文档与类型仅影响前端构建。

## 验证

```bash
.venv/bin/pytest tests/test_credential_poller.py -q  # 7 passed
cd frontend && npx vite build
```

## 生产验证（2026-06-06 续）

- `https://api.synaglobal.vip/health` → ok  
- OpenAPI 含四条 pending / add-by-ip 端点  
- 生产 `ServersPage` / `CredentialsPage` 分块已含 `add-by-ip`、`username`（与本地 build 哈希一致）  
- 详见 [docs/reports/2026-06-06-credential-polling-production-verification.md](../reports/2026-06-06-credential-polling-production-verification.md)

## 结论

14 页 API 契约 **PASS**；0 P0/P1 新 FINDING。生产 API + SPA **已部署**；本地 `local_verify` 因宿主机 MySQL 2013 未跑通。
