本卡屬 FR-181(母卡 FR-181 母案 CM-3595),卡 B-6c,批 9。只改 jedi-python-package。依賴:B-6a。

這張卡做什麼(白話)

對帳改走長輪詢的套件端:jedi-remote-agent 的 reconcile() 現在逐檔用直推 client 打 Agent 8443 拿 sha256。改成問一個注入的 port file_verifier(agent, file_uid)——套件不認識 Redis 也不認識等回答插槽,只認識「給我 agent 跟檔案 uid、你回我 sha256 或 None」。主系統(B-6d)用 A-1 的 ask 實作這個 port 注入進來。沒注入時整批回 error、原因 no_verifier,不退回直推(那條開關關著本來就不通)。發 1.17.2。

reuse/extend/new

extend:plugin/contract.py RemoteAgentAdapters 加 file_verifier: Any = None(docstring:(agent, file_uid) -> str|None,None=Agent 說沒有;拋例外=連不到/逾時);remote_agent_service.py reconcile() 274 行 self._data_plane.command(... /sha256) 改 self._file_verifier(agent, r["save_file_name"]):None→missing、例外→error reason=unreachable、回值比對 anchor→matched/mismatched;未注入 port 時整批 error reason=no_verifier(不退回直推)。建構子加 file_verifier=None,assembly 從 adapters 接。釘契約 0.5.2、bump 1.17.2 發版

在哪裡

repo:~/Projects/Jedicogy/module/jedi-python-package
改既有:jedi-remote-agent/jedi_remote_agent/plugin/contract.py
改既有:jedi-remote-agent/jedi_remote_agent/app/service/remote_agent_service.py
改既有:jedi-remote-agent/jedi_remote_agent/app/assembly.py(接 port)
改既有:jedi-remote-agent/pyproject.toml(1.17.2、契約 >=0.5.2)
改既有:jedi-remote-agent/tests/test_reconcile.py(或既有對帳測試)

怎麼做

驗收(首腦照這個驗)

pytest:假 verifier 回同 sha → matched;回不同 → mismatched;回 None → missing;拋 → error unreachable;未注入 → 全 error no_verifier;grep -n '_data_plane.command' remote_agent_service.py 對帳段為 0。發版回寫版號

必讀