slovo/.llm/reviews/BETA_22_RELEASE_REVIEW.md

3.5 KiB

Beta22 Release Review

Verdict: PASS with notes.

Findings

No blocking or non-blocking findings in the reviewed scope.

Scope Reviewed

  • compiler/src/main.rs run manifest rendering and exit behavior.
  • compiler/tests/run_manifest_beta22.rs focused coverage.
  • .llm/BETA_22_RUN_MANIFEST_AND_EXECUTION_REPORT_HARDENING.md beta22 contract and suggested gates.
  • README.md, docs/compiler/RELEASE_NOTES.md, docs/compiler/ROADMAP.md, docs/language/RELEASE_NOTES.md, docs/language/ROADMAP.md, and docs/language/SPEC-v1.md release claims.
  • scripts/release-gate.sh inclusion.

Acceptance Checklist

  • PASS: glagol run --manifest <path> writes additive run execution evidence after a supported program executes. The run path captures child stdout/stderr/status before manifest rendering and exits with the child status in compiler/src/main.rs:892 through compiler/src/main.rs:918; rendering emits (run-report ...) in compiler/src/main.rs:2162 through compiler/src/main.rs:2188.
  • PASS: Run-report records exit status, captured stdout, captured stderr, and forwarded args. Tests cover success stdout and args in compiler/tests/run_manifest_beta22.rs:10 through compiler/tests/run_manifest_beta22.rs:60, and nonzero exit plus stderr preservation in compiler/tests/run_manifest_beta22.rs:62 through compiler/tests/run_manifest_beta22.rs:128.
  • PASS: Existing manifest fields and schema/version markers remain compatible. The new path passes Some(run_report) only through the run-specific wrapper in compiler/src/main.rs:2019 through compiler/src/main.rs:2043; the renderer still emits slovo.artifact-manifest version 1 in compiler/src/main.rs:2067 through compiler/src/main.rs:2069.
  • PASS: Source failures do not receive fake run evidence. The focused test asserts no run-report for a type failure in compiler/tests/run_manifest_beta22.rs:130 through compiler/tests/run_manifest_beta22.rs:161.
  • PASS: Non-run modes are outside the run-report requirement. Existing foreign-import/project manifest wrappers pass None for the run-report slot in compiler/src/main.rs:1992 through compiler/src/main.rs:2017; beta22 docs state this explicitly in .llm/BETA_22_RUN_MANIFEST_AND_EXECUTION_REPORT_HARDENING.md:58 and docs/compiler/RELEASE_NOTES.md:35.
  • PASS: Documentation does not overclaim language, stdlib, runtime, package, ABI, or stable manifest-schema changes. Representative deferrals are present in README.md:172 through README.md:178, docs/compiler/ROADMAP.md:118 through docs/compiler/ROADMAP.md:124, docs/language/RELEASE_NOTES.md:52 through docs/language/RELEASE_NOTES.md:62, docs/language/ROADMAP.md:99 through docs/language/ROADMAP.md:106, and docs/language/SPEC-v1.md:260 through docs/language/SPEC-v1.md:267.
  • PASS: The beta22 contract suggested gate names match the implemented focused test and release gate. .llm/BETA_22_RUN_MANIFEST_AND_EXECUTION_REPORT_HARDENING.md:63 through .llm/BETA_22_RUN_MANIFEST_AND_EXECUTION_REPORT_HARDENING.md:71 lists cargo test --test run_manifest_beta22; scripts/release-gate.sh:75 includes the same focused test.

Verification

Ran:

cargo test --test run_manifest_beta22

Result: passed, 3 tests passed.

Recommended before release tag:

cargo fmt --check
./scripts/release-gate.sh
git diff --check

Note: the focused hosted-run tests depend on Clang discovery, matching existing project patterns. In this local run they executed and passed rather than skipping.