Skip to content

release(v3.13.2): correctness patch — F1-F5 (demo pivot + CI gate + module entry)#181

Merged
Halildeu merged 6 commits intomainfrom
fix/v3.13.2-correctness-patch
Apr 20, 2026
Merged

release(v3.13.2): correctness patch — F1-F5 (demo pivot + CI gate + module entry)#181
Halildeu merged 6 commits intomainfrom
fix/v3.13.2-correctness-patch

Conversation

@Halildeu
Copy link
Copy Markdown
Owner

Summary

Post-v3.13.1 dış AI değerlendirmesi 5 bulgu tespit etti, hepsi absorb edildi. Ürün kodu değişti; branch-discipline meta-altyapısı sonrası ilk user-facing correctness patch.

F1–F5 Kabul kriterleri (hepsi yeşil)

# Kriter Sonuç
F1 CI gate 85 ile hizalı --fail-under=85
F2.1 README demo_bugfix ref yok grep -c → 0 ✓
F2.2 Demo canlı smoke completed editable + wheel ✓
F3 DEMO-SCRIPT.md compat stub roadmap/ taşıdı ✓
F4 python -m ao_kernel version ao-kernel 3.13.2
F4b python -m ao_kernel.cli version ao-kernel 3.13.2
F5 test_cli_entrypoints.py 2/2 passed ✓

Metrics

  • Full suite: 2749 passed, 7 warnings
  • Coverage: 86.08% (gate 85%)
  • Wheel build + fresh venv install + 3 version checks + demo smoke → all green
  • Version 3.13.1 → 3.13.2

Scope

Included (F1-F5):

  • CI gate alignment
  • Demo pivot (bug_fix_flow → review_ai_flow)
  • Module entry point (__main__.py + cli.py guard)
  • Demo dependency fix: {python_executable} token substitution (adapter_invoker.py + codex-stub manifest) — minimal port from backup/codex-pbeta-4.0.0b1-stale-base

Deferred (v3.13.3+):

  • F6: bug_fix_flow + codex-stub patch_preview bug (codex-stub sabit diff üretiyor, workflow adım fail). bug_fix_flow public surface dışı şimdi (F2), user-facing değil.
  • v3.14+: init_cmd.run(override) WRITE-side asymmetry
  • Separate: sanitize.py EMAIL regex + compiler.py:139 KeyError

Test plan

  • Local full test suite passes
  • All 4 acceptance criteria met (canlı test)
  • Wheel smoke chain green
  • CI 9/9 GREEN
  • Codex post-impl review
  • Admin merge after review
  • Tag v3.13.2 push → PyPI OIDC

🤖 Generated with Claude Code

…odule entry)

Post-v3.13.1 dış AI değerlendirmesi 5 bulgu tespit etti, hepsi absorb
edildi. Ürün kodu değişti; branch-discipline meta-altyapısı dışında
ilk kullanıcı-görünür correctness patch.

F1: CI coverage gate 70 → 85 (pyproject.toml ile hizalı; ratchet
artık CI-level enforced)
F2: Public demo pivot bug_fix_flow → review_ai_flow
  - examples/demo_bugfix.py silindi (never worked E2E on fresh workspace)
  - examples/demo_review.py yeni (canlı smoke 'completed', evidence
    timeline + review_findings schema validate)
  - README quick-start: demo_bugfix → demo_review
  - docs/PUBLIC-BETA.md yeni (Shipped/Beta/Deferred/Known Bugs SSOT)
  - docs/DEMO-SCRIPT.md → compat pointer stub
  - docs/roadmap/DEMO-SCRIPT-SPEC.md yeni (roadmap spec)
