Skip to content

rivet verify: default marker scan misses crates in a cargo workspace layout (only ./src + ./tests) #574

Description

@avrabe

Friction (found dogfooding REQ-228 with the new rivet verify, #559)

From a cargo workspace root, rivet verify <ID> refuses even when a valid
// rivet: verifies <ID> marker exists, because its default scan only looks in
./src and ./tests — which don't exist at a workspace root (crates live in
rivet-core/src/, rivet-cli/src/, …).

Repro (in this repo):

$ rivet verify REQ-228
error: refusing to verify 'REQ-228': no verifying evidence ...
$ rivet verify REQ-228 --scan rivet-core/src --scan rivet-cli/src
  evidence: 1 source `verifies` marker(s) (e.g. rivet-core/src/coverage.rs:906)
modified REQ-228   # works

So the command is correct but its default is wrong for the most common Rust
project shape (a workspace) — including rivet's own. --scan is the workaround.

Suggested fix

Default scan should discover crate source roots in a workspace (e.g. walk
workspace members' src/+tests/, or fall back to a recursive scan rooted at
the project dir) instead of assuming a single-crate ./src+./tests. Keep
--scan as the explicit override.

Low-risk, self-contained; improves the #559 command (REQ-226). Refs REQ-226.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions