Files
solution-erp/docs/governance/adap-reports/2026-07-11-Governance-harness-22-wal-session-continuity.md

8.6 KiB
Raw Blame History

adap-report — 2026-07-11-Governance-harness-22-wal-session-continuity (SE)

Broadcast: 2026-07-11-Governance-harness-22-wal-session-continuity.md (outbox/all AI_INFRA) + notify 2026-07-11-ai_infra-to-se-notify-harness-22-wal. Adopt S111 (2026-07-12), anh-directed (lệnh anh nguyên văn: "/check-email AI_INFRA và /adap-apply … /fable-real invest và review - đề tài là harness mà AI_INFRA apply xuống. Sau đó hwm cho Opus 4.8 MAX xử lý. Xong thì session-end" — đúng khung H21 per-invocation: owner gõ + vai đích-danh + worker hạng-hai). Integrity gate: whole-file Get-FileHash copy==nguồn ✓ ×2 + body content_sha256 re-compute notify c64a7ac2a1bb + broadcast 3de0758a6377 MATCH ✓ (canonical split-frontmatter + strip-1-leading-newline + SHA256-UTF8). reviewer_gate: PASS-W-FIXES (gate-outward AI_INFRA tại nguồn). Harness-9 mandate 2-workflow + engine-đắt: invest = investigator-codebase Fable-real single-deep-pass (READY_WITH_NUANCES 14N, 0-garble — VERDICT-header mitigation ăn) → lead verify + CHỈNH 3 điểm (nặng nhất: hook bash→PS1 vì PATH 2-context ngược nhau) + ghi spec-file 3-mục runs/2026-07-12-h22-wal-adopt/spec-h22-wal-adopt-12-07-2026.md (K.E run-2 sau dogfood run-1 S110) → WF implement wf_5ba3daf6-fe0 (3 worker Opus 4.8 MAX tier:'opus', RUN-TRACE mode — dogfood NGAY sàn mới "≥3 task = bắt buộc run-trace", 3/3 DONE 0-error ~322K tok) → review = reviewer Fable-real single-deep-pass (0-garble) → PASS_WITH_FIXES (0 Critical · 1 Major · 7 minor) → em-main fix trọn 8/8 cùng phiên.

Nấc per-khoản sàn H22 (G-011: agreed / executed / verified)

