slovo/.llm/reviews/BETA_11_RELEASE_REVIEW.md

3.5 KiB

1.0.0-beta.11 Release Review

Status: ready for publication after the controller release gate.

Verdict

No blocking issues remain after controller follow-up. The original workspace package API leak was reproduced, fixed, and covered by a regression test before publication.

Resolved Finding

  • Workspace package API docs originally included compiler-loaded standard library modules when a workspace package imported std.option.
  • Controller fix: workspace package API rendering now filters package modules to the package source root before collecting public API sections, matching the existing project-mode local-root behavior. Ordinary module summaries can still show loaded standard-library modules, but package API sections no longer present those modules as package-owned API.
  • Regression added: doc_workspace_package_api_excludes_loaded_std_modules.

Scope Checked

  • compiler/src/docgen.rs adds per-module public API sections and package API sections, renders exported function signatures, struct fields, enum variants, and normalizes module-local aliases before public rendering.
  • compiler/tests/doc_api_beta11.rs covers file, project, workspace scaffold, workspace packages importing std.*, alias normalization, non-exported function omission, and byte-identical repeat generation for a file input.
  • README, compiler/language roadmaps, release notes, SPEC-v1, STDLIB_API.md, and the beta11 .llm contract include the main deferrals: no stable Markdown schema, no stable stdlib/API compatibility freeze, no LSP/watch, no SARIF/daemon protocol, no diagnostics schema policy, no executable generics, no maps/sets, no re-exports/globs/hierarchical modules, and no registry semantics.
  • Version bumps in compiler/Cargo.toml and compiler/Cargo.lock move glagol from 1.0.0-beta.10 to 1.0.0-beta.11.

Test Coverage Notes

  • Workspace packages that import std.* are now covered by a focused regression that verifies package API excludes loaded standard-library modules and helpers.
  • Determinism is asserted byte-for-byte only for file docs. Project and workspace determinism are indirectly exercised by sorted rendering but not protected by repeat-generation tests.
  • Non-export filtering is asserted for functions and aliases. There is no explicit negative test for non-exported structs, non-exported enums, or tests appearing in public API sections.
  • Alias normalization is covered for file/module docs, but not for project or workspace package API fixtures.

Verification

  • cargo fmt --check: passed.
  • cargo check: passed.
  • cargo test --test doc_api_beta11: passed, 6 tests.
  • cargo test --test dx_v1_7: passed, 13 tests.
  • cargo test --test symbols_beta10: passed, 4 tests.
  • cargo test --test promotion_gate: passed, 1 unignored test.
  • git diff --check: passed.
  • Stale beta10 current-release/version scan over README, docs, .llm, and compiler package metadata: no matches.
  • Private/local publication text scan over README, docs, scripts, compiler source/tests, lib, examples, benchmarks, tests, and .llm: no matches.
  • node scripts/render-stdlib-api-doc.js: passed and refreshed the catalog release wording to 1.0.0-beta.11.
  • Manual workspace std-import doc generation after the fix: package API no longer includes loaded standard-library modules.
  • ./scripts/release-gate.sh: passed docs, generated stdlib API catalog consistency, private-publication text checks, formatter checks, the full cargo test suite, ignored promotion checks, binary smoke, and LLVM smoke.