Govern · Proposal 契約
接收並同步提案狀態
Govern 會先保存 ActionProposal,再通知設定好的 host sink。Host 建立或回傳一筆本地 review record、決定後續行為,最後把 lifecycle facts 回報給 Tonetify。
Govern proposal
→ host proposal sink
→ operator review
→ host execution
→ authenticated lifecycle callback
→ Govern reconciliation Proposal Delivery
Tonetify 會對設定好的 action_proposal_sink 傳送 bearer-authenticated POST,payload 使用 contract_version: "v1"。內容包括 proposal identity、host context、kind、display copy、domain payload、context snapshot、可選的 review evidence、status、expiry 與 idempotency key。
Host 必須依 proposal ID 或 idempotency key 建立或回傳唯一一筆 tenant-local record。成功的 response 可以回傳:
{
"host_ref": "host-local-suggestion-id"
} Delivery 失敗時,proposal 仍會保留。Govern 可以使用同一個 idempotency key 重試相同的 logical delivery。Delivery failure 不會刪除或執行 proposal。
Review Evidence 邊界
review_payload 可以包含 summary、reason、evidence list、risk assessment、consequence 與 authority-boundary copy,協助 host 呈現 review surface。
它不代表 host eligibility、mutation authority、execution permit,也不能證明執行是安全的。Host 執行前仍須重新驗證。
Lifecycle Callback
Host 透過以下請求把 lifecycle fact 回報給 Tonetify:
POST /api/action-proposals/<proposal-id>/lifecycle
Authorization: Bearer <host-api-key>
Idempotency-Key: <callback-idempotency-key>
Content-Type: application/json {
"action_proposal_lifecycle": {
"contract_version": "v1",
"status": "executed",
"writer": "host",
"idempotency_key": "callback-idempotency-key",
"host_ref": "host-local-suggestion-id"
}
} Idempotency key 可以放在 header 或 JSON body。如果兩邊都有,應保持相同值。
Status 與 Writer Authority
| Status | 預期 Writer |
|---|---|
proposed、delivered、failed | tonetify |
accepted、rejected | surface |
executed | host |
expired | 依 expiry policy 由 tonetify 或 host 寫入 |
Govern 會驗證 authentication、proposal correlation、status vocabulary、writer authority 與 idempotency。Proposal update 與 lifecycle event insert 會在同一筆 database transaction 中完成。
Tonetify 不會從 acceptance 或 delivery 推測 executed。Execution truth 必須來自 authenticated host callback。
目前的驗證邊界
Hanken Golden Loop 已驗證 proposal delivery、operator accept 或 dismiss、host execution、lifecycle callback、reconciliation、trace 與 outcome evidence。
它尚未證明所有 high-risk mutation 都強制經過 AuthorityGrant → ExecutionPermit → PermitCredential → ExecutionReceipt。Permit-backed path 目前仍是 emerging contract。
下一步:記錄 Host 執行證據。