Khoản (sàn 🔴 broadcast §9) Nấc Evidence
① Sổ WAL ≤40 dòng ghi-đè-không-append (chain-bằng-chứng + next + verify-trước-next, ground-truth thắng, cấm secret) executed + dogfood CÙNG PHIÊN .claude/WAL.md sống suốt phiên adopt (17 dòng; lead ghi-đè sau MỖI subtask — 6 lần); reviewer chạy THẬT lệnh verify: PASS; +detector C5 WAL-guardrail (governance-detectors.ps1 — flag >40 dòng, chạy [OK] 17/40; reviewer-m1 nâng convention→răng-thật); template rỗng + schema codify engine PHẦN N.1
② Hai tầng ghi (lead nội-dung ⟂ hook persist-only 0-content fail-open per-path) executed + hook-FIRE VERIFIED-RUNTIME CÙNG PHIÊN .claude/hooks/wal-flush.ps1 (PS1-port giữ nguyên semantics: per-path add + CAND + exit-0 + 0 push/content/block) + .claude/settings.json hooks-entry (CREATE mới — file chưa từng tồn tại) + .gitattributes *.sh eol=lf append; hook fire THẬT ×2: 12071c5 (11:05:39) + 67be443 (11:17:00 — reviewer CHỨNG KIẾN SỐNG giữa review), CAND chuẩn (settings/broadcasts/docs đứng ngoài), 0 push; reviewer fault-inject cây tạm 2-ca PASS (thiếu-1-path vẫn commit path-còn + exit-0 · 0-delta im lặng · outside.txt không bị nuốt)
③ Cặp /pause + /tiep — MỘT đường recovery executed + sweep-verified .claude/commands/pause.md (5-bước, commit-TRƯỚC-tuyên-bố, KHÔNG add -A, KHÔNG push) + tiep.md (4-bước, ground-truth-thắng-sửa-WAL-trước, nhánh wf: relaunch-cắt-gọt, CẤM transcript, memory-pack re-derive, same-session-only); reviewer grep toàn-repo: mọi con-trỏ recovery = MỘT đường /tiep, 0 đường thứ hai; skill-registry đăng-ký /pause+/tiep NGAY giữa phiên (hiệu-lực đầy-đủ verify phiên mới)
④ Delta mở/đóng phiên (WAL-check · squash trailing chưa-push · reset cuối) executed (squash-THẬT = commit-chốt phiên này, xem honest) session-start.md BƯỚC 0.7 (sau 0.6, ngoại-lệ CHỜ duy-nhất, chỉ con-trỏ B1) + session-end.md §5.0 squash (origin/main..HEAD — không bao giờ rewrite đã-push; +review-diff wal-paths = AS-10 backstop dời không mất) + §6.4 reset-WAL bước cuối; reviewer dry-simulate với trạng-thái thật: K=2 → về đúng 318a271==origin/main, 0 rewrite
⑤ WAL-cho-workflow (snapshot args · wf: 5-trường · harvest-liền · relaunch-cắt-gọt · mandate per-agent-file ≥3-task/>5' · trung-thực mất-mát) executed + dogfood CÙNG PHIÊN workflows/README.md FLIP-policy + bảng (mode-A nhỏ vẫn hợp lệ) + runs/README.md template ## taskList snapshot + hmw.js:9/:19 mandate-comment (node --check PASS; 0 code-change) + engine N.5 honest per-TURN≠per-TASK; dogfood: chính WF wf_5ba3daf6-fe0 chạy RUN-TRACE + run.md có taskList-snapshot (hồi-tố — bootstrap-paradox tự khai) + dòng wf: 5-trường sống trong WAL + harvest-liền synthesis per-turn; minh chứng sống N9: return W3 bị notification-truncate nhưng sub-task-2.md trên đĩa còn nguyên → lead disk-verify
Honest (a)-(e) đủ + codify executed Engine PHẦN N.7 đủ 5 (reviewer verify từng cái — (b) đọc ACTIVE-MARKS thật 5 mark: 0 mark cấm-hook; (e) Dropbox 2-chiều: risk index.lock + bonus .git-sync durability) + CAVEAT No-OS-hook honest-update ngoại-lệ đích-danh + rules.md §5.2 exception wal: + CLAUDE.md con-trỏ 2-dòng

Tailored / phát-hiện-riêng / honest-caveat

  • Tailored form: hook = PowerShell .ps1 thay bash nguồn (sàn semantics GIỮ NGUYÊN: per-path + CAND + exit-0 + 4 CẤM) — evidence 3-context PATH conflict (lead PS-context → system32\bash.exe WSL-HỎNG execvpe-fail · invest cmd-context → Git-Bash trước · reviewer PS-from-GitBash → usr\bin\bash); exec-env hook không xác định trước → powershell.exe (system32) resolve MỌI context. Nếu dùng bash như nguồn và exec-env rơi vào WSL-hỏng → hook chết MỌI lượt mà fail-open che mất (persist=0 âm thầm — đúng lớp ghost-wire). Giữ tên lệnh nguồn /pause·/tiep (0 trùng 16 command hiện có, đồng bộ fleet).
  • Phát-hiện-riêng #1 — Stop-hook HOT-RELOAD trên harness SE: settings.json tạo 11:00:52 GIỮA phiên → hook fire 11:05:39 KHÔNG restart (giả-định honest-(c) nguồn "chỉ nạp lúc khởi-động" đảo trên env này). Reviewer refute 3-hướng đều GÃY (forensics NTFS×git: commit rơi 7s sau khi ps1 sinh, GIỮA cửa sổ worker; restart-giả-thuyết mâu thuẫn WF 7.8' liên tục 3/3-DONE; fire lần 2 chứng kiến sống). ⚠️ ENV-DEPENDENT — KHÔNG fleet-generalize (data-point #2 sau skill-registry hot-reload; hub từng NGƯỢC kết quả registry): phiên MỚI vẫn re-check 1 lần. → N.3 nâng STAGED→VERIFIED-RUNTIME S111 (nguyên tắc STAGED-until-verified GIỮ cho hook tương-lai).
  • Phát-hiện-riêng #2 — reviewer bịt lỗ bằng-chứng 0-delta: lead định "quan sát tự nhiên" ca-2 (absence-of-commit KHÔNG phân biệt được "0-delta im lặng" vs "không fire") → reviewer fault-inject ca-2 chứng tường minh. Lesson: nhánh-im-lặng của cơ-chế fail-open PHẢI chứng bằng inject, không bằng quan-sát-vắng-mặt.
  • Phát-hiện-riêng #3 — per-agent-file cứu return thật (N9 minh chứng sống): W3 return bị notification-truncate NGAY TRONG run adopt → sub-task-2.md trên đĩa nguyên vẹn, lead disk-verify đủ. Sàn "≥3 task = per-agent-file" tự chứng minh giá trị trong chính lượt adopt nó.
  • Honest-caveat: (i) pilot CHƯA chạy đủ tại SE — đã có: hook-FIRE ×2 + fault-inject 2-ca + squash-THẬT tại commit-chốt phiên này (dogfood K≥2) + dogfood ghi-chain trọn phiên; CHƯA có: kill-giữa-chain → /tiep thật · đổi-tài-khoản · hook-fire re-check phiên mới · pause-roundtrip 1 workflow THẬT (→ HANDOFF pilot-checklist NEXT-anh); (ii) enforcement "lead ghi WAL sau mỗi subtask" = convention kỷ-luật (không công-cụ-ép; C5 detector chỉ bắt >40 dòng); (iii) hooks hot-reload = env-dependent, không claim phổ-quát; (iv) commit wal: chứa memory-budget.json khả-năng → CI trigger AS-6 pattern known-benign (squash gộp về commit-chốt nên push-set ≡ hôm nay — profile KHÔNG tăng, invest N3 verified); D10 option chờ anh: deploy.yml paths-ignore +.claude/agent-memory/** +.claude/workflows/runs/** triệt noise (KHÔNG làm trong đợt này); (v) mark H22 = quyền anh — đề xuất trình, CHƯA stamp (P8).
  • 0-garble 2/2 lane Fable (invest + reviewer — VERDICT-header + narrow-return mitigation; đối chiếu S110 ×2-garble: streak cải thiện, correlation reasoning-lane vẫn theo dõi).