Merge pull request 'Return persisted receipt message from card action' (#9) from feature/inbox-r2 into main

This commit was merged in pull request #9.
This commit is contained in:
2026-09-30 06:56:02 +00:00
+6 -4
View File
@@ -491,12 +491,14 @@ func (s *Server) cardAction(w http.ResponseWriter, r *http.Request) {
return
}
// 回执消息:确认结论写进对话时间线(含所点按钮语义),审计锚点为 card.resolved 事件。
// 返回持久化后的回执消息(服务端 id),前端本地追加后与权威对账不重复。
var receipt *core.Message
if card.ConversationID != "" {
msg := core.Message{ID: store.NewID("msg"), ConversationID: card.ConversationID, Role: core.RoleAssistant, CreatedAt: time.Now().UTC()}
msg.Parts = []core.Part{{Type: core.PartText, Text: fmt.Sprintf("✓ 已按「%s」处理「%s」——结论已记录并留痕(card:%s)", label, card.Title, card.ID)}}
_ = s.st.AppendMessage(&msg)
receipt = &core.Message{ID: store.NewID("msg"), ConversationID: card.ConversationID, Role: core.RoleAssistant, CreatedAt: time.Now().UTC()}
receipt.Parts = []core.Part{{Type: core.PartText, Text: fmt.Sprintf("✓ 已按「%s」处理「%s」——结论已记录并留痕(card:%s)", label, card.Title, card.ID)}}
_ = s.st.AppendMessage(receipt)
}
writeJSON(w, http.StatusOK, map[string]any{"card": card})
writeJSON(w, http.StatusOK, map[string]any{"card": card, "receipt": receipt})
}
func (s *Server) cardPin(w http.ResponseWriter, r *http.Request) {