Repository navigation
chore(release): v0.41.1 — marker scan regression, reproducible export, Robot markers - #1108
Merged
Merged
Conversation
…ssion, the reproducible export and Robot markers Three corrective requirements scoped to the v0.41.1 patch (maintainer decision): #1097 (the v0.41.0 marker walk follows symlinks and ignores .gitignore), #1104 (HTML export ordering and absolute paths) and #1105 (.robot files are not scanned). Each carries its acceptance; the fixes and their tests follow on this branch. Refs: REQ-389, REQ-029 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015HMQUV3u86jN2hmCtXNTc9
…ths (#1097) Since v0.41.0 validate, coverage and MCP reload scan source for rivet markers, and the walk used Path::is_dir, which follows symlinks, read no ignore file and had no cycle guard; on WSL2 a project with links into the Windows drive did not finish. The walk now uses the ignore crate with follow_links off (so no cycles), honours .gitignore, .ignore, .git/info/exclude and a project .rivetignore (not the user's global ignore, so results do not depend on the machine), keeps the existing skips and sorts by path. On this repository the marker set is unchanged apart from the six new test markers (1204 before, 1210 after). Negative controls: following links reddens the symlinked-directory test; disabling ignore handling reddens the gitignore and rivetignore tests. Fixes: REQ-405 Refs: REQ-389 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015HMQUV3u86jN2hmCtXNTc9
.robot and .resource files were skipped before any pattern ran, so a Robot suite could never be evidence for a requirement. Add both extensions with # comments. Robot test cases are not functions, so a marker before or inside a case is attributed to the case name; a marker with no case around it falls back to file:line. Implements: REQ-407 Refs: #1105, REQ-389 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015HMQUV3u86jN2hmCtXNTc9
…aths relative to the project (#1104) Two exports of the same tree differed in 190 of 1215 files. The link graph collected backlinks while iterating the store in HashMap order, so every artifact page listed its Incoming Links in a run-dependent order. The graph, document-linkage and datalist views had the same root cause: node_map and store.iter() iteration fed the layout and the tables. LinkGraph::build now walks the store in id order and sorts each artifact's backlinks by link type then source id, so every surface agrees. The render module iterates the store with iter_sorted, the graph view walks the petgraph node order instead of the HashMap node_map, and the document-linkage edge maps are BTreeMaps. The RenderContext gains a static_export flag, set only by the HTML export, which writes data-source-file relative to the project root; serve and the VS Code webview still receive the real path their shim opens. Confirmed with a new integration test that exports a project with twelve mixed incoming links twice and requires byte-identical trees with no absolute path; removing the sort reddens it and the unit test every run. Exporting this repository twice now differs in 0 of 1215 files. Fixes: REQ-406 Refs: #1104, REQ-029 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015HMQUV3u86jN2hmCtXNTc9
REQ-405, REQ-406 and REQ-407 verified by their test markers; version 0.41.1 in the workspace, the VS Code extension and both lockfiles; CHANGELOG cut [0.41.1]. rivet release status v0.41.1 reports 3 of 3 verified and the changelog drift check is clean. Verifies: REQ-405, REQ-406, REQ-407 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015HMQUV3u86jN2hmCtXNTc9
📐 Rivet artifact delta
Graphgraph LR
REQ_405["REQ-405"]:::added
REQ_406["REQ-406"]:::added
REQ_407["REQ-407"]:::added
classDef added fill:#d4edda,stroke:#28a745,color:#155724
classDef removed fill:#f8d7da,stroke:#dc3545,color:#721c24
classDef modified fill:#fff3cd,stroke:#ffc107,color:#856404
classDef overflow fill:#e2e3e5,stroke:#6c757d,color:#495057,stroke-dasharray: 3 3
Added
Posted by |
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
….1 cut; a dot-file test kills the walker's surviving mutant RUSTSEC-2026-0378/0379 (wasmtime) and RUSTSEC-2026-0382 (rustls-webpki) appeared while v0.41.1 was in CI and fail Cargo Deny. The lockfile floor test now rejects 48.0.6 and 49.0.3. PR-diff mutation found that turning the walker's depth-or-not-a-directory guard into an and survived: name filtering would then apply to files and skip dot-files. The nested-walk test now expects a dot-file below the root to be scanned; with the mutant applied it fails, restored it passes. Verifies: REQ-402, REQ-405 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015HMQUV3u86jN2hmCtXNTc9
This was referenced Oct 21, 2026
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.
Patch release (maintainer decision 2026-10-20) for one v0.41.0 regression and two downstream reports.
validatescans forrivet: verifiesmarkers, and the walk followed symlinks, read no ignore file and had no cycle guard (WSL2: hours). Nowignore::WalkBuilderwithfollow_links(false), honouring.gitignore,.ignore,.git/info/excludeand a new.rivetignore; existing skips kept. Marker set on this repo unchanged (1204 → 1210, the +6 are the new tests). Negative controls: following links / dropping ignore handling redden the named tests.LinkGraph::buildoveriter_sorted, then type/source), plus three more HashMap-ordered surfaces found by the test (graph subgraph,store.iter()in render, doc-linkage maps). Static export writesdata-source-filerelative to the project; serve/VSIX unchanged. Verified independently on this repo: two exports, 1218 files, 0 differ, 0 absolute-path hits (v0.41.0: 190 of 1215 differed)..robot/.resourcemarkers credited and attributed to the Robot test case.Gates (1.99.0): fmt, clippy
--all-targets -D warnings, nextest 2623 passed, cli_commands 247,rivet validatePASS,docs checkPASS,rivet release status v0.41.1✓ Cuttable (3/3 verified), changelog drift clean.Version 0.41.1 in Cargo.toml, vscode-rivet/package.json, Cargo.lock, fuzz/Cargo.lock. New dependency:
ignore0.4.33 (MIT/Unlicense).Implementation of each fix by Sonnet subagents in isolated worktrees; reviewed, integrated and re-verified by the supervising session.
🤖 Generated with Claude Code
https://claude.ai/code/session_015HMQUV3u86jN2hmCtXNTc9