Skip to content

Drop the unused assert_cmd dev-dependency - #342

Merged
blooop merged 2 commits into
mainfrom
wayfinder/devlaunch-341
Aug 23, 2026
Merged

Drop the unused assert_cmd dev-dependency#342
blooop merged 2 commits into
mainfrom
wayfinder/devlaunch-341

Conversation

@blooop

@blooop blooop commented Aug 22, 2026

Copy link
Copy Markdown
Owner

Removes the assert_cmd dev-dependency that nothing in the tree imports: the workspace entry in rust/Cargo.toml, dl's [dev-dependencies] line, and the five crates it alone pulled into Cargo.lock (predicates, predicates-core, predicates-tree, termtree, wait-timeout). portable-pty stays — it is live in aid's interactive tests.

Decided in #317 (drop assert_cmd only, no dl pty harness). No behavior changes, so no red test per the ticket's stated exemption; proof is the pruned lockfile plus a green cargo test --workspace (1500+ tests), cargo clippy --locked --all-targets -- -D warnings, and cargo fmt --check, all clean locally.

Closes #341

🤖 Generated with Claude Code

Summary by Sourcery

Remove the unused assert_cmd development dependency and its transitive lockfile entries.

Enhancements:

  • Remove the unused assert_cmd development dependency from the workspace and dl crate.

Build:

  • Prune assert_cmd and its transitive dependencies from the Rust lockfile.

