feat(ECR-017): AskOperations 问答会话只读并 Closed

新增 admin.ask.read、GET /admin/ask/threads*(AskSessionView)与 admin-h5「问答」页;禁改消息/UGC/真支付。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
jackyu66git
2026-08-07 18:39:37 +08:00
co-authored by Cursor
parent 1c157a0e46
commit 00a798bd85
33 changed files with 722 additions and 5 deletions
@@ -0,0 +1,41 @@
# Feature Spec: AskOperationsOps · ECR-017
> Status: `Active`Loop continuous · **ECR-017 Closed**
> Parent: WAVE0-FROZEN · Predecessor: ECR-016 Closed
> Capability: `AskOperations` · BC: `Ask_Ops`
> 授权:`docs/WAVE0/LOOP_AUTHORIZATION.md`
## Non-goals
改写/删除消息正文 · SystemPrompt/Knowledge 配置 · QualityFeedback 写回 · AICoreConfig · 真支付 · UGC
## L2 读模型
| 概念 | 语义 |
|------|------|
| `AskSessionView` | 线程元数据 + message_count(列表) |
| 会话详情 | 只读消息序列(role/content/created_at |
## L3 API
| Method | Path | 权限 | 语义 |
|--------|------|------|------|
| GET | `/admin/ask/threads` | `admin.ask.read` | 列表(可选 `user_id` |
| GET | `/admin/ask/threads/:id` | `admin.ask.read` | 详情含消息 |
## Migration
`000019`:为 `super_admin` 授予 `admin.ask.read`(无新业务表)
## L4 AC
| ID | Then |
|----|------|
| AC-F-01 | 有消息线程 → list 含该 thread · message_count≥1 |
| AC-F-02 | detail 返回 user+assistant 消息 |
| AC-S-01 | 无 Admin → 401 |
| AC-S-02 | 无 ask.read → 403 |
| AC-P-01 | list &lt; 500ms 本机 |
| AC-O-01 | N/A 只读(无写审计强制) |
contract_diff: `docs/CONTRACT_DIFF/ECR-017.yaml`