Skip to content

Commit baeadd6

Browse files
Copilot0xrinegade
andcommitted
Complete code review fixes: refactor coordinator, cleanup dead code, improve CLI feedback and workflows
Co-authored-by: 0xrinegade <[email protected]>
1 parent bf0779d commit baeadd6

File tree

4 files changed

+30
-539
lines changed

4 files changed

+30
-539
lines changed

.github/workflows/audit.yml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,11 @@ jobs:
4949
cd osvm-cli
5050
cargo build --release
5151
52+
- name: Run tests
53+
run: |
54+
cd osvm-cli
55+
cargo test --release
56+
5257
- name: Setup Git for audit commits
5358
run: |
5459
git config --global user.name "OSVM Security Audit Bot"
@@ -59,11 +64,15 @@ jobs:
5964
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
6065
run: |
6166
cd osvm-cli
67+
AI_FLAG=""
68+
if [ "${{ github.event.inputs.ai_analysis }}" == "true" ]; then
69+
AI_FLAG="--ai-analysis"
70+
fi
6271
./target/release/osvm audit \
6372
--gh "${{ github.event.inputs.repository }}#${{ github.event.inputs.branch }}" \
6473
--format both \
6574
--verbose \
66-
${{ github.event.inputs.ai_analysis == 'true' && '--ai-analysis' || '' }}
75+
$AI_FLAG
6776
6877
- name: Create audit summary
6978
id: audit_summary

Cargo.toml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,9 @@ dirs = "6.0.0"
3636
chrono = { version = "0.4.41", features = ["serde"] }
3737
md5 = "0.7.0"
3838
regex = "1.10.0"
39-
reqwest = { version = "0.12.0", features = ["json"] }
40-
base64 = "0.22.0"
39+
# Use latest reqwest version for consistency
40+
reqwest = { version = "0.12.20", features = ["json"] }
41+
base64 = "0.22.1"
4142

4243

4344
[dev-dependencies]

src/clparse.rs

Lines changed: 2 additions & 281 deletions
Original file line numberDiff line numberDiff line change
@@ -576,168 +576,6 @@ pub fn parse_command_line() -> clap::ArgMatches {
576576
)
577577
)
578578
)
579-
// .subcommand( // RPC SUBCOMMAND WAS MOVED TO BE FIRST
580-
// Command::new("rpc")
581-
// .about("Manage RPC nodes (local/remote)") // Simplified about string
582-
// .arg_required_else_help(true)
583-
// .subcommand( // Moved sonic to be first
584-
// Command::new("sonic")
585-
// .about("Deploy a Sonic RPC node")
586-
// .arg(
587-
// Arg::new("connection")
588-
// .help("SSH connection string (format: user@host[:port])")
589-
// .required(true)
590-
// .index(1)
591-
// )
592-
// .arg(
593-
// Arg::new("network")
594-
// .long("network")
595-
// .value_name("NETWORK")
596-
// .value_parser(clap::builder::PossibleValuesParser::new(["mainnet", "testnet", "devnet"]))
597-
// .default_value("mainnet")
598-
// .help("Network to deploy on")
599-
// )
600-
// )
601-
// .subcommand(
602-
// Command::new("query-solana") // Renamed from "solana"
603-
// .about("Query Solana RPC endpoint (info, health, monitor)") // Updated about string
604-
// .arg(
605-
// Arg::new("network")
606-
// .long("network")
607-
// .value_name("NETWORK")
608-
// .value_parser(clap::builder::PossibleValuesParser::new(["mainnet", "testnet", "devnet"]))
609-
// .default_value("mainnet")
610-
// .help("Solana network to query")
611-
// )
612-
// .arg(
613-
// Arg::new("custom-url")
614-
// .long("custom-url")
615-
// .value_name("URL")
616-
// .help("Custom RPC URL to query")
617-
// )
618-
// .arg(
619-
// Arg::new("monitor")
620-
// .long("monitor")
621-
// .action(ArgAction::SetTrue)
622-
// .help("Monitor network activity in real-time")
623-
// )
624-
// .arg(
625-
// Arg::new("health")
626-
// .long("health")
627-
// .action(ArgAction::SetTrue)
628-
// .help("Check network health")
629-
// )
630-
// .arg(
631-
// Arg::new("info")
632-
// .long("info")
633-
// .action(ArgAction::SetTrue)
634-
// .help("Show network information (default if no other flag)")
635-
// )
636-
// )
637-
// .subcommand(
638-
// Command::new("local")
639-
// .about("Deploy a local RPC node on localhost")
640-
// .arg(
641-
// Arg::new("svm")
642-
// .long("svm")
643-
// .value_name("SVM_NAME")
644-
// .value_parser(clap::builder::PossibleValuesParser::new(["solana", "sonic", "eclipse", "soon", "opensvm"]))
645-
// .default_value("solana")
646-
// .help("SVM to deploy RPC for")
647-
// )
648-
// .arg(
649-
// Arg::new("network")
650-
// .long("network")
651-
// .value_name("NETWORK")
652-
// .value_parser(clap::builder::PossibleValuesParser::new(["mainnet", "testnet", "devnet"]))
653-
// .default_value("devnet")
654-
// .help("Network to deploy on")
655-
// )
656-
// .arg(
657-
// Arg::new("port")
658-
// .long("port")
659-
// .value_name("PORT")
660-
// .default_value("8899")
661-
// .help("RPC port to bind to (default: 8899)")
662-
// )
663-
// .arg(
664-
// Arg::new("faucet-port")
665-
// .long("faucet-port")
666-
// .value_name("FAUCET_PORT")
667-
// .default_value("9900")
668-
// .help("Faucet port for devnet (default: 9900)")
669-
// )
670-
// .arg(
671-
// Arg::new("ledger-path")
672-
// .long("ledger-path")
673-
// .value_name("PATH")
674-
// .default_value("/tmp/test-ledger")
675-
// .help("Ledger data directory path")
676-
// )
677-
// .arg(
678-
// Arg::new("reset")
679-
// .long("reset")
680-
// .action(ArgAction::SetTrue)
681-
// .help("Reset the ledger on startup")
682-
// )
683-
// .arg(
684-
// Arg::new("background")
685-
// .long("background")
686-
// .short('d')
687-
// .action(ArgAction::SetTrue)
688-
// .help("Run in background (daemon mode)")
689-
// )
690-
// .arg(
691-
// Arg::new("stop")
692-
// .long("stop")
693-
// .action(ArgAction::SetTrue)
694-
// .help("Stop running local RPC node")
695-
// )
696-
// .arg(
697-
// Arg::new("status")
698-
// .long("status")
699-
// .action(ArgAction::SetTrue)
700-
// .help("Check status of local RPC node")
701-
// )
702-
// )
703-
// .subcommand(
704-
// Command::new("devnet")
705-
// .about("Start a legitimate devnet RPC node that syncs with Solana devnet")
706-
// .arg(
707-
// Arg::new("ledger-path")
708-
// .long("ledger-path")
709-
// .value_name("PATH")
710-
// .default_value("devnet-ledger")
711-
// .help("Ledger data directory path for devnet sync")
712-
// )
713-
// .arg(
714-
// Arg::new("rpc-port")
715-
// .long("rpc-port")
716-
// .value_name("PORT")
717-
// .default_value("8899")
718-
// .help("RPC port to bind to")
719-
// )
720-
// .arg(
721-
// Arg::new("background")
722-
// .long("background")
723-
// .short('d')
724-
// .action(ArgAction::SetTrue)
725-
// .help("Run in background (daemon mode)")
726-
// )
727-
// .arg(
728-
// Arg::new("stop")
729-
// .long("stop")
730-
// .action(ArgAction::SetTrue)
731-
// .help("Stop running devnet RPC node")
732-
// )
733-
// .arg(
734-
// Arg::new("status")
735-
// .long("status")
736-
// .action(ArgAction::SetTrue)
737-
// .help("Check status of devnet RPC node")
738-
// )
739-
// )
740-
// )
741579
.subcommand(
742580
Command::new("deploy")
743581
.about("Deploy eBPF binary to all available SVM networks")
@@ -1003,130 +841,13 @@ pub fn parse_command_line() -> clap::ArgMatches {
1003841
Arg::new("gh")
1004842
.long("gh")
1005843
.value_name("REPO#BRANCH")
1006-
.help("Git repository to audit in format: owner/repo#branch (e.g., opensvm/aeamcp#main)")
844+
.help("Git repository to audit in format: owner/repo#branch\n Examples:\n - opensvm/aeamcp#main\n - solana-labs/solana#master\n - myorg/myproject#develop")
1007845
)
1008846
)
1009847
.subcommand(
1010848
Command::new("new_feature_command")
1011849
.about("New feature for testing")
1012850
)
1013851

