release(v0.11.0): cross-git investigation waves 1-3 + Kani/Playwright fixes#310
Merged
Conversation
…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>
📐 Rivet artifact deltaNo artifact changes in this PR. Code-only changes (renderer, CLI wiring, tests) don't touch the artifact graph. |
There was a problem hiding this comment.
⚠️ 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 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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Wave 3 — the final wave of cross-git investigation follow-ups (FEAT-135).
One code feature plus the documentation cluster.
rivet validate --with-externals-validateruns validate inside each linked external and surfaces its diagnostics under across_repo_diagnosticsarray (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).rivet docs cross-reponow documents both cross-repo mechanisms (externals:vsexternal-anchor+cited-source), when to pick each, and the open decision DD-067.rivet docs cross-repo-citopic — the recommended CI sequence, a worked GitHub Actions example, and the AoU register.docs/rivet-is-not.mdgrows §7a — the explicit Cross-org Assumptions-of-Use register, AoU-X1..X7, each citing its source finding.docs/README.mddescribes thedocs/subdir lifecycle.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
doc-checkSubcommandReferencesviolations (rivet migrate/rivet oslcin architecture.md) and adoc-broken-ref— REQ-073's frontmatter made the scanner processgetting-started.md, which had a literal[[ID]]syntax placeholder. Both caught by runningrivet 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. newvalidate_with_externals_validate_surfaces_supplier_diagnostics, andstats_json_counts_match_validate/test_dogfood_validatestill green).rivet docs check— PASS (58 files, 0 violations).rivet validatefrontmatter 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