Skip to content

Strip CLI to local-db only and remove unused dependencies#2440

Open
findolor wants to merge 2 commits intomainfrom
findolor/strip-cli-to-localdb
Open

Strip CLI to local-db only and remove unused dependencies#2440
findolor wants to merge 2 commits intomainfrom
findolor/strip-cli-to-localdb

Conversation

@findolor
Copy link
Collaborator

@findolor findolor commented Feb 9, 2026

Motivation

The CLI has accumulated remote-based commands and quote CLI functionality that are no longer needed. This strips the CLI down to local-database operations only, removing ~6,000 lines of unused code.

Solution

  • Removed all remote-based CLI commands: order (add, remove, list, detail, calldata, compose, orderbook_address, listorderfrontmatterkeys), trade (list, detail), vault (deposit, detail, list, list_balance_changes, withdraw), chart, words, and subgraph
  • Removed the entire quote CLI module (crates/quote/src/cli/)
  • Cleaned up unused dependencies from crates/cli/Cargo.toml and crates/quote/Cargo.toml
  • Updated copilot instructions to reflect the reduced CLI scope

Checks

By submitting this for review, I'm confirming I've done the following:

  • made this PR as small as possible
  • unit-tested any new functionality
  • linked any relevant issues or PRs
  • included screenshots (if this involves a front-end change)

Summary by CodeRabbit

  • Refactor
    • Removed Chart, Order, Trade, Vault, Words, Quote, and Subgraph CLI commands.
    • Simplified CLI interface to focus on LocalDb commands only.
    • Removed associated dependencies and related output handling utilities.

Remove all CLI commands except local-db sync from the CLI crate.
Remove the quote crate CLI module and binary entry point.
Trim unused dependencies from both crates.
@findolor findolor self-assigned this Feb 9, 2026
@findolor findolor requested review from 0xgleb and hardyjosh February 9, 2026 09:43
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 9, 2026

Walkthrough

This PR removes the majority of CLI command functionality from the crate, including order, vault, trade, chart, quote, words, and subgraph commands, narrowing the public command surface to LocalDb only. Supporting infrastructure (Execute trait, output encoding, status display utilities, transaction/subgraph argument parsing) is also deleted.

Changes

Cohort / File(s) Summary
Order Command Removal
crates/cli/src/commands/order/add.rs, crates/cli/src/commands/order/calldata.rs, crates/cli/src/commands/order/compose.rs, crates/cli/src/commands/order/detail.rs, crates/cli/src/commands/order/list.rs, crates/cli/src/commands/order/listorderfrontmatterkeys.rs, crates/cli/src/commands/order/orderbook_address.rs, crates/cli/src/commands/order/remove.rs, crates/cli/src/commands/order/mod.rs
Removes all order-related CLI subcommands including add (dotrain parsing, simulation, broadcasting), calldata (ABI encoding), compose (rainlang generation), detail, list, frontmatter key listing, orderbook address resolution, and removal operations. Eliminates Order enum, CliOrderAddArgs, AddOrderCalldata, Compose, OrderbookAddress, ListOrderFrontmatterKeys, CliOrderDetailArgs, CliOrderListArgs, and CliOrderRemoveArgs types.
Vault Command Removal
crates/cli/src/commands/vault/deposit.rs, crates/cli/src/commands/vault/withdraw.rs, crates/cli/src/commands/vault/detail.rs, crates/cli/src/commands/vault/list.rs, crates/cli/src/commands/vault/list_balance_changes.rs, crates/cli/src/commands/vault/mod.rs
Removes all vault-related CLI subcommands including deposit (token approval and deposit flow), withdraw, detail, list (with CSV/table output), and balance change listing. Eliminates Vault enum and all associated CliVault\* argument types and table-building helpers.
Trade Command Removal
crates/cli/src/commands/trade/detail.rs, crates/cli/src/commands/trade/list.rs, crates/cli/src/commands/trade/mod.rs
Removes trade detail and list subcommands with CSV/table output support. Eliminates Trade enum, CliOrderTradeDetailArgs, and CliOrderTradesListArgs types.
Other Command Removals
crates/cli/src/commands/chart.rs, crates/cli/src/commands/quote/mod.rs, crates/cli/src/commands/subgraph/mod.rs, crates/cli/src/commands/words.rs, crates/cli/src/commands/mod.rs
Removes Chart command (FuzzRunner-based analysis), Quote command (Execute trait impl), Subgraph validation command, and Words command (metaboard integration for deployer/pragma word fetching). Module dispatcher updated to remove all 7 submodule declarations and their public re-exports.
Core CLI Infrastructure
crates/cli/src/execute.rs, crates/cli/src/output.rs, crates/cli/src/status.rs, crates/cli/src/subgraph.rs, crates/cli/src/transaction.rs, crates/cli/src/lib.rs
Removes the Execute trait (async fn execute(&self) -> Result<()>), SupportedOutputEncoding enum and output() function, display_write_transaction_status() logging utility, CliSubgraphArgs/CliPaginationArgs/CliFilterArgs and their From conversions, and CliTransactionArgs struct with TransactionArgs conversion. Orderbook enum narrowed to LocalDb(LocalDbCommands) variant only.
Quote Crate Cleanup
crates/quote/src/cli/input.rs, crates/quote/src/cli/mod.rs, crates/quote/src/lib.rs, crates/quote/src/main.rs, crates/quote/Cargo.toml
Removes entire CLI input parsing module (Input struct, parse_input function, TryFrom conversions for BatchQuoteTarget/BatchQuoteSpec), CLI entrypoint (Quoter struct with run() method, QuoterResultInner enum, main() function), conditional pub mod cli export, and non-WASM main entry point. Removes dependencies: tracing, once_cell, anyhow, reqwest, clap, tracing-subscriber.
Dependency Cleanup
crates/cli/Cargo.toml
Removes workspace dependencies: rain_orderbook_subgraph_client, rain_orderbook_bindings, rain_orderbook_quote, rust-bigint, serde_bytes, futures, comfy-table, chrono, csv. Removes dev-dependencies: httpmock, rain_orderbook_test_fixtures.
Configuration Updates
.github/copilot-instructions.md
Shortens cargo build exclusion list by removing rain_orderbook_cli, leaving only rain_orderbook_integration_tests excluded.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~70 minutes

Possibly related PRs

  • V5 Upgrade #1911 — Modifies the same CLI command files (chart, order/\, vault/\, words, status, transaction modules) that are being deleted in this PR, indicating overlap in touched code areas.
  • Add wasm export macro to DotrainOrder and refactor the code #1717 — Refactors DotrainOrder initialization in the same CLI modules (order/calldata.rs, compose.rs, orderbook_address.rs, words.rs) that are being removed.
  • Add producer runner implementation #2295 — Restructures CLI command surface and adds LocalDbCommands pipeline infrastructure, directly related to the narrowing of the Orderbook enum to LocalDb only.

Suggested labels

rust

Suggested reviewers

  • 0xgleb
  • hardyjosh
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Strip CLI to local-db only and remove unused dependencies' accurately summarizes the main changes: removing remote-based CLI commands and cleaning dependencies, leaving only local-db functionality.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch findolor/strip-cli-to-localdb

No actionable comments were generated in the recent review. 🎉


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

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.

1 participant