本卡屬 FR-192(母卡 FR-192 母案(同清單上一張)),卡 A-3,批 4。只改 evidence-agent。依賴:A-1、M-3。

這張卡做什麼(白話)

A-1 做了新增,本卡補上修改、刪除、刪單一附件,以及「主系統那邊改了,Agent 這邊跟著變」。修改與刪除走與新增同一條待回傳佇列,多帶一個動作欄位,同一筆的動作照順序送。主系統改了會透過設定通道把「這台送出的回饋現況」下發,Agent 收到以主系統端更新時間較新者覆寫本機、主系統刪的標已刪。兩邊同時改以較新的為準:Agent 送修改時帶它看到的主系統版本時間,主系統回「過期」就標示並請求拉一次設定,使用者重改一次。

reuse/extend/new

extend:feedbacks.py 加 update/delete/remove_file/apply_cloud;feedback_routes.py 加 PUT/DELETE 兩條與刪附件;outbox 的 stale 回應處理(標 sync_error 並 config_pull.request());套用者照 labels.py 形狀

在哪裡

repo:~/Projects/Billows/Audit-Manager/evidence-agent
改既有:guidant_agent/feedback/app/feedbacks.py
改既有:guidant_agent/feedback/api/feedback_routes.py
改既有:guidant_agent/feedback/adapters/feedback_repo.py
改既有:guidant_agent/sync/app/outbox.py(stale 分支)
改既有:guidant_agent/shared/event_codes.py(UPDATED/DELETED/OVERWRITTEN_BY_CLOUD)
改既有:test/feedback/test_feedbacks.py
新開:guidant_agent/feedback/app/cloud_state.py(KIND_FEEDBACKS 套用者)

怎麼做

驗收(首腦照這個驗)

主控台 PUT 改標題 → outbox 一列 op=update;DELETE → op=delete、清單不列;收到設定類 feedbacks 內某筆 cloud_updated_at 比本機新 → 本機覆寫、稽核 OVERWRITTEN_BY_CLOUD;比本機舊 → 不動;deleted=true → 本機標 deleted_at;主系統回 stale → 該筆 sync_error 為「主系統已有較新版本」且觸發一次 config_pull;守衛六支綠

必讀