chore(kit): hợp nhất cổng pre-merge lên acceptance-gate 2.14.0 + chiến dịch ghim lại - #119
Merged
Merged
Conversation
…ụm phạm vi hẹp Nền kit 2.14.0 + tái áp cụm phạm vi hẹp theo `paths` bằng hợp nhất ba chiều (tổ tiên chung: kit 2.9.0, 0 xung đột). 1883 → 2066 dòng. Phân loại từng khối lệch, có bằng chứng: - kit đã có (lấy bản kit): 12/13 hàm chung khớp TỪNG BYTE bản 2.9.0 — oneflow chỉ đang cũ, không sửa gì. `evidence-core.cjs` cũng vậy: vá escape nội dòng của fork bị `unquoteScalar` của kit phủ nghiêm ngặt (thêm kiểm nháy cân, thêm dạng '', dùng chung 7 đường thi hành thay vì một điểm gọi). - giữ (đề xuất port ngược lên kit): cụm phạm vi hẹp — feature_scope · scope_has_any_match · scope_gaps · gated_coverage · slug_acceptance_touched + stale_files mở rộng, ~481 dòng. - riêng oneflow: RỖNG. Không có đường dẫn cứng, tên kho hay giả định bố cục nào trong cụm. Đo được (PR sửa đúng một file, --base): - oneflow gốc 4 hoá-cũ / 0 làn suite-only - kit 2.14.0 thuần 1 hoá-cũ / 25 làn suite-only - bản hợp nhất 4 hoá-cũ / 25 làn suite-only Bỏ cụm là hồi quy fail-open: mất 3/4 lần bắt hoá-cũ thật. Kit bỏ sót chúng vì STALE-DIFF-SCOPE-GUARD bỏ qua slug ngoài diff PR; khi feature khai `paths` thì máy BIẾT được và kiểm theo phạm vi hẹp — `paths` mua lại quyền kiểm ở vùng kit buộc phải im. Kiểm chứng (hai chiều + đột biến): - nhạy: PR chạm mã → 4 hoá-cũ, trùng khớp hoàn toàn 4 slug của bản gốc - đặc hiệu: PR chỉ chạm tài liệu → 0 hoá-cũ - đột biến 1: vô hiệu feature_scope → 4→1, đúng bằng kit thuần - đột biến 2: gỡ bộ lọc phạm vi → 4→9, báo thừa - cú pháp sạch, 21 hàm, không trùng tên CÒN NỢ: 26 vi phạm "re-pin lane suite-only" — nợ CÓ SẴN, không do bản hợp nhất. kit 2.14.0 bỏ mốc ân hạn REPIN_EVALS_SINCE nên mọi làn suite-only nay là VIOLATION. Cần một chiến dịch ghim lại theo §7.1 trước khi nhánh này xanh. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…lớp CI Commit hợp nhất trước thêm `lib/lop-nhin-thay.cjs` (kit 2.14.0 gọi nó) nhưng không nối vào danh sách miễn trừ của biome, nên `pnpm lint:check` đỏ và chặn TOÀN BỘ chiến dịch ghim lại — suite của kho đỏ thì không hồ sơ nào ghim được. Miễn trừ theo tên, KHÔNG định dạng lại file. Chiều theo biome sẽ làm bản sao lệch khỏi kit (nháy, thụt, ngoặc arrow) — đúng lớp lệch mà vòng này vừa gỡ, và sẽ đẻ xung đột giả ở lần nâng kit kế. 8 file vendored cũ đều đã miễn trừ theo đúng cách này; đây là file thứ 9. Kiểm hai chiều: lint xanh sau vá; tiêm lỗi định dạng thật vào một file do oneflow viết (src/app/api/director/feedback/route.ts) thì lint VẪN đỏ — miễn trừ không làm cùn răng. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…merge cho 2 hồ sơ Làn ghim lại chạy lại eval của hồ sơ trên MỘT NHÁNH KHÁC. `check-build-approvals.sh` chấm `git diff origin/main...HEAD`, nên ở đó nó chấm diff của người khác — `pnpm-build-approvals/E16` đỏ và liệt kê ra chính các file của commit nâng kit. Đúng lớp lỗi đầu `own-range.sh` ghi sử: ba feature đã ký đỏ vĩnh viễn trên feat/compose-overlay. Vá HAI nửa — mỗi nửa một mình đều vô dụng: 1. ĐƯỜNG DÂY: script gọi `own-range.sh` khi có ACCEPTANCE_SLUG, sao chép nguyên mẫu của ba script anh em (check-no-config-drift · check-workflow-drift · check-no-t3-drift). Sửa theo LỚP: cả BA chỗ dùng `$BASE...HEAD` (explicit-decisions · keys-intact · scope-confined), không chỉ case bị nêu tên. Không có slug thì hành vi Y NGUYÊN như trước. 2. DỮ LIỆU: `landed_merge` cho `pnpm-build-approvals` (afe3682) và `ci-vitest-sdk-pin` (32e55c3). Thiếu neo thì own-range rơi về đúng `origin/main...HEAD` — vá đường dây xong vẫn đỏ. Cả hai sha suy từ lệnh (merge đầu tiên trên ancestry-path chứa commit hợp đồng), không gõ tay — bài học 29 pin-ma. Truy vấn đã qua đối chứng dương: nó tái tạo đúng hai neo đã biết (task-metering f335135, ci-actions-bump 8477f8a). Lượt đo đầu của tôi dùng --first-parent và trả "không có merge" cho CẢ hai hồ sơ đã có neo — đối chứng bắt được truy vấn hỏng trước khi nó thành kết luận. Neo afe3682 xác nhận bằng hai tín hiệu độc lập: phạm vi của nó (5 commit, 4 file của chính hồ sơ, chỉ dư config.yaml) trùng khuôn của neo đã-được-duyệt task-metering; và với nó eval chuyển sang xanh KÈM lời đúng ("diff confined to tooling config and this feature's gate artifacts"), không xanh rỗng. Kiểm: - không ACCEPTANCE_SLUG → 0/0/1, trùng khít mốc trước khi vá (bảo toàn hành vi) - có slug, chưa neo → vẫn đỏ (đúng thiết kế) - có slug, có neo → 0/0/0 - fail-closed: slug bịa → exit 2 · neo hỏng → exit 2 (không ngả nào thành xanh) - ci-vitest-sdk-pin E4 với neo → exit 0, đọc lượt CI lịch sử thật, 5/5 job success Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Làn chạy suite_keys của kho VÀ mọi eval test/script của từng hồ sơ tại HEAD, rồi tự kiểm bằng recheck-evidence.cjs. Không dòng nào do người khai. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Làn chạy suite_keys của kho VÀ mọi eval test/script của từng hồ sơ tại HEAD, rồi tự kiểm bằng recheck-evidence.cjs. Không dòng nào do người khai. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
… làn kit không ghi Hai đợt ghim lại trước dùng làn của kit (`repin-lane.mjs` 2.14.0). Làn ấy ghi `evals_exit` (chứng eval đã chạy lại) nhưng KHÔNG ghi `prev_sha`. Hợp đồng `repin-khong-chay-lai-eval` của chính kho này đòi `prev_sha` trên mọi dòng repin MỚI — không có nó thì không ai tính được một lần ghim đã NUỐT mất eval nào. Guard của kho bắt đúng: E2 `check-repin-eval-coverage.sh newlines` đỏ, nêu đích danh hai run_id vừa ghi. Làn là được-ăn-cả nên đợt C cũng không ghi gì. Đo được: trong 117 dòng repin lịch sử trên origin/main, 78 có `prev_sha`, 13 có `evals_exit`, **0 có cả hai**. Không công cụ đơn lẻ nào đang có sinh được dòng hợp lệ: - làn kit → evals_exit ✓ · prev_sha ✗ · và nó DỜI verified_commit - writer của kho → prev_sha ✓ · evals_exit ✗ · và nó TỪ CHỐI nếu verified_commit đã dời Hai đường loại trừ nhau về thứ tự, nên không ghép nối được. Cần một quyết định về writer trước khi chiến dịch chạy tiếp; không vá bằng cách nới phép đo. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…điều kiện Đo 2026-09-16 trên origin/main: 117 dòng repin, 78 có `prev_sha`, 13 có `evals_exit`, **0 có cả hai**. Hai đường ghi loại trừ nhau về thứ tự: - làn kit (`repin-lane.mjs` 2.14.0) → ghi `evals_exit`, KHÔNG ghi `prev_sha`, và nó DỜI `verified_commit` - writer của kho (`repin-eval-coverage.mjs write`) → ghi `prev_sha`, không ghi `evals_exit`, và TỪ CHỐI nếu `verified_commit` đã dời (`prev === sha`) Nên không công cụ đơn lẻ nào sinh nổi một dòng hợp lệ theo hợp đồng hiện tại, và chiến dịch ghim lại kẹt cứng. `modeWrite` nay nhận tham số thứ năm `evals_json`. TUỲ CHỌN, và cố ý KHÔNG có mặc định: - tuỳ chọn, vì răng cưỡng chế đã ở BÊN ĐỌC — `checkRepinEvals` của kit từ chối dòng thiếu trường này; writer không nhân đôi luật - không mặc định, vì một object toàn 0 tự sinh chính là "MINT bằng chứng" mà chú thích của `suites_exit` ngay trên cảnh báo. Vắng mặt thì trường vắng mặt, không bịa Từ chối hai ngả, cùng nghi thức với `suites_exit`: eval thoát khác 0 → dừng, không ghi; JSON không hợp lệ hoặc sai khuôn object<id,int> → dừng. Kiểm bốn chiều: - bộ răng 30 ca cũ: 30/30 PASS (9 đối chứng dương + 21 phép phá) — không gãy ca nào - mọi chế độ đọc (check · newlines · paths-law · so-khop-total · readers): exit 0 - truyền evals hợp lệ → dòng mang CẢ prev_sha lẫn evals_exit - không truyền → hành vi y nguyên, không có trường - eval đỏ → từ chối · JSON hỏng → từ chối Không đổi KNOWN/TOTAL nên không chạm `evals.yaml` đã ký của hồ sơ repin-khong-chay-lai-eval. Siết thành BẮT BUỘC kèm hai ca răng riêng là việc nối tiếp đáng làm, nhưng nó chạm hợp đồng đã ký nên để owner quyết riêng. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Làn kit chạy chế độ ĐO (không dời verified_commit) → writer của kho ghi dòng repin kèm prev_sha + evals_exit → dời verified_commit + mục Re-pin theo đúng khuôn làn kit sinh ra. Không bước nào viết tay. Dòng repin: prev_sha 96ee9b8 → sha e300539 · 9 suite exit 0 · 17 eval máy. Kiểm bằng công cụ của kho, không bằng mắt: - check-repin-eval-coverage.sh newlines → "mọi dòng repin mới đều mang prev_sha" - pre-merge-check → pnpm-build-approvals KHÔNG còn vi phạm nào (trước: stale + nợ làn) Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Làn kit chế độ ĐO → writer của kho (prev_sha + evals_exit) → verified_commit + mục Re-pin. Không bước nào viết tay; guard newlines xanh trước khi commit. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…, không đọc evals_exit `reMeasuredSince` trong repin-eval-coverage.mjs gom theo `o.kind==="eval" && o.eval && o.sha`; `evals_exit` trên dòng repin KHÔNG được nó đọc. Dòng đợt B ghi đủ 13 eval vào `evals_exit` nhưng không có dòng `kind:"eval"` nào, nên guard kết luận đúng: re-pin nuốt 7 eval bị chạm mà không chạy lại (E1,E2,E3,E9,E10,E12,E13). Hệ quả: đợt C đỏ ở 4 eval, cả bốn cùng MỘT gốc là dòng đợt B — không phải 4 lỗi khác nhau. Kho có sẵn 190 dòng `kind:"eval"` làm khuôn; bộ điều phối nay ghi thêm lớp đó. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Làn kit chế độ ĐO → writer của kho (prev_sha + evals_exit) → verified_commit + mục Re-pin. Không bước nào viết tay; guard newlines xanh trước khi commit. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Làn kit chế độ ĐO → writer của kho (prev_sha + evals_exit) → verified_commit + mục Re-pin. Không bước nào viết tay; guard newlines xanh trước khi commit. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…không chạy được Guard `check` bắt sau khi ghi: re-pin nuốt E12 — eval `ui-check` có `paths: src/components/workspace/nodes/**` bị chạm giữa hai mốc. Làn kit chỉ chạy eval `test`/`script`, nên không lượt máy nào chứng được E12. Đây đúng tiền lệ của kho: đợt ghim lại 05/09 loại SÁU hồ sơ, trong đó có chong-doc-sai-em-ru, với nguyên văn lý do «ô `ui-check` không chạy được ngoài luồng verify». Tôi đã ghim nó mà không đọc tiền lệ đó trước. Vì sao làn vẫn xanh: làn chạy `check` TRƯỚC khi ghi 22 dòng, nên lúc đo chưa có dòng nào để nuốt. Vòng tự quy chiếu này là thật và chưa có răng — ghi vào sổ. 21 hồ sơ còn lại của đợt C giữ nguyên. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
phanlemanh
marked this pull request as ready for review
September 16, 2026 08:10
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
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.
Việc gì
oneflow là nhánh rẽ thật của cổng pre-merge (1883 dòng so 1585 của kit 2.14.0, nền là 2.9.0). PR này đưa nó về nền kit 2.14.0 mà giữ cụm phạm vi hẹp theo
paths, rồi chạy chiến dịch ghim lại.Phân loại khối lệch — kế toán khép kín
1402 (nền 2.9.0) + 328 (5 hàm scope) + 21 (stale_files) + 132 (điểm gọi) = 1883evidence-core.cjsbịunquoteScalarcủa kit phủ nghiêm ngặt.paths.Hợp nhất bằng ba chiều với tổ tiên thật (kit 2.9.0): 0 xung đột, 1883 → 2066 dòng.
Vì sao giữ cụm phạm vi hẹp
PR sửa đúng một file, chạy
--base:Ba slug kit bỏ sót đều tự khai chính file vừa đổi. Bỏ cụm = hồi quy fail-open.
Đột biến: vô hiệu
feature_scope→ 4→1 · gỡ bộ lọc phạm vi → 4→9 · PR chỉ chạm tài liệu → 0.Chiến dịch ghim lại
Cổng: 26 vi phạm → 3. Ghim lại 23/26 hồ sơ, mỗi dòng repin đủ ba lớp (
prev_sha·evals_exit· dòngkind:"eval"từng eval). Cục bộ và CI khớp nhau.Vá kèm theo:
fix(biome): miễn trừlib/lop-nhin-thay.cjs— file vendored thứ 9; thiếu nó thìlint:checkđỏ và chặn TRỌN chiến dịchfix(acceptance):check-build-approvals.shđi quaown-range.sh+ neolanded_mergecho 2 hồ sơfeat(repin): writer của kho nhậnevals_exit— trước đó 0/117 dòng repin lịch sử có đủ cảprev_shalẫnevals_exitNỢ ĐÃ KHAI — gộp có chủ đích với 3 vi phạm
Owner quyết gộp với ba nợ này, mỗi cái có tên và lý do; không cái nào được nới phép đo cho qua:
normalize-text-vioneflow-api-normalize-text-vi— kho không tồn tại ở cả máy lẫn GitHublocal-cpu-pluginsoneflow-sdkhỏng cục bộ (Errno 2)chong-doc-sai-em-ruE12làui-check— không làn máy nào chạy đượcLỗ chưa có răng, ghi lại để không mất
Làn ghim lại đo trước, ghi sau, nên mọi eval soi chính những dòng vừa ghi không thể đỏ tại thời điểm đo.
chong-doc-sai-em-ruchỉ bị bắt vì chạychecklại sau khi đẩy. Tin màu xanh của làn thì một dòng repin nuốt eval sẽ vào nhánh chính lặng lẽ.🤖 Generated with Claude Code