Skip to content

release(v0.11.0): cross-git investigation waves 1-3 + Kani/Playwright fixes#310

Merged
avrabe merged 5 commits into
mainfrom
feat/wave-3-req065-topics
May 21, 2026
Merged

release(v0.11.0): cross-git investigation waves 1-3 + Kani/Playwright fixes#310
avrabe merged 5 commits into
mainfrom
feat/wave-3-req065-topics

Conversation

@avrabe
Copy link
Copy Markdown
Contributor

@avrabe avrabe commented May 21, 2026

Summary

Wave 3 — the final wave of cross-git investigation follow-ups (FEAT-135).
One code feature plus the documentation cluster.

REQ What
REQ-065 rivet validate --with-externals-validate runs validate inside each linked external and surfaces its diagnostics under a cross_repo_diagnostics array (source_project/source_artifact_id/severity/rule/message). Off by default — the consumer's PASS does not otherwise reflect the supplier's state (F6 / AoU-X1).
REQ-067 rivet docs cross-repo now documents both cross-repo mechanisms (externals: vs external-anchor+cited-source), when to pick each, and the open decision DD-067.
REQ-071 New rivet docs cross-repo-ci topic — the recommended CI sequence, a worked GitHub Actions example, and the AoU register.
REQ-072 docs/rivet-is-not.md grows §7a — the explicit Cross-org Assumptions-of-Use register, AoU-X1..X7, each citing its source finding.
REQ-073 Frontmatter added to the 11 frontmatter-less depth-1 docs (gap 11 → 0); new docs/README.md describes the docs/ subdir lifecycle.
REQ-074-2b The audit's worst stale-number offenders fixed: schemas.md (5 → the real domain+bridge catalogue), architecture.md (module tables rebuilt; OSLC-as-CLI claim corrected), oracles.md (3 → 5 oracles, version stamp refreshed).

Notable

  • The docs subagent couldn't execute the binary; its static verification missed two doc-check SubcommandReferences violations (rivet migrate/rivet oslc in architecture.md) and a doc-broken-ref — REQ-073's frontmatter made the scanner process getting-started.md, which had a literal [[ID]] syntax placeholder. Both caught by running rivet docs check + the full test suite locally, and fixed in the final commit.

Test plan

  • cargo build --workspace — clean.
  • cargo test --workspace — 0 failures (incl. new validate_with_externals_validate_surfaces_supplier_diagnostics, and stats_json_counts_match_validate / test_dogfood_validate still green).
  • rivet docs check — PASS (58 files, 0 violations).
  • rivet validate frontmatter gaps: 0.
  • cargo clippy --workspace --all-targets -- -D warnings — exit 0.

Implements: REQ-004, REQ-007
Verifies: REQ-065, REQ-067, REQ-071, REQ-072, REQ-073, REQ-074
Refs: FEAT-135

🤖 Generated with Claude Code

avrabe and others added 4 commits May 21, 2026 06:53
…cs (REQ-065)

By default `rivet validate` on a consumer says nothing about a linked
external project's own validation state — the cross-git investigation's
F6 finding, and the SEooC AoU-X1 the integrator must otherwise own
manually. The cross_repo_* counters covered broken *refs*, never the
supplier's internal diagnostics.