F3: Doc/CLI parity (F2 içinde — DEMO-SCRIPT aspirational content
roadmap/'a taşındı)
F4: ao_kernel/__main__.py yeni (python -m ao_kernel entry)
  - ao_kernel/cli.py: __main__ guard eklendi (python -m ao_kernel.cli)
F5: tests/test_cli_entrypoints.py yeni (4 entry contract pinleniyor)

Demo dependency: F2 review_ai_flow + codex-stub subprocess
ModuleNotFoundError'u adapter_invoker.py {python_executable} token
substitution'u ile çözüldü (Codex Public Beta planından port). Bu
deeper runtime fix v4.0.0b1'de zaten plandı; demo çalışması için
v3.13.2'ye minimum port edildi.

Version 3.13.1 → 3.13.2.
Test: 2749 passed, coverage 86.08%.
Wheel smoke: 3/3 version command + demo completed on fresh venv.

F6 (bug_fix_flow + codex-stub patch_preview bug) ayrı correctness
lane'e (v3.13.3+) ertelendi. bug_fix_flow public surface'dan çıktı
(F2), user-facing değil.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 20, 2026

📊 Benchmark Scorecard

Scenario Status Duration Cost (USD) Review Score
governed_bugfix ✅ pass 43ms (▲2.4%) $0.0000 —
governed_review ✅ pass 46ms (▲4.5%) $0.0000 — 0.85 (−)

Baseline: 09f234ab7371504bfd506980efcc8c9cf9f33f74 · HEAD: df0cc0835117b50a25f620837b90e0d1929d4a95 · PR: #181 · No regressions.

Halildeu and others added 5 commits April 20, 2026 11:18
**M1 policy command validation preflight** (Codex BLOCKER):
`executor.py` adapter CLI adımında `validate_command()` çağrısı eklendi.
`{python_executable}` ve diğer placeholder'lar resolved edildikten
sonra policy sandbox'ı üstünden preflight yapılır. Bu olmadan
`codex-stub.manifest::command: "{python_executable}"` mutlak path
kontrolü by-pass ederdi.

İmplementasyon:
- adapter_invoker'dan `_substitute_args + _substitution_context` import
- policy_enforcer'dan `validate_command` import
- `invoke_cli` çağrısından ÖNCE resolved_command + resolved_args +
  validate_command zinciri; violation varsa `policy_denied` emit + fail_run

**M2 CLI entry contract pins + CHANGELOG drift**:
- `tests/test_cli_entrypoints.py`: `ao-kernel version` (konsol script)
  testi eklendi (shutil.which skip-if-not-installed)
- CHANGELOG F5 section'ı: `ao-kernel --version` yanlış ifadesi
  düzeltildi. cli.py parser sadece `version` subcommand destekler,
  `--version` flag YOKTUR.

**L1 PUBLIC-BETA.md overclaim düzeltmesi**:
- Sürüm durumu banner'ı: v3.13.2 Shipped satırları vs v4.0.0b1 plan
  satırları ayrıldı
- Kurulum bölümü: v3.13.2 (stable) + v4.0.0b1 (pre-release, henüz
  yayında değil)
- "Wheel-install smoke CI Shipped" → "Beta (plan)"; gerçek CI job
  v4.0.0b1 scope'unda (şu an test.yml'de yok)
- CI coverage gate 85% Shipped satırı eklendi

Test: 2750 passed, coverage 86.08%
Demo smoke (editable): final state completed

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…on helpers

Codex M1 absorb'da executor.py'a validate_command preflight eklendiğinde
import satırları atlanmıştı (primary worktree'ye yazılmış, session'a geçmeden).
Kod block'u kullanılıyor ama import'lar yok → NameError runtime.

Düzeltme: executor.py imports'a _substitute_args, _substitution_context,
validate_command eklendi.

Test: 2750 passed, coverage 86.07%

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Codex iter-2 review 3 substantive BLOCKER bulgu verdi:
- B1: validate_command event ordering bozuyor (adapter_invoked önce
  emit ediliyor, sonra validate; canonical order bozulur)
- B2: rollout semantics bypass (enabled=false dormant policy'de bile
  bloklar; executor.py:408-424 kontratı dışında)
- B3: build_sandbox() runtime interpreter path anchor eklemiyor;
  sys.executable venv/Homebrew'da command_path_outside_policy
  violation atabilir

Codex karar (X): "Patch release'te kontratı bozan 'hardening' ship
etmek, hiç ship etmemekten daha kötü. M1'i revert et, {python_executable}
token sadece demo/packaging compat fix olarak tut."

Revert scope:
- executor.py: validate_command block ve ilgili import'lar geri alındı
- _substitute_args, _substitution_context, validate_command import
  listesinden çıkarıldı
- adapter_invoker.py + codex-stub.manifest.v1.json DEĞİŞMEDİ (demo
  subprocess fix korunur)

Docs güncellendi:
- CHANGELOG M1 hardening iddiasını iter-2 revert notu ile değiştirdi
- PUBLIC-BETA.md: "Policy command validation wire'lı" ifadesi
  "v3.13.2'de sandbox preflight YOK, v3.13.1 davranışıyla aynı;
  entegrasyon v4.0.0b1 lane'inde" olarak düzeltildi

Defer v4.0.0b1 lane:
- enabled policy + command validation integration (rollout-aware,
  event-order-preserving, runtime-anchor sandbox)

Test: 2750 passed, coverage 86.08%
Demo smoke (editable): final state completed

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Codex iter-3 REVISE: doc accuracy. Önceki wording 'v3.13.1 davranışıyla
aynı / ne iyileşir ne kötüleşir' diyordu. Aslında {python_executable}
= sys.executable absolute path kullanımı eski 'python3' PATH-based
çözümünden farklı — enabled policy + command_allowlist tanımlayan
operator'lar için interpreter seçimi semantiği değişti.

Düzeltme:
- CHANGELOG: 'status quo' ifadesi yerine net 'PATH resolution'dan
  bağımsız; interpreter seçimi semantiği değişmiş olabilir' notu
- PUBLIC-BETA.md: aynı şekilde netleştirildi

No code change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@Halildeu Halildeu merged commit 268b309 into main Apr 20, 2026
9 checks passed
@Halildeu Halildeu deleted the fix/v3.13.2-correctness-patch branch April 21, 2026 08:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant