Skip to content

rivet verify: default scan misses member-crate markers when the repo root has its own src/ or tests/ (mixed workspace) #603

Description

@avrabe

Follow-up to #574 (the workspace-scan fix) — the edge case noted on that PR, now hit in practice.

rivet verify's default marker scan falls back to a recursive project-root scan only when neither ./src nor ./tests exists at the root (the pure-workspace case #574 fixed). But rivet's own repo root has a tests/ directory, so the fallback does not trigger — the default scan looks only at root ./src+./tests and never recurses into rivet-cli/tests/, rivet-core/tests/, etc.

Hit while dogfooding REQ-232: rivet verify REQ-232 refused ("no verifying evidence") despite a // rivet: verifies REQ-232 marker in rivet-cli/tests/cli_commands.rs. rivet verify REQ-232 --scan rivet-cli/tests found it immediately and advanced the artifact.

Fix direction: when the project is a cargo workspace (root Cargo.toml has [workspace]), the default scan should discover member-crate src/+tests/ (or just always recurse from the project root, deduped with the root ./src/./tests), not stop at the root dirs. Keep --scan as the explicit override.

Low-risk, self-contained; affects every workspace-with-a-root-tests-dir project, including rivet itself. Refs #574, 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