# R3.2 任务报告 ## 结果 - 已通过 [Issue #2097](https://github.com/pikasTech/unidesk/issues/2097) 和 [PR #2102](https://github.com/pikasTech/unidesk/pull/2102) 增加 Sub2API 原生公告受控 CLI。 - PR 已合并到 `master`,merge commit 为 `43f34ccfe82c3be55b731d0e5c7e416de1bcccb5`。 - CLI 支持公告 `list`、`get`、`create`:默认 Kubernetes 风格紧凑文本,显式 `--json` 输出机器结构。 - `create` 支持标题、Markdown 正文、状态、通知模式、原生 targeting 以及 Unix 秒或 RFC3339 时间窗。 - `create` 默认 dry-run;只有显式 `--confirm` 才调用原生创建 API。 - 确认创建后的回读对账覆盖 ID、`title`、`content`、`status`、`notify_mode`、`targeting`、`starts_at` 和 `ends_at`;任一差异均返回失败并披露 `mismatchedFields`。 ## 原生能力依据 - Sub2API 官方仓库 `Wei-Shaw/sub2api` 的 `v0.1.155` 原生提供 `/api/v1/admin/announcements`。 - 原生后端支持分页列表、按 ID 查看、创建、更新、删除和阅读状态;本次按授权范围接入列表、查看和受控创建。 - 未修改 Sub2API 源码、版本、外部哨兵或运行面配置。 ## 补偿公告预览 - 标题:`服务稳定性补偿说明`。 - 内容语义:计划向最近 24 小时有实际使用记录的 17 名活跃用户每人增加 10 USD,总计 170 USD,确认后发放。 - 文案使用“计划”和“确认后发放”,没有表述为已经到账。 - dry-run 返回 `mutation=false`、`writeAttempted=0`,完整预览正确。 - PK01 原生公告列表只读验证返回 `mode=read-only`、`mutation=false`、`total=0`、`returned=0`。 ## 验证 - scoped CLI help 通过。 - 显式 JSON dry-run 输出合同通过。 - 字段级对账纯内存 fixture 通过:全匹配无差异,多字段差异和 ID 差异均准确披露;`network=false`。 - `git diff --check` 通过。 - 子代理交付 commit:`2ab5fb87a2693ad6076e3abdeb3801c74269be69`。 - 主代理纠偏 commit:`2c0cf9479197a37728a3c697da230fb9e7ce28de`。 ## 写入边界 - 本轮没有使用 `--confirm`。 - 公告发布数为 0。 - 充值写入数为 0。 - 实际公告发布和每人 10 USD 充值仍需用户对具体公告参数及固定用户名单再次明确授权。 ## 后续改进 - post-task 已登记 [Issue #2106](https://github.com/pikasTech/unidesk/issues/2106),用于改进 `platform-infra` 深层 scoped help 的渐进披露,减少后续无效调用;不作为本任务合并门禁。