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

26 lines
8.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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).