payload ใช้ supersedes_approval_id ตาม approval/v1 v1.1.0 - #24
Merged
Conversation
…thon ยังเป็นของเรา agent-platform#24 ตั้งชื่อ field จริงว่า supersedes_approval_id (approval/v1 v1.1.0, pin ขยับไปแล้วใน #23) ชื่อที่เราตั้งเองไว้ก่อนคือ supersedes_decision_id จึงต้องเลิกใช้ บน wire ก่อน payload ชื่อเก่าจะสะสม ชื่อภายในยังเป็น supersedes_decision_id ตาม convention เดิมของ repo นี้ที่ decision_id (ภายใน) → approval_id (payload) — RFC-0005 Rule 1: semantics เป็นของเรา ชื่อ field เป็น ของเขา · map ระหว่างสองชื่ออยู่ที่เดียวคือ decision.WIRE_FIELD_NAMES ซึ่ง as_payload render ผ่านมัน และมีเทสไล่ทุก entry ในนั้น payload_check เพิ่มการตรวจชื่อ field: approval/v1 ไม่ได้ตั้ง additionalProperties: false ชื่อที่เราคิดเองจึง validate ผ่านเงียบ ๆ — ใช้ properties ของ schema เป็นชุดปิดแทน พร้อมตรวจอีกด้านว่าลิงก์ยังถูกส่งจริง ไม่ใช่หายไปพร้อมการ rename (ยืนยันแล้วว่าเช็คกัดจริง: ย้อนชื่อกลับ → FAIL=2) gap approval-supersedes-field-missing ปิดแล้ว ติด status: resolved ไว้แบบเดียวกับ blocking: ข้างบน · pinned_contracts_commit ใน platform-contract.yaml ยังค้างที่ 7263588 หลัง #23 จึงขยับตามให้ตรงกับ conformance/pinned.yaml (ไม่ได้แตะ pinned.yaml) ไม่แตะ expires_at และเส้นทาง REQUIRE_CHANGES (RFC-0011) — เช็คทั้งสองยังเขียวอยู่ pytest 504 · payload_check passed=20 FAIL=0 · e2e_flow passed=34 FAIL=0 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
ตามหลัง agent-platform#24 —
approval/v1v1.1.0 ตั้งชื่อ field จริงว่าsupersedes_approval_id· ฝั่งเราใส่ชื่อชั่วคราวของตัวเองไว้ (
supersedes_decision_id) ตั้งแต่ #5 ตอนที่สัญญายังไม่มี field ให้payload ที่เราผลิตจึงเปลี่ยนไปใช้ชื่อตามสัญญาแล้ว — pin ถูก bump ไปก่อนหน้าใน
#23 ตามกฎที่ห้ามอัปเกรด pin ปนกับงาน code
ชื่อใน Python ยังเป็น
supersedes_decision_id— ตั้งใจrepo นี้มีกฎอยู่แล้วว่า id ใช้ชื่อของเราใน Python และใช้ชื่อของเขาบน wire
(
decision_id→approval_id· RFC-0005 Rule 1: semantics เป็นของเรา ชื่อ field เป็นของเขา)ถ้าเปลี่ยนชื่อภายในด้วย จะกลายเป็น id เดียวในไฟล์ที่ไม่เดินตามกฎนั้น และอ่านแล้วขัดกัน —
Decisionถือapproval_idทั้งที่Decision.decision_idข้างบนยังชื่อdecision_idการ map อยู่ที่เดียวคือ
decision.WIRE_FIELD_NAMES·as_payload()render ผ่าน dict นี้ไม่ hardcode string · มีเทสไล่ทุก entry สองทาง — attribute ต้องมีจริง · payload ต้องมีเฉพาะชื่อของเขา
· ชื่อของเราต้องไม่หลุดออกไปบน wire → rename ครั้งหน้าเป็นการแก้บรรทัดเดียว ไม่ใช่การ grep
check ใหม่ที่กัดจริง
approval/v1ไม่ได้ปิดadditionalPropertiesแปลว่า ชื่อ field ผิดก็ยัง validate ผ่าน— schema จึงจับ regression แบบนี้ให้ไม่ได้ ต้องตรวจเอง · เพิ่ม 2 check ใน
payload_check.pyพิสูจน์แล้วว่ามันกัด — ย้อน
WIRE_FIELD_NAMESกลับเป็นชื่อเก่าชั่วคราว →passed=18 FAIL=2ไม่ใช่ check ที่ผ่านเพราะไม่มีอะไรให้ตรวจ
ผลตรวจ
pytestpayload_check.pysimulation/e2e_flow.pyเก็บกวาดที่พ่วงมาด้วย
gaps: approval-supersedes-field-missingปิดแล้ว — สัญญามี field ให้แล้วทิ้งไว้จะกลายเป็นข้อมูลผิด
pinned_contracts_commitในplatform-contract.yamlค้างที่7263588— PR chore: bump agent-platform pin → 3a01ab9 (approval/v1 v1.1.0) #23bump แค่
conformance/pinned.yamlไฟล์เดียว สองไฟล์ที่ควรสะท้อนกันจึงชี้คนละ commit· ขยับให้ตรงแล้ว (แก้ที่ manifest เท่านั้น ไม่แตะ
pinned.yaml)ช่องว่างที่บันทึกไว้ ไม่ได้ปิดในนี้
approval/v1v1.1.0 ฝาก invariant 5 ข้อไว้กับ ผู้ผลิต (ใบที่อ้างต้องมีจริง · tenant เดียวกัน· subject เดียวกัน · ห้ามชี้ตัวเอง · ห้ามเป็นวง) — ทางเดิน default ของ
Job.decideทำครบทั้ง 5โดยธรรมชาติ แต่ถ้า caller ส่ง citation เข้ามาเอง ยังไม่มีใครตรวจ 4 ข้อแรก
· ยังไม่มี payload ที่ผิดจริง แต่ประตูเปิดอยู่ → ลง
remaining:ไว้ ไม่แก้ในนี้เพราะเป็นการเพิ่ม guardนอกขอบเขต rename
expires_at·REQUIRE_CHANGES(RFC-0011) ·replayไม่ถูกกระทบ