Skip to content

release(v0.13.1): silent-failure closeout + release-pipeline standardization#333

Open
avrabe wants to merge 1 commit into
mainfrom
release/v0.13.1
Open

release(v0.13.1): silent-failure closeout + release-pipeline standardization#333
avrabe wants to merge 1 commit into
mainfrom
release/v0.13.1

Conversation

@avrabe
Copy link
Copy Markdown
Contributor

@avrabe avrabe commented May 26, 2026

Release v0.13.1

Version bump (0.13.0 → 0.13.1) + CHANGELOG entry for the train just landed.

What shipped

Six PRs constitute v0.13.1:

PR Theme
#328 Bazel `rules_wasm_component` `git_override` (Rocq Proofs unblocker)
#332 Rocq Proofs job switched to `cachix/install-nix-action@v30` (matches working synth pattern)
#329 REQ-091 — rowan-yaml parser handles flush-left block sequences + `extract_links_via_serde` loud-fail
#327 spar pin `84a7363` → `v0.10.0` tag
#330 Release pipeline standardized to cross-repo synth pattern (SBOM + SLSA + build-env)
#331 `test_reload_yaml_error` flake stabilized (in train, may slip to v0.13.2 if its CI re-runs slowly)

Headline

REQ-091 closes an F2 silent-failure where the salsa-incremental `rivet validate` path graded zero links for artifacts written in YAML's zero-indent (flush-left) list style — the format `serde_yaml::to_string` emits. The `extract_links_via_serde` fallback now emits a parse diagnostic instead of silently returning `Vec::new()`. Surfaced previously-silent cardinality errors in the dev → aspice migration test; test updated to document the migration's actual structural-only contract.

v0.13.1 also ships

  • Release-pipeline parity with synth / spar / sigil / witness. Tagging `v0.13.1` will exercise the new pipeline end-to-end: CycloneDX SBOM (`rivet-0.13.1.cdx.json`) + SLSA v1 attest-build-provenance + cosign-keyless-signed `SHA256SUMS.txt` + `build-env.txt`.
  • spar bump to `v0.10.0` (hir-def fixes, assertion-eval fixes, EMV2 / NC tightness / mermaid / trace-topology capabilities).
  • CI now uniformly green — Rocq Proofs job swapped to the standard cachix Nix installer (was failing on Determinate Nix daemon Permission denied for every PR since v0.11.x).

Verification (post-release, paste into release notes)

```bash
cosign verify-blob \
--certificate-identity-regexp \
'https://github.com/pulseengine/rivet/.github/workflows/release.yml@.*' \
--certificate-oidc-issuer \
'https://token.actions.githubusercontent.com' \
--bundle SHA256SUMS.txt.cosign.bundle SHA256SUMS.txt

gh attestation verify rivet-v0.13.1-.tar.gz \
--repo pulseengine/rivet
```

Test plan

  • Workspace version bump (Cargo.toml + Cargo.lock + vscode-rivet/package.json)
  • CHANGELOG entry capturing the v0.13.1 theme
  • All constituent PRs merged + green
  • CI on this PR
  • Tag `v0.13.1` → `release.yml` produces full asset set

🤖 Generated with Claude Code

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: a00b5cd Previous: fce5dff Ratio
store_insert/10000 19490362 ns/iter (± 1367640) 15655075 ns/iter (± 981015) 1.24
link_graph_build/10000 40303436 ns/iter (± 2489824) 27552219 ns/iter (± 1885336) 1.46
validate/10000 23546029 ns/iter (± 1653196) 13419892 ns/iter (± 138543) 1.75
diff/10000 10519486 ns/iter (± 768863) 8331905 ns/iter (± 299545) 1.26

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

@codecov
Copy link
Copy Markdown

codecov Bot commented May 26, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

avrabe added a commit that referenced this pull request May 26, 2026
Same TCP-read flake observed on PR #333's Proptest (extended) job —
`reload_returns_hx_location` panicked with an empty response body, the
exact same flake class `post_reload_status` was added to handle for
the sibling `test_reload_yaml_error` test in this PR's prior commit.

Extract `post_reload_response` (full response body, with optional
`HX-Current-URL:` header) that retries once on empty body after a
200 ms backoff. Rewrite `reload_returns_hx_location` to use it.

The two helpers (`post_reload_status` returning status, the new
`post_reload_response` returning the full body) cover the two
distinct shape of POST-and-inspect-result the reload tests need.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
avrabe added a commit that referenced this pull request May 27, 2026
…y) (#331)

* test(serve): stabilize test_reload_yaml_error_returns_error_response

Same transient-connection-drop flake class that landed in
fetch_page_with_retry (PR-train preceding v0.13.0). The raw
TcpStream POST + read_to_end occasionally returns empty data on
self-hosted-runner contention, leaving the HTTP status parsed as 0
and the assertion failing with "got status 0" — observed on PR #328
(no serve-code change in the PR, the failure was the test, not the
production code).

Extract a `post_reload_status` helper that retries once on
`status == 0` after a 200 ms backoff (mirroring fetch_page_with_retry
exactly), and use it from test_reload_yaml_error_returns_error_response.
The other reload tests already work fine via fetch_with_timeout so
they don't need the helper yet.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* test(serve): extend retry-on-empty-body to reload_returns_hx_location

Same TCP-read flake observed on PR #333's Proptest (extended) job —
`reload_returns_hx_location` panicked with an empty response body, the
exact same flake class `post_reload_status` was added to handle for
the sibling `test_reload_yaml_error` test in this PR's prior commit.

Extract `post_reload_response` (full response body, with optional
`HX-Current-URL:` header) that retries once on empty body after a
200 ms backoff. Rewrite `reload_returns_hx_location` to use it.

The two helpers (`post_reload_status` returning status, the new
`post_reload_response` returning the full body) cover the two
distinct shape of POST-and-inspect-result the reload tests need.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* chore(fmt): rustfmt collapses map_or closure to single line

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Bumps workspace + vscode-rivet to 0.13.1. CHANGELOG captures the
v0.13.1 theme — silent-failure closeout (REQ-091, rowan-yaml
flush-left link loss + extract_links_via_serde loud-fail),
release-pipeline standardization to the cross-repo synth pattern
(SBOM + SLSA + build-env), spar `84a7363` → tag bump, and the
MODULE.bazel `rules_wasm_component` git_override that unblocked
Rocq Proofs CI on every PR.

This is the release-prep commit; the substantive PRs (#328, #329,
#330, #327) merge first, this branch is rebased onto the merged
main, then merged + tagged.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@avrabe avrabe force-pushed the release/v0.13.1 branch from cba60ea to a00b5cd Compare May 27, 2026 04:10
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