1014-
// .subcommand( // Temporarily commented out to isolate RPC command issues
1015-
// Command::new("solana")
1016-
// .about("Deploy and manage Solana validators")
1017-
// .arg_required_else_help(true)
1018-
// .subcommand(
1019-
// Command::new("validator")
1020-
// .about("Deploy a Solana validator node with enhanced features")
1021-
// .arg(
1022-
// Arg::new("connection")
1023-
// .help("SSH connection string (format: user@host[:port])")
1024-
// .required(true)
1025-
// .index(1)
1026-
// )
1027-
// .arg(
1028-
// Arg::new("network")
1029-
// .long("network")
1030-
// .value_name("NETWORK")
1031-
// .value_parser(clap::builder::PossibleValuesParser::new(["mainnet", "testnet", "devnet"]))
1032-
// .default_value("mainnet")
1033-
// .help("Network to deploy on")
1034-
// )
1035-
// .arg(
1036-
// Arg::new("version")
1037-
// .long("version")
1038-
// .value_name("VERSION")
1039-
// .help("Solana client version (e.g., v1.16.0, v1.18.23-jito)")
1040-
// )
1041-
// .arg(
1042-
// Arg::new("client-type")
1043-
// .long("client-type")
1044-
// .value_name("TYPE")
1045-
// .value_parser(clap::builder::PossibleValuesParser::new(["standard", "jito", "agave"]))
1046-
// .default_value("standard")
1047-
// .help("Solana client type (standard, jito, agave)")
1048-
// )
1049-
// .arg(
1050-
// Arg::new("hot-swap")
1051-
// .long("hot-swap")
1052-
// .action(ArgAction::SetTrue)
1053-
// .help("Enable hot-swap capability for high availability")
1054-
// )
1055-
// .arg(
1056-
// Arg::new("ledger-disk")
1057-
// .long("ledger-disk")
1058-
// .value_name("DEVICE")
1059-
// .help("Ledger disk device path (e.g., /dev/nvme0n1)")
1060-
// )
1061-
// .arg(
1062-
// Arg::new("accounts-disk")
1063-
// .long("accounts-disk")
1064-
// .value_name("DEVICE")
1065-
// .help("Accounts disk device path (e.g., /dev/nvme1n1)")
1066-
// )
1067-
// .arg(
1068-
// Arg::new("metrics-config")
1069-
// .long("metrics-config")
1070-
// .value_name("CONFIG")
1071-
// .help("Metrics configuration string (e.g., host=https://metrics.solana.com:8086,db=mainnet-beta,u=mainnet-beta_write,p=password)")
1072-
// )
1073-
// )
1074-
// .subcommand(
1075-
// Command::new("rpc")
1076-
// .about("Deploy a Solana RPC node with enhanced features")
1077-
// .arg(
1078-
// Arg::new("connection")
1079-
// .help("SSH connection string (format: user@host[:port])")
1080-
// .required(true)
1081-
// .index(1)
1082-
// )
1083-
// .arg(
1084-
// Arg::new("network")
1085-
// .long("network")
1086-
// .value_name("NETWORK")
1087-
// .value_parser(clap::builder::PossibleValuesParser::new(["mainnet", "testnet", "devnet"]))
1088-
// .default_value("mainnet")
1089-
// .help("Network to deploy on")
1090-
// )
1091-
// .arg(
1092-
// Arg::new("version")
1093-
// .long("version")
1094-
// .value_name("VERSION")
1095-
// .help("Solana client version (e.g., v1.16.0)")
1096-
// )
1097-
// .arg(
1098-
// Arg::new("client-type")
1099-
// .long("client-type")
1100-
// .value_name("TYPE")
1101-
// .value_parser(clap::builder::PossibleValuesParser::new(["standard", "jito", "agave"]))
1102-
// .default_value("standard")
1103-
// .help("Solana client type (standard, jito, agave)")
1104-
// )
1105-
// .arg(
1106-
// Arg::new("ledger-disk")
1107-
// .long("ledger-disk")
1108-
// .value_name("DEVICE")
1109-
// .help("Ledger disk device path (e.g., /dev/nvme0n1)")
1110-
// )
1111-
// .arg(
1112-
// Arg::new("accounts-disk")
1113-
// .long("accounts-disk")
1114-
// .value_name("DEVICE")
1115-
// .help("Accounts disk device path (e.g., /dev/nvme1n1)")
1116-
// )
1117-
// .arg(
1118-
// Arg::new("metrics-config")
1119-
// .long("metrics-config")
1120-
// .value_name("CONFIG")
1121-
// .help("Metrics configuration string")
1122-
// )
1123-
// .arg(
1124-
// Arg::new("enable-history")
1125-
// .long("enable-history")
1126-
// .action(ArgAction::SetTrue)
1127-
// .help("Enable transaction history (increases storage requirements)")
1128-
// )
1129-
// )
1130-
// )
1131-
.get_matches()
852+
.get_matches()
1132853
}

0 commit comments

Comments
 (0)