feat: escalate chat approvals through inbox
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# KẾ HOẠCH 18 — Governed Chat Console (Chat-as-Loop qua Control Plane)
|
||||
|
||||
> Status 2026-07-08: **🟡 MVP-0 + MVP-1 done+test; MVP-2 Track 4 + Operator Track 5/6 + Track 8.1/8.2/8.3 done — target architecture còn planned.**
|
||||
> Status 2026-07-08: **🟡 MVP-0 + MVP-1 done+test; MVP-2 Track 4 + Operator Track 5/6 + Track 8.1/8.2/8.3/8.4 done — target architecture còn planned.**
|
||||
> Đã implement **Ask CASAN — Read-only Evidence Assistant** qua harness + Control
|
||||
> Panel (`/api/v1/chat/ask`, `/chat` UI): Prompt Router deterministic
|
||||
> `READ_ONLY/OPERATOR/BLOCK/NOT_SUPPORTED`, context whitelist, H4 scan in/out, H5
|
||||
@@ -11,8 +11,9 @@
|
||||
> gate chọn agent, delegation hold, tool allowlist block, Control Panel agent picker.
|
||||
> **Operator Track 5/6** đã bind mỗi side-effect turn vào Plan-17 `loop-run.sh`,
|
||||
> verify trace/replay, H4 preflight/context/tool-output scan, và chỉ release action
|
||||
> sau khi draft được certify. **Track 8.1/8.2/8.3** đã có replay/verify-chain
|
||||
> foundation và Command Center Chat/Loop widget đọc chat audit/replay evidence thật.
|
||||
> sau khi draft được certify. **Track 8.1/8.2/8.3/8.4** đã có replay/verify-chain
|
||||
> foundation, Command Center Chat/Loop widget đọc chat audit/replay evidence thật,
|
||||
> và escalation vào approvals inbox.
|
||||
> Mục tiêu
|
||||
> tổng thể vẫn là thêm **cửa sổ chat** vào Control Plane (Plan-13) như một
|
||||
> **bề mặt tương tác của core harness** — mỗi lượt chat là **một loop-run được
|
||||
@@ -290,7 +291,7 @@ flowchart TD
|
||||
| 18.8.1 | ✅ **Replay** một turn (verify lại artifact đã ghi) phát hiện tamper/non-determinism | `chat-replay.py` + `loop-trace.py replay` | sửa artifact turn → replay lệch |
|
||||
| 18.8.2 | ✅ `verify-chain` lịch sử chat (tamper-evidence, SEC-01/02; KMS khi TIER-2 là follow-up) | `chat-replay.py verify-chain` | sửa 1 turn → chain BREAK |
|
||||
| 18.8.3 | ✅ Widget **Chat/Loop** trên Command Center (13 §8.6): ticker per-iteration, budget gauge, click → Evidence drawer | `GET /api/v1/command` + `/command` | số khớp fixture; click → evidence |
|
||||
| 18.8.4 | **Approvals/Escalation panel**: turn `ESCALATED` vào approvals inbox (13 §3.4), duyệt/từ chối (JWT + SoD + lý do) | nối Plan-13 §3.4 | escalate → pending; JWT giả → DENY |
|
||||
| 18.8.4 | ✅ **Approvals/Escalation panel**: turn `ESCALATED` vào approvals inbox (13 §3.4), duyệt/từ chối (JWT + SoD + lý do) | `chat-turn.py` + `approval-inbox.py` + `/approvals` | escalate → pending; JWT giả → DENY |
|
||||
|
||||
### Track 9 — Multi-tenant hardening `[MVP-3]`
|
||||
| Task | Việc | File | Verify (WSL) |
|
||||
@@ -322,7 +323,8 @@ flowchart TD
|
||||
`phase-chat-readonly-tests.sh`, `phase-chat-session-audit-tests.sh`; MVP-1 —
|
||||
`phase-chat-operator-tests.sh`; MVP-2 — `phase-chat-agent-select-tests.sh`,
|
||||
`phase-chat-pipeline-tests.sh`, `phase-chat-stream-hold-tests.sh`,
|
||||
`phase-chat-replay-tests.sh`; MVP-3 — `phase-chat-tenant-tests.sh`. Chạy **WSL**
|
||||
`phase-chat-replay-tests.sh`, `phase-chat-approval-tests.sh`; MVP-3 —
|
||||
`phase-chat-tenant-tests.sh`. Chạy **WSL**
|
||||
(deterministic, mock model; nhánh live cần Ollama SKIP-aware). Nối `ci-harness-gate.sh`;
|
||||
cập nhật tổng test ở `CASAN_HARDENING_STATUS.md`.
|
||||
|
||||
@@ -368,6 +370,12 @@ cập nhật tổng test ở `CASAN_HARDENING_STATUS.md`.
|
||||
- [x] `/command` renders the Chat/Loop card in the existing evidence drawer flow; ticker includes recent chat/loop turns.
|
||||
- [x] Fixture test proves counts and budget gauge match evidence. Verify: `console:test` 26/0, `console:build` xanh, `phase-chat-replay` 4/0.
|
||||
|
||||
**MVP-2 Track 8.4 (Approvals / escalation):**
|
||||
- [x] Delegation escalation (`REQUIRES_APPROVAL`) from chat creates an `ESCALATED` ChatTurn and pending `chat.escalate` proposal in `approval-inbox.py`.
|
||||
- [x] Approval inbox keeps SoD and reason requirements; strict mode / supplied approval JWT calls `approval-verify.sh` and fake JWT is denied before proposal mutation.
|
||||
- [x] Control Panel `/approvals` can pass an approval JWT for strict review; dev mode remains backward-compatible.
|
||||
- [x] Verify: `phase-chat-approval` 4/0, `phase-chat-agent-select` 8/0, `phase-chat-replay` 4/0, `console:test` 28/0, `console:build` xanh.
|
||||
|
||||
**Full (target architecture) — DoD tổng:**
|
||||
- [ ] Turn chạy **đúng như một loop-run Plan-17** (không định nghĩa vòng lặp riêng).
|
||||
- [ ] **Không đường vòng:** test chứng minh bỏ bất kỳ gate nào (preflight/verify) → FAIL.
|
||||
@@ -381,11 +389,11 @@ cập nhật tổng test ở `CASAN_HARDENING_STATUS.md`.
|
||||
---
|
||||
|
||||
## 7. Ghi chú trung thực & Non-goals (không lan man)
|
||||
- **[MVP-0 + MVP-1 + MVP-2 Track 4 + Operator Track 5/6 + Track 8.1/8.2/8.3] — 🟡 done+test.**
|
||||
- **[MVP-0 + MVP-1 + MVP-2 Track 4 + Operator Track 5/6 + Track 8.1/8.2/8.3/8.4] — 🟡 done+test.**
|
||||
Ask CASAN read-only, Operator registered actions, agent/skill governance foundation,
|
||||
OPERATOR chat-as-loop/draft-hold, replay/verify-chain foundation, và Command Center
|
||||
Chat/Loop widget đã có harness CLI + Control Panel API/UI. Các phase CODEGEN-as-loop /
|
||||
approvals escalation / multi-tenant production vẫn chưa mở.
|
||||
Chat/Loop widget, approvals escalation đã có harness CLI + Control Panel API/UI. Các
|
||||
phase CODEGEN-as-loop / multi-tenant production vẫn chưa mở.
|
||||
- **MVP-first (chống lan man):** **MVP-0 (Ask CASAN read-only) KHÔNG phụ thuộc Plan-17/
|
||||
14/SEC-23** — làm được ngay trên nền H4/H5/H6 hiện có. Chỉ **MVP-2 trở đi** (chat-as-
|
||||
loop + agent) mới cần Plan-17 (T1–T3) + Plan-14 RBAC; **MVP-3** mới cần SEC-23 tenant.
|
||||
|
||||
Reference in New Issue
Block a user