Nothing in the tree imports assert_cmd; it was added alongside
portable-pty for a dl pty harness that was never built, and the
map decided (#317) to drop it rather than build the harness.
portable-pty stays — it is live in aid's interactive tests.

Removes the workspace entry, dl's dev-dependency, and the five
crates it alone pulled into Cargo.lock (assert_cmd, predicates,
predicates-core, predicates-tree, termtree, wait-timeout).

Closes #341
@sourcery-ai

sourcery-ai Bot commented Aug 22, 2026

Copy link
Copy Markdown
Reviewer's guide (collapsed on small PRs)

Reviewer's Guide

Removes the unused assert_cmd dev-dependency from the Rust workspace and the dl crate, and prunes its transitive crates from Cargo.lock, with no behavioral or code changes to the project itself.

File-Level Changes

Change Details Files
Remove the unused assert_cmd dev-dependency from the Rust workspace and dl crate configuration.
  • Delete the assert_cmd = "2" dev-dependency from the root Rust workspace Cargo.toml.
  • Remove the assert_cmd dev-dependency entry from the dl crate's Cargo.toml, which referenced the workspace dependency.
rust/Cargo.toml
rust/dl/Cargo.toml
Prune transitive dependencies that were only pulled in by assert_cmd from Cargo.lock.
  • Remove lockfile entries for crates that were exclusively brought in via assert_cmd (predicates, predicates-core, predicates-tree, termtree, wait-timeout).
  • Regenerate Cargo.lock to reflect the reduced dependency graph while leaving portable-pty and other live dependencies intact.
rust/Cargo.lock

Assessment against linked issues

Issue Objective Addressed Explanation
#341 Remove the unused assert_cmd dependency from rust/dl/Cargo.toml and the workspace dependency list in rust/Cargo.toml.
#341 Prune assert_cmd and its exclusively unused transitive dependencies from rust/Cargo.lock.
#341 Keep the still-used portable-pty dependency unchanged.

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've reviewed your changes and they look great!


Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

@blooop blooop left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was generated by AI during review.

Two-axis review of #342 against merge-base a1c6fe8, one commit (8bf981b), 3 files, 0 insertions / 66 deletions. Axes were run in independent fresh contexts and are reported unmerged.

Standards

No findings. The removal is complete, minimal and internally consistent.

  • No surviving references. git grep -i "assert_cmd\|assert-cmd" over the whole tree at the PR head returns zero hits — no .rs, no docs, no .github/workflows/, no prek/pixi/packaging manifests, no Python side. At the merge-base the only hits were the two manifest lines and the two lockfile entries this PR deletes. The crate was declared in the M0: parity harness … cargo scaffold commit and never once imported, so the ticket's "unused" premise holds — textbook Speculative Generality, correctly deleted rather than kept "in case".
  • The lock prune is exactly the reachable closure and nothing more. assert_cmd pulled anstyle, bstr, libc, predicates, predicates-core, predicates-tree, wait-timeout; predicates → difflib; predicates-tree → termtree; wait-timeout → libc. Each of the seven removed entries was cross-checked against every remaining dependencies list in rust/Cargo.lock on the branch and has zero surviving referents. anstyle (via anstream/clap_builder/env_filter), bstr (via globset/skim/shell-quote) and libc are correctly retained. Deletions only — no version churn rode along.
  • portable-pty correctly retained: rust/Cargo.toml:47, rust/aid/Cargo.toml:36, used at rust/aid/tests/interactive.rs:21,95,100.
  • Workspace-dependency convention followed. Both halves — the [workspace.dependencies] entry and the member's { workspace = true } — go together, leaving no dangling workspace entry. That is the one failure mode cargo would not catch, since an unused [workspace.dependencies] line is silently legal.
  • Lockfile freshness is machine-guarded, not trusted: CI builds and tests with --locked throughout (.github/workflows/ci.yml), which fails on a stale lock. Green here.
  • No docs to update — nothing in README.md, CLAUDE.md or docs/ mentions the dependency, and CLAUDE.md's README rule covers CLI commands/flags only.

Fowler baseline is otherwise not applicable: the diff contains no code, types or control flow.

Verdict: pass.

Spec

Spec is ticket #341, which restates the decision settled on #317 and recorded on map #299. Every criterion met, quoted and evidenced:

  • "drop it from rust/dl/Cargo.toml:58 and the workspace list (rust/Cargo.toml:47)" — both hit, and only those. At merge-base those two lines are literally assert_cmd = { workspace = true } and assert_cmd = "2"; the diff deletes precisely them. The spec's line numbers are exact matches, not approximations.
  • "portable-pty stays (live in rust/aid/tests/interactive.rs)" — untouched and still live; it moves up one line in rust/Cargo.toml purely as a consequence of the deletion above it, and keeps its lockfile entry.
  • "No behavior, so no red test" — the claim is true, not merely asserted: zero .rs files touched, and nothing under any src/ or tests/ ever imported the crate, so no test could have gone red. The exemption applies as stated.
  • "the proof is the pruned Cargo.lock and a clean cargo test --workspace" — the pruned lock is present as the named artifact, and CI is green on this SHA.
  • #317's scope, "drop the unused assert_cmd only, no dl pty harness" — both halves obeyed: no rust/dl/tests/ file added or changed, no pty machinery anywhere in the diff. No over-delivery, nothing left undone.

Verdict: pass.

Independent verification

Run by the review context itself on the PR head, not taken from the PR body:

  • cargo metadata --locked --offline exits 0 — the hand-pruned lockfile is complete and not stale.
  • cargo check --locked --all-targets compiles every crate including test targets, which is what would have failed had anything still referenced assert_cmd.
  • All 13 required checks green (ci, rust, rust-coverage, e2e, public-api, packaging, prek, gate, codecov, GitGuardian).

Non-blocking notes

  1. The PR description miscounts the prune. It says "the five crates it alone pulled into Cargo.lock (predicates, predicates-core, predicates-tree, termtree, wait-timeout)" — the lock actually sheds six transitives; difflib, pulled in by predicates, is missing from that list. The lockfile itself is correct; only the prose is off. Worth a one-word fix if the description is edited anyway.
  2. Nothing in CI would catch the next unused dependency — no cargo-udeps/cargo-machete, and .github/dependabot.yml declares no cargo ecosystem. That is how this one survived. A standing guard belongs on sibling map #300 ("Drift-proofing rapid development"), not on this ticket.
  3. Pre-existing, adjacent, out of scope: rust/Cargo.toml:23 declares dl = { path = "dl" } in [workspace.dependencies] with zero consumers — rust/aid/Cargo.toml:16 deliberately uses a direct { path = "../dl" } instead. Same unused-workspace-declaration class this PR is sweeping. Fine to leave.

Verdict

Approve — both axes pass, no blocking findings.

The three notes above are all non-blocking: note 1 is prose in the PR description, notes 2 and 3 are pre-existing and belong to other tickets. Merging stays with the human.

@codecov

codecov Bot commented Aug 23, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 95.18%. Comparing base (94cb7d9) to head (0ebc1f3).

Additional details and impacted files
Flag Coverage Δ
python 42.98% <ø> (ø)
rust 95.55% <ø> (+0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Components Coverage Δ
shipped code (rust) 95.55% <ø> (+0.01%) ⬆️
harness and tooling (python) 42.98% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@blooop
blooop merged commit 7407578 into main Aug 23, 2026
14 checks passed
@blooop
blooop deleted the wayfinder/devlaunch-341 branch August 23, 2026 21:37
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.

Drop the unused assert_cmd dev-dependency

1 participant