New `--with-externals-validate` flag: when set, `cmd_validate` runs
`validate::validate` inside each linked external (using the
`ResolvedExternal`'s own artifacts + schema) and surfaces every
resulting diagnostic under a new `cross_repo_diagnostics` array — each
entry tagged `source_project` (the external's prefix),
`source_artifact_id`, `severity`, `rule`, `message`. Text output gains
a "Cross-repo diagnostics" section. The flag is independent of
`--skip-external-validation` (which governs cross-*ref* checking).

Off by default: the supplier's diagnostics do not gate the consumer's
run, and the cross-repo validate has different performance
characteristics. Opt-in matches the AoU — the integrator chooses to
look.

Regression test: validate_with_externals_validate_surfaces_supplier_diagnostics
— a path-external supplier with invalid-priority reqs; default validate
yields an empty cross_repo_diagnostics, --with-externals-validate
surfaces >= 3 entries with all five fields.

Implements: REQ-004
Verifies: REQ-065
Refs: FEAT-135
…topic (REQ-067, REQ-071)

REQ-067 — the `rivet docs cross-repo` topic documented only the
`externals:` mechanism. Added a "Two cross-repo mechanisms" section: a
side-by-side of `externals:` (git-SHA-pinned, rivet-to-rivet) vs
`external-anchor` + `cited-source` (sha256-content-pinned,
supplier-agnostic), when to pick each, and a pointer to the open
architectural decision DD-067.

REQ-071 — new `rivet docs cross-repo-ci` topic: the recommended CI
sequence (sync → supplier pull → validate --strict-cited-sources
--fail-on warning → validate --with-externals-validate), a worked
GitHub Actions example, and the AoU-X1/X2/X4 register pointing at
docs/rivet-is-not.md §7a — so a green cross-repo CI run is not
mistaken for discharge of the integrator's obligations.

Verified: `rivet docs cross-repo-ci` resolves; `rivet docs check`
PASS (0 violations).

Implements: REQ-007
Verifies: REQ-067, REQ-071
Refs: FEAT-135
…(REQ-072/073/074)

Wave 3 documentation-content follow-ups from the cross-git investigation
(docs-only; no Rust code).

REQ-074-2b — refresh the audit's worst stale-number offenders:
- schemas.md: replace the 5-schema inventory with the full catalogue
  (21 domain + 8 bridge schemas verified against schemas/*.yaml), worded
  to resist re-rot and carrying an AUDIT marker on the one hard count.
- architecture.md: rebuild the rivet-core module table (was missing
  ~half the crate — salsa db, sexpr*, yaml_*, mutate, doc_check,
  feature_model, variant_emit, externals, baseline, snapshot, mcp, …),
  rebuild the rivet-cli table, replace the 5-row schema table with a
  pointer to schemas.md, and correct the OSLC claim — oslc is a client
  library, not a shipped `rivet oslc` CLI surface.
- oracles.md: refresh the catalogue from 3 oracles to the 5 in the
  current CheckAction enum (adds `sources` and `ai-defects-open`) and
  bump the version stamp from v0.4.3 to v0.10.1.

REQ-072 — grow docs/rivet-is-not.md with the cross-org AoU register:
- add §7a "Cross-org Assumptions of Use" with AoU-X1..AoU-X7, each
  citing its source finding (F1/F6/F7/F8/F9). The pre-existing §7 prose
  is preserved; the register is additive.

REQ-073 — frontmatter coverage + docs/README.md:
- add YAML frontmatter (id/title/type/status/tags) to the 11 depth-1
  docs the doc scanner skipped for "no YAML frontmatter".
- add docs/README.md mapping each docs/ subdirectory and its lifecycle.

Refs: FEAT-135, REQ-072, REQ-073, REQ-074

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The Wave-3 docs work surfaced two issues the subagent's static
verification could not catch (it lacked permission to run the binary):

- architecture.md referenced `rivet migrate` and `rivet oslc` — neither
  is a real subcommand. `rivet schema migrate` is the actual surface;
  the OSLC sentence is reworded to drop the bare `rivet oslc` token
  (the prose already, correctly, says OSLC has no CLI surface — but
  doc-check's SubcommandReferences invariant matches the token, not the
  surrounding negation). doc-check now PASS.

- getting-started.md:1128 used a literal `[[ID]]` as a syntax
  placeholder. REQ-073 added frontmatter to that file, which made the
  document scanner process it — and extract `[[ID]]` as a (non-existent)
  artifact reference, emitting one `doc-broken-ref` warning. That
  warning is visible to `rivet validate` (it scans documents) but not
  to `rivet stats`, breaking `stats_json_counts_match_validate`
  (148 vs 147). Reworded to describe wiki-links without the literal
  token; counts agree again.

Refs: FEAT-135, REQ-073, REQ-074

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

github-actions Bot commented May 21, 2026

📐 Rivet artifact delta

No artifact changes in this PR. Code-only changes (renderer, CLI wiring, tests) don't touch the artifact graph.

Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark 'Rivet Criterion Benchmarks'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.20.

Benchmark suite Current: 855c270 Previous: ef5a855 Ratio
traceability_matrix/1000 62655 ns/iter (± 214) 44042 ns/iter (± 220) 1.42
query/10000 121871 ns/iter (± 1222) 98628 ns/iter (± 927) 1.24

This comment was automatically generated by workflow using github-action-benchmark.

@codecov
Copy link
Copy Markdown

codecov Bot commented May 21, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

…ittle Playwright locator

Folds the v0.11.0 release into the Wave-3 PR so the tag follows one
CI cycle, not two.

Version: 0.10.1 → 0.11.0 (Cargo.toml, vscode-rivet/package.json).
CHANGELOG: [0.11.0] section — the cross-git investigation, waves 1-3.

Two CI failures the user flagged, both pre-existing (red since #298,
before this session — NOT wave regressions), fixed here because they
are real and in reach:

- Kani Proofs failed to BUILD: `rivet-core/src/proofs.rs:206`
  constructed a `CoverageEntry` without the `external_boundary` /
  `external_boundary_ids` fields that #253's 3-state coverage added.
  `proofs.rs` is `#[cfg(kani)]`-gated, so a normal `cargo build`
  never compiles it — the break was invisible outside the Kani job.
  Added the two fields (0 / empty).

- Playwright `rendering-invariants` strict-mode violation:
  ARCH-CORE-001's description now carries two fenced mermaid blocks
  (`flowchart LR` + `stateDiagram-v2`); the test's `pre.mermaid`
  locator resolved to 2 and failed strict mode. Scoped to `.first()`
  — the flowchart block the `toContainText("flowchart")` assertion
  expects; the `.svg-viewer` count check already handles multiples.

Rocq/Verus remain red on the runner's Nix-daemon permission error
(`opening lock file ... Permission denied`) — pure infrastructure,
no code fix possible here.

Implements: REQ-007
Refs: FEAT-135
@avrabe avrabe changed the title Wave 3: cross-repo diagnostic propagation + docs cluster (REQ-065/067/071/072/073/074) release(v0.11.0): cross-git investigation waves 1-3 + Kani/Playwright fixes May 21, 2026
@avrabe avrabe merged commit 8e08ff4 into main May 21, 2026
18 of 39 checks passed
@avrabe avrabe deleted the feat/wave-3-req065-topics branch May 21, 2026 06:02
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