Releases: pulseengine/rivet
Releases · pulseengine/rivet
Rivet v0.19.0
What's Changed
- fix(wasm):
rivet-core --features wasmtest build compiles (#543) by @avrabe in #569 - fix(yaml): parse plain multi-line scalars as sequence items (#570) by @avrabe in #572
- feat(coverage): combined V-closure metric — satisfied AND verified (REQ-228) by @avrabe in #571
- chore(release): v0.19.0 — measure the V by @avrabe in #575
Full Changelog: v0.18.0...v0.19.0
Rivet v0.18.0
What's Changed
- feat(schema): requirement-verification rule — close the right side of the V (#555) by @avrabe in #561
- ci(release): make VSIX Marketplace publish non-blocking so npm publish isn't skipped by @avrabe in #560
- fix(schema): load bundled bridge schemas by name in a consumer's schemas: list (#530) by @avrabe in #558
- fix(add): create a default file for a new artifact type instead of forcing --file (#552) by @avrabe in #562
- feat(schema): per-type status enum overrides the global lifecycle (#550) by @avrabe in #563
- feat(schema): cited-source usable on any type incl. verification (#556) by @avrabe in #565
- feat(cli): rivet verify advances to verified on verifying evidence (#559) by @avrabe in #566
- chore(release): v0.18.0 — close the right side of the V by @avrabe in #568
Full Changelog: v0.17.0...v0.18.0
Rivet v0.17.0
What's Changed
- fix(next-id): honor IDs claimed in git history, never reissue a burned ID (#479) by @avrabe in #531
- docs(npm): first-class npm/npx install path + sync stale package versions by @avrabe in #533
- feat(cli): minimal --no-default-features build (excludes serve+MCP+LSP stack) — REQ-202 / #456 by @avrabe in #534
- ci: move mutants-cli off lean-mem to rust-cpu (#523) by @avrabe in #526
- fix(schema): restore
acceptedto canonical status enum (#522) by @avrabe in #525 - feat(init): --vendor-schemas pins built-in schemas on-disk against upgrades (#431) by @avrabe in #537
- fix(deps): bump wasmtime 43 → 44.0.3 for RUSTSEC-2026-0182 (unblocks all PRs) by @avrabe in #542
- feat(check): add
rivet check docsoracle with --format json + --strict (#540) by @avrabe in #541 - fix(variants): skip feature-model binding files in load_variant_configs_from_dir (#532) by @avrabe in #539
- ci: runner-liveness alert for the self-hosted pool (#509 slice 1) by @avrabe in #536
- fix(cli): JSON error envelope on parse failure under --format json (#500) by @avrabe in #535
- release(v0.17.0): bump version + CHANGELOG by @avrabe in #545
Full Changelog: v0.16.1...v0.17.0
Rivet v0.16.1
What's Changed
- ci: CI reliability — Miri timeout headroom + Verus on ubuntu-latest (v0.17.0, #509) by @avrabe in #520
- ci(miri): parallelize with cargo-nextest so Miri uses the cores (not 45 min on one) by @avrabe in #521
- fix(cli): next-id/add hard-fail on a parse-broken source (REQ-216, #518) by @avrabe in #527
- fix(variant): check --variant accepts the form init scaffolds (REQ-217, #514) by @avrabe in #528
- release(v0.16.1): #514 + #518 fixes (gale unblock) by @avrabe in #529
Full Changelog: v0.16.0...v0.16.1
Rivet v0.16.0
What's Changed
- fix(matrix): hint the correct --direction on an all-empty matrix (REQ-152) by @avrabe in #401
- fix(impact): load --since baseline via the canonical loader (REQ-153, #403) by @avrabe in #404
- fix(list,stats): loudly report sources skipped by parse errors (REQ-154, #353) by @avrabe in #405
- fix(validate): suppress prose-mention warning when no link type can connect the types (REQ-155, #353) by @avrabe in #407
- feat(validate): add coverage-rule-consistency schema check (REQ-148, #350) by @avrabe in #409
- refactor(validate): single chokepoint for schema-level consistency checks (REQ-156, #410) by @avrabe in #411
- fix(validate): emit the per-file parse-error skip WARN once, not twice (REQ-157, #406) by @avrabe in #412
- feat(validate,add): near-duplicate-intent detection (REQ-158, #397) by @avrabe in #413
- fix(add): deterministic near-duplicate note + correct REQ-158 self-count (#397) by @avrabe in #414
- feat(store): deterministic iter_sorted() + document iter() nondeterminism (REQ-159, #415) by @avrabe in #416
- fix(query,export,migrate): deterministic order over the HashMap-backed store (REQ-160, #415) by @avrabe in #417
- feat(validate): --structural gates on integrity only, via Diagnostic::is_structural() (REQ-161, #408) by @avrabe in #418
- ci(compliance): forward version-switcher + back-link inputs to the report action (REQ-163, #420) by @avrabe in #421
- chore(git): union-merge driver for CHANGELOG to cut parallel-PR conflicts (REQ-164, #422) by @avrabe in #423
- feat(schema): declare canonical status lifecycle in common.yaml (REQ-162, #352, #355) by @avrabe in #419
- fix(aspice): verification gates accept forward target status (REQ-165, #355 Finding 2) by @avrabe in #424
- feat(matrix): infer direction + link when --direction omitted (REQ-166, #402) by @avrabe in #425
- feat(cli): add
rivet trace <id>+ deterministic explain ordering (REQ-167, #426) by @avrabe in #427 - feat(bundle): --incoming follows backlinks so sinks bundle their realizers (REQ-168, #428) by @avrabe in #429
- feat(externals): rivet sync refuses to clobber uncommitted git-external edits (REQ-169) by @avrabe in #432
- feat(externals): surface un-synced externals so cycle/backlink checks aren't silently incomplete (REQ-170) by @avrabe in #434
- fix(playwright): bound graph E2E node count so dataset growth doesn't trip render budget (REQ-171) by @avrabe in #435
- fix(serve): preserve active variant scope when filtering/searching (REQ-172, #430) by @avrabe in #437
- fix(externals): ignore only .rivet/repos/ cache, not the whole .rivet/ dir (REQ-173, #433) by @avrabe in #439
- test(serve): /graph tests retry on status==0 to stop flapping on unrelated PRs (REQ-175) by @avrabe in #441
- ci(hooks): pre-commit also runs cargo fmt --check on staged Rust (REQ-174, #438) by @avrabe in #440
- feat(schema): rivet schema info reports on-disk vs embedded source (REQ-176, #431) by @avrabe in #442
- feat(schema): add
rivet schema sources— on-disk vs embedded resolution (REQ-177, #431) by @avrabe in #443 - docs(artifacts): file REQ-178 — coverage-gap diagnostics should name the intermediate chain (#350) by @avrabe in #444
- feat(validate): --explain names which backlink source types can attach directly (REQ-178, #350) by @avrabe in #445
- docs(artifacts): realize shipped dogfood REQs with feature artifacts (coverage 27.9%→31.8%) by @avrabe in #446
- feat(cli): rivet next-id accepts a positional type/prefix shorthand (REQ-179, #447) by @avrabe in #448
- docs(agents): surface rivet next-id in generated agent guidance (REQ-180, #447) by @avrabe in #449
- fix(export): escape backslashes in zola TOML front matter + gate it (REQ-181, #392) by @avrabe in #450
- fix(export): actionable error when a single-file format gets a directory --output (REQ-182) by @avrabe in #451
- fix(reqif): title-less artifacts stay re-importable via id LONG-NAME fallback (REQ-183) by @avrabe in #452
- feat(cli): add
importas a visible alias for import-results (REQ-184, #453) by @avrabe in #454 - fix(lsp): resolve cross-repo external links so VSIX doesn't flag them broken (REQ-185) by @avrabe in #455
- plan: REQ-186 — CLI minimal-build feature (validate without serve+MCP+LSP) by @avrabe in #457
- feat(cli): rivet query accepts s-expression as a positional shorthand (REQ-187) by @avrabe in #458
- feat(cli): positional link/unlink target + accurate init/modify help (REQ-188) by @avrabe in #459
- feat(cli): query --format json carries command envelope + ships query-output schema (REQ-189) by @avrabe in #460
- fix(query): execute_sexpr returns deterministic (id-sorted) matches (REQ-190, #415) by @avrabe in #461
- fix(links): orphans() returns id-sorted output for deterministic stats/validate (REQ-191, #415) by @avrabe in #462
- feat(cli): commits --format json carries the command envelope field (REQ-192) by @avrabe in #463
- fix(embed): {{query:...}} embed renders rows id-sorted for reproducible docs (REQ-193, #415) by @avrabe in #464
- feat(cli): snapshot diff accepts the baseline path positionally (REQ-194) by @avrabe in #465
- feat(cli): variant subcommands accept a bare --variant (REQ-195, #466) by @avrabe in #467
- fix(export): honest AADL fallback in static HTML, no perpetual Loading (REQ-196, #468) by @avrabe in #469
- fix(serve/docs): honest AADL/WASM-unavailable guidance, not broken tooling (REQ-197, #468) by @avrabe in #470
- fix(mutate): rivet add emits valid YAML for multi-line/special-char fields (REQ-198) by @avrabe in #471
- fix(mutate): serialize nested (list/map) field values as structures, not strings (REQ-199) by @avrabe in #472
- fix(export): honest AADL fallback in the REAL html export path (REQ-200, #468) by @avrabe in #473
- ci: key main concurrency group per-sha so main runs stay conclusive (#436) by @avrabe in #481
- fix(tools/intro-video): make the video pipeline actually produce a video by @avrabe in #480
- chore: ignore recorded/generated video repo-wide (mp4/webm/mov/mkv/m4v) by @avrabe in #486
- docs(agents): document the parallel-PR conflict-avoidance policy (#422) by @avrabe in #489
- fix(export): node-budget the single-page graph render so it can't hang (REQ-201) by @avrabe in #474
- docs(agents): "Before You Push (Rust)" guidance + REQ-202 (minimal build) — issues #438, #456 by @avrabe in #475
- feat(add): rivet add stamps AI provenance at creation (REQ-203, closes #476) by @avrabe in #477
- fix(serve,lsp): sort the 2 remaining nondeterministic store.iter() output sites (REQ-204, #415) by @avrabe in #478
- feat(validate+schema): surface schema set name@version + source everywhere (#431, closes #484) by @avrabe in #483
- ci: warn when a schema changes without a version bump (REQ-206, closes #485) by @avrabe in #487
- test(playwright): lift node budget in variant-scoping graph invariant (#436) by @avrabe in #491
- feat(serve): presentation/clean mode for recordings (REQ-207, closes #482) by @avrabe in #492
- ci(nextest): retry flaky tests so one serve-test race doesn't red main (closes #493) by @avrabe in #494
- ci(proptest): upload failing seeds so extended proptest reds are reproducible (closes #495) by @avrabe in #496
- feat(tools/intro-video): record dashboard in presentation mode (clean frames) by @avrabe in https:...
Rivet v0.15.0
What's Changed
- fix(coverage): relabel per-rule totals so they don't read as artifact counts (REQ-110/111) by @avrabe in #348
- fix(validate,coverage): required-backlink matches inverse-name convention + honours alternate-backlinks by @avrabe in #351
- docs(artifacts): file REQ-132..134 from issue #350 (sw-req implement friction) by @avrabe in #356
- chore: untrack .claude/scheduled_tasks.lock (committed by accident) by @avrabe in #362
- docs(artifacts): file REQ-135 (status enum) + REQ-136 (modify ergonomics) by @avrabe in #361
- docs(artifacts): mark merged features implemented + re-file REQ-131 by @avrabe in #363
- feat(get,list): expose incoming links (what links to an artifact) (#358) by @avrabe in #364
- feat(modify): wire --set-description flag + clearer usage (#359, #360) by @avrabe in #365
- feat(validate): --min-severity display filter to cut advisory noise (#357) by @avrabe in #366
- docs(artifacts): mark REQ-136 implemented by @avrabe in #367
- fix(export): drop the localhost oEmbed discovery tag from static export (REQ-117) by @avrabe in #368
- docs(REQ-135): record base_fields root cause of the status-enum gap by @avrabe in #369
- feat(validate): retain base-fields + enforce status enum when declared (REQ-135) by @avrabe in #370
- feat(modify,add): reject a status outside the declared enum (REQ-135, #354) by @avrabe in #371
- feat(validate): --explain — per-artifact traceability explanation (REQ-125) by @avrabe in #372
- feat(list): --orphans — list artifacts disconnected from the graph (REQ-128) by @avrabe in #373
- fix(reqif): directory import fails loudly on a corrupt file (REQ-120, F2) by @avrabe in #374
- fix(reqif): import fails on an unresolved ENUM-VALUE-REF (REQ-119, F2) by @avrabe in #375
- fix(reqif): import fails on a title-less SPEC-OBJECT (REQ-123, F2) by @avrabe in #376
- fix(export): Zola links survive a sub-directory deploy (REQ-115/116/118) by @avrabe in #377
- fix(load): silence skip-WARN for legitimate non-artifact YAML (REQ-139) by @avrabe in #379
- feat(modify): --where for query-driven bulk modify (REQ-141) by @avrabe in #380
- fix(modify): correct s-expr syntax in --where help examples (REQ-141) by @avrabe in #382
- fix(sexpr): show field-equality example in filter parse error (REQ-142, #381) by @avrabe in #383
- fix(externals): resolve refs with a hyphenated (kebab) prefix (REQ-143) by @avrabe in #384
- fix(source-view): match artifact ids as whole tokens, not substrings (REQ-144) by @avrabe in #387
- feat(junit): honor a rivet_tc_id testcase property as the artifact id (REQ-145) by @avrabe in #388
- test(serve): stabilize graph_type_filter flake with a 15s budget (#389) by @avrabe in #390
- feat(scripts): Zola export build smoke check (REQ-138, #378) by @avrabe in #391
- fix(validate): salsa path evaluates status-gate validation-rules (REQ-146, #355) by @avrabe in #393
- fix(validate): coverage diagnostics name the link + satisfier types (REQ-147, #350) by @avrabe in #394
- docs(schemas): recipe for extending a built-in artifact type with project fields (REQ-149, #350) by @avrabe in #395
- chore(artifacts): dogfood REQ audit — flip REQ-134, reconcile REQ-149 duplicate, file REQ-150 by @avrabe in #396
- feat(list): --rank-by-backlinks — rank artifacts by inbound-link count (REQ-128) by @avrabe in #398
- feat(cli): global -q/--quiet flag to suppress the WARN log preamble (REQ-151, #353) by @avrabe in #399
- release(v0.15.0): sub-directory-safe exports + agent-ergonomic CLI by @avrabe in #400
Full Changelog: v0.14.0...v0.15.0
Rivet v0.14.0
What's Changed
- feat(tools): re-generatable intro-video infrastructure (tools/intro-video/) by @avrabe in #339
- docs(req-105): consolidate the 3 HTML-export asset gaps + serve image-rewrite tests by @avrabe in #337
- ci(release-npm): preflight npm-auth check (loud-fail on bad/expired token) by @avrabe in #342
- docs(roadmap): file REQ-093..101 + 10-persona review design doc (supersedes #326) by @avrabe in #341
- feat(validate): agent-actionable diagnostic remediation (REQ-124) by @avrabe in #345
- feat(export): HTML export self-contained — relative links + bundled JS + copied images (REQ-105) by @avrabe in #343
- docs(artifacts): file REQ-125..128 — gbrain-derived deterministic-armor backlog by @avrabe in #346
- docs(artifacts): file 14 oracle-verified bug-hunt findings (REQ-110..123) + REQ-109 decision by @avrabe in #344
- release(v0.14.0): agent-actionable validation + self-contained export by @avrabe in #347
Full Changelog: v0.13.3...v0.14.0
Rivet v0.13.3
What's Changed
- fix(serve): variant scope uses binding embedded in the variant file (REQ-106) by @avrabe in #335
- fix(serve): external artifact links route to the artifact detail (REQ-108, item 1) by @avrabe in #336
- fix(serve): render sequence/mapping field values structurally, not Rust Debug (REQ-107) by @avrabe in #338
- release(v0.13.3): serve dashboard correctness (REQ-106 / REQ-107 / REQ-108) by @avrabe in #340
Full Changelog: v0.13.2...v0.13.3
Rivet v0.13.2
What's Changed
Full Changelog: v0.13.1...v0.13.2
Rivet v0.13.1
What's Changed
- fix(bazel): pin rules_wasm_component via git_override (Rocq Proofs unblocker) by @avrabe in #328
- fix(ci): Rocq Proofs job — use cachix Nix installer (match working synth pattern) by @avrabe in #332
- fix(yaml): rowan parser handles flush-left block sequences + links loud-fail (REQ-091, v0.13.1) by @avrabe in #329
- chore(deps): bump spar pin 84a7363 → v0.10.0 tag by @avrabe in #327
- chore(release): align release pipeline with synth reference (SBOM + SLSA + build-env) by @avrabe in #330
- test(serve): stabilize test_reload_yaml_error flake (status==0 → retry) by @avrabe in #331
- release(v0.13.1): silent-failure closeout + release-pipeline standardization by @avrabe in #333
Full Changelog: v0.13.0...v0